2009-08-10 18 views
1

Ein verwandter Knoten hier war - XML Attributes vs Elements aber das war mehr eine Designfrage.Wenn ein Schema ein Attribut erfordert und ich es als ein Element sende, ist es ungültig?

Meine Frage betrifft die Gültigkeit.

Wenn ein Schema

<record name="foo" description="bar" /> 

erfordert und ich liefern

<record> 
    <name>foo</name> 
    <description>bar</description> 
</record> 

Wird das XML ungültig betrachtet werden?

Und umgekehrt: Wenn Elemente angegeben wurden und ich Attribute zur Verfügung stelle, ist das ungültig?

Gibt es eine Referenz in einer XML-Spezifikation, die dokumentiert, was ein XML-Parser in diesem Fall tun sollte, wenn die Semantik gleich ist, die literale XML-Struktur jedoch anders ist?

Antwort

1

Attribute und Elemente sind in keiner Weise austauschbar. Wenn das Schema eines erfordert, ist die Verwendung des anderen nicht gültig und die XML-Schema-Validierungslogik sollte es ablehnen. Ob sie semantisch identisch sind, ist ebenfalls höchst fragwürdig.

2

Wenn ein XML-Schema angibt, dass ein Element benötigt wird und Sie ein Attribut angeben, ist das ungültig. Das Gegenteil ist das Gleiche. Wenn Sie das XML nicht verifizieren, wird Ihr Code weiterhin Probleme haben, da Sie nach einem Attribut suchen und das Element nicht finden.

0

In XML ist ein Schema ein strenger Vertrag: Wenn Sie nicht entsprechen dann ist der Deal über!

Wenn die Attribute als Elemente angegeben wurden, ist das XML gültig?

Antwort: Es ist ungültig.

Wenn Elemente als Attribute angegeben wurden, ist das XML gültig?

Antwort: Es ist ungültig.

Was sollte ein XML-Parser in diesem Fall tun?

Antwort: Fehler beim Parsen für Schema-Gültigkeitsgründe.

Ein XML-Reader passt sich nicht an einen Fehler in einem Quelldokument an. Zu diesem Thema steht die XML-Welt der HTML-Welt gegenüber. Diese Strenge ist eine Eigenschaft von XML, die es ermöglicht, dass sie leicht zu analysieren, zu verarbeiten und zu generieren ist.

Verwandte Themen