Ich benutze xsd:all
in einem komplexen Typ. Wenn ich während der Validierung obligatorische Elemente verpasse, werden alle Elemente angezeigt. Das exakt fehlende Element wird nicht angezeigt.
Aber wenn ich gebraucht xsd:sequence
werde, kann ich das genau übersehene Element bekommen.
Gibt es einen Unterschied zwischen diesen beiden?
xsd:sequence
: XML-Element muss in derselben Reihenfolge sein.
Aber xsd:all
: XML-Element kann eine beliebige Reihenfolge sein.
xml
xsd
xml-validation
xsd-validation
user1679378
quelle
quelle
Antworten:
<xsd:all>
Gibt an, dass die untergeordneten Elemente in beliebiger Reihenfolge angezeigt werden können.<xsd:sequence>
Gibt an, dass untergeordnete Elemente nur in der angegebenen Reihenfolge angezeigt werden können.Beispiel für Sequenz:
<xs:element name="compElement"> <xs:complexType> <xs:sequence> <xs:element name="ele1" type="xs:string"/> <xs:element name="ele2" type="xs:string"/> <xs:element name="ele3" type="xs:string"/> <xs:element name="ele4" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
Wenn Sie aus diesem xsd ein XML erstellen, sieht es ungefähr so aus:
<compElement> <ele1>First</ele1> <ele2>Second</ele2> <ele3>Third</ele3> <ele4>Fourth</ele4> </compElement>
Beispiel für alle:
<xs:element name="compElement"> <xs:complexType> <xs:all> <xs:element name="ele1" type="xs:string"/> <xs:element name="ele2" type="xs:string"/> <xs:element name="ele3" type="xs:string"/> <xs:element name="ele4" type="xs:string"/> </xs:all> </xs:complexType> </xs:element>
Wenn Sie eine XML-Datei aus dieser xsd erstellen, könnte sie ungefähr so aussehen:
<compElement> <ele2>Second</ele2> <ele1>First</ele1> <ele4>Fourth</ele4> <ele3>Third</ele3> </compElement>
Weitere Informationen zu xsd: all
Weitere Informationen zu xsd: sequence
Hoffe ich habe deine Frage beantwortet.
quelle
Unterschied:
Aus den W3Schools-Tutorials hier und hier .
quelle
<xs:all>
die Häufigkeit, mit der ein untergeordnetes Element auftreten kann, eingeschränkt ist? Ich kann keine Beweise dafür in der W3C-Spezifikation finden.Alle Anzeige
Sequenzanzeige
Referenzlink
quelle
Das Schema definiert lediglich, was ein konformes Dokument darstellt.
Wie Verstöße gemeldet werden, liegt ganz beim Validator. Nichts hindert einen Validator daran, genau zu melden, welche Felder fehlen, aber anscheinend verwendet das von Ihnen verwendete Feld in diesem Fall nicht.
Ob dies ein Fehler oder beabsichtigt ist, müssten Sie mit dem Anbieter des Validators besprechen.
quelle
EINFACHES XML-BEISPIEL:
<school> <firstname>John</firstname> <lastname>Smith</lastname> </school>
XSD VON OBEN XML (erklärt):
<xs:element name="school"> <xs:complexType> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
Hier:
xs: element : Definiert ein Element.
xs: all : Bezeichnet, dass untergeordnete Elemente in beliebiger Reihenfolge angezeigt werden können.
xs: sequence : Bezeichnet, dass untergeordnete Elemente nur in der angegebenen Reihenfolge angezeigt werden.
xs: complexType : Bezeichnet andere Elemente.
xs: simpleType sie keine anderen Elemente enthalten.
Typ: Zeichenfolge, Dezimalzahl, Ganzzahl, Boolescher Wert, Datum, Uhrzeit,
Mit Hilfe zusätzlicher Attribute können wir mehrere Operationen ausführen.
Das Ausführen einer Aufgabe auf xsd ist einfacher als xml.
quelle
Wenn wir unter Tag verwenden, werden alle Elemente angezeigt, die in diesem complexType deklariert sind, MÜSSEN im XML-Dokument in derselben Reihenfolge angezeigt werden. Andernfalls wird eine Fehlermeldung angezeigt. denn es besteht keine Notwendigkeit, Elemente in der richtigen Reihenfolge anzugeben.
quelle