2016-08-03 7 views
1

Kann mir jemand mit xsd helfen. Meine XSD wie folgt aussieht:Leere XML-Elemente über XSI: nil = "wahr" und nillable = "wahr" in XSD?

<xs:element name="StringExample" type="xs:string" nillable="true" /> 
<xs:element name="DateTimeExample" type="xs:dateTime" nillable="true"/> 

Und ich möchte, dass, wenn StringExample zu "" (Leerzeichen) oder null gleich ist, sollte die XML wie folgt aussehen:

<StringExample /> 

Und wenn DateTimeExample ist gleich null dann sollte xml aussehen:

<DateTimeExample /> 

Antwort

1

XSD gibt Bedingungen für die Gültigkeit eines XML-Dokuments an. Ob ein leeres Element ein End-Tag oder ein leeres Tag verwendet, gehört nicht zu diesen Bedingungen. Beide Formulare sind auf XML-Ebene gleich und können nicht über XSD gesteuert werden.

Jedes gegebenes Werkzeug, das eine XSD als Eingabe und erzeugt als Ausgabe XML konfigurierbar sein könnte Endtags oder leere Tags zu erzeugen; Wie auch immer, kein kompatibler XML-Prozessor kümmert sich darum, welches Formular verwendet wird.

Was nillable="true" wirklich tut, ist zu steuern, ob das zugeordnete Element ein xsi:nil Attribut haben kann, das eine Out-of-Band-Anzeige ist, dass der Inhalt eines Elements Null ist. Lesen Sie mehr über Nullwerte im W3C Schema Part 0: Primer, Abschnitt 2.9 Nil Values.

+0

Jetzt verstehen benötigt i für Informationen! – user2388887

Verwandte Themen