Wie können Sie eine Sequenz von optionalen Gegenstände, die sein müssen, um in einem XML-schema?

Was ich will zu tun ist, erstellen Sie ein sequence-element in einem XML-schema so, dass der Inhalt muss in Ordnung sein, kann aber nicht alle vorhanden sein. Zum Beispiel, das schema wäre so etwas wie dieses:

<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 würde es ermöglichen, XML, wie diese:

<rods>
 <green>142</green>
 <white>34</white>
 <gray>65</gray>
</rods>

MSDN hat dies zu sagen:

Das folgende Beispiel zeigt ein element (zooAnimals) kann null oder mehr der folgenden Elemente, Elefant, Bär, giraffe, in der Sequenz-element.

<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 die gleiche.
Aber sowohl visual studio und eine online-überprüfung der service nicht gefällt, was vorgeschlagen wird.

Hier ist, was ich im moment:

<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 die XML:

<rods>
 <green>142</green>
 <white>34</white>
 <gray>65</gray>
</rods>

Visual Studio 2005 behauptet, dass "Grau" ist ungültig, "blue" erwartet, also, klar, es will alle Kinder

Dank,

Eric

  • Ihre schema-definition, die für mich gut aussieht. Pflege zu teilen der Ergebnisse/feedback der Visual Studio-und online-Prüfungen?
  • Ich habe die Ergebnisse der post
InformationsquelleAutor Eric | 2009-05-31
Schreibe einen Kommentar