Validierung von XML mit XSDs… aber trotzdem Erweiterbarkeit zulassen
Vielleicht bin ich es, aber es scheint, dass, wenn Sie eine XSD haben
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="User">
<xs:complexType>
<xs:sequence>
<xs:element name="GivenName" />
<xs:element name="SurName" />
</xs:sequence>
<xs:attribute name="ID" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
</xs:schema>
das definiert das Schema für dieses Dokument
<?xml version="1.0" encoding="utf-8" ?>
<User ID="1">
<GivenName></GivenName>
<SurName></SurName>
</User>
Es kann nicht überprüft werden, wenn Sie ein weiteres Element hinzufügen, z. B. EmailAddress, und die Reihenfolge verwechseln.
<?xml version="1.0" encoding="utf-8" ?>
<User ID="1">
<SurName></SurName>
<EmailAddress></EmailAddress>
<GivenName></GivenName>
</User>
Ich möchte dem Dokument keine E-Mail-Adresse hinzufügen und möchte, dass diese als optional gekennzeichnet ist.
Ich möchte nur eine XSD, die die Mindestanforderungen überprüft, die das Dokument erfüllen muss.
Gibt es eine Möglichkeit, dies zu tun?
BEARBEITEN marc_s wies darauf hin, dass Sie @ verwenden könnxs:any
Innenxs:sequence
Um mehr Elemente zuzulassen, müssen Sie leider die Reihenfolge der Elemente beibehalten.
Alternativ kann ich @ verwendxs:all
was die Reihenfolge der Elemente nicht erzwingt, aber leider nicht erlaubt mir, @ zu platzierxs:any
drinnen.