Was ich tun möchte, ist ein Sequenzelement in einem XML-Schema zu erstellen, so dass die Inhalte in Ordnung sein müssen, aber möglicherweise nicht alle vorhanden sind. Zum Beispiel würde das Schema so etwas wie dieses:Wie können Sie eine Sequenz von optionalen Elementen erstellen, die in einem XML-Schema in Ordnung sein müssen?
<xs:element name="rods" maxOccurs="1" minOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="green" type="xs:positiveInteger" />
<xs:element name="white" type="xs:positiveInteger" />
<xs:element name="blue" type="xs:positiveInteger" />
<xs:element name="yellow" type="xs:positiveInteger" />
<xs:element name="red" type="xs:positiveInteger" />
<xs:element name="tan" type="xs:positiveInteger" />
<xs:element name="gray" type="xs:positiveInteger" />
<xs:element name="black" type="xs:positiveInteger" />
</xs:sequence>
</xs:complexType>
</xs:element>
und erlauben würde, XML wie folgt aus:
Das folgende Beispiel zeigt:
<rods> <green>142</green> <white>34</white> <gray>65</gray> </rods>
MSDN diese dazu zu sagen hat ein Element (zooAnimals), das im Sequenzelement null oder mehr der folgenden Elemente, Elefant, Bär, Giraffe, enthalten kann.
<xs:element name="zooAnimals"> <xs:complexType> <xs:sequence minOccurs="0" maxOccurs="unbounded"> <xs:element name="elephant"/> <xs:element name="bear"/> <xs:element name="giraffe"/> </xs:sequence> </xs:complexType> </xs:element>
W3Schools schlägt das gleiche. Sowohl Visual Studio als auch ein Online-Validierungsdienst mögen jedoch nicht, was vorgeschlagen wird. Hier
ist das, was ich im Moment haben:
<xs:element name="rods" maxOccurs="1" minOccurs="1">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="1">
<xs:element name="green" type="xs:positiveInteger" />
<xs:element name="white" type="xs:positiveInteger" />
<xs:element name="blue" type="xs:positiveInteger" />
<xs:element name="yellow" type="xs:positiveInteger" />
<xs:element name="red" type="xs:positiveInteger" />
<xs:element name="tan" type="xs:positiveInteger" />
<xs:element name="gray" type="xs:positiveInteger" />
<xs:element name="black" type="xs:positiveInteger" />
</xs:sequence>
</xs:complexType>
</xs:element>
Und hier ist der XML:
<rods>
<green>142</green>
<white>34</white>
<gray>65</gray>
</rods>
Visual Studio 2005 behauptet, dass "grau" ist ungültig, "blau" zu erwarten, so klar sie will alle Kinder
Danke,
Eric
Ihre Schemadefinition sieht gut aus. Möchten Sie die Ergebnisse/Rückmeldungen der Visual Studio- und Online-Validatoren teilen? –
Ich habe die Ergebnisse zum Beitrag hinzugefügt – Eric