XML-Schema (XSD) - Wie Sie angeben übergeordneten element zu enthalten, die mindestens ein untergeordnetes element?
Ich habe ein XML-schema (XSD) definiert ein element als zwingend (nennen Sie es den Eltern); dieser Elternteil hat, sagen wir, fünf child-Elemente, die alle optional, ABER MINDESTENS EIN Kind-element auftreten muss.
Wie kann ich festlegen, das in der xsd?
Zu klären: Die Kinder sind verschiedene Elemente und optional.
Zum Beispiel.
<Parent>
<Child1>contents are different to other siblings and arbitrary</Child1>
<Child2>can be text, a simple element, or another complex element</Child2>
<Child3>etc.. etc</Child3>
</Parent>
<xs:complexType name="Parent">
<xs:sequence>
<xs:element minOccurs="0" name="Child1" type="xs:string"/>
<xs:element minOccurs="0" name="Child2" />
<xs:element minOccurs="0" name="Child3" />
</xs:sequence>
</xs:complexType>
Obwohl jedes Kind ist es freigestellt, die Eltern Bedürfnisse haben mindestens ein Kind.
- Nach der überprüfung der Antworten (und viel Googeln), es scheint, es ist kein einfaches Konstrukt in xsd angeben; Mehr ärger als es Wert ist, ich haben sich dafür entschieden, lassen Sie die Validierung von software durchzusetzen, zusätzliche Regeln (z.B. Mindestens Einem Kind auftreten müssen).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist immer der direkte Ansatz:
Mit Behauptungen (ich denke, es ist nur in XSD 1.1) ist es möglich, Folgendes zu tun:
Verwenden minOccurs, z.B.
Können Sie erstellen, die eine substitution der Gruppe, die enthält alle Ihre untergeordneten Elemente. Dazu verwenden Sie die
minOccurs
- Attribut, um anzugeben, dass mindestens ein element der Gruppe muss im Dokument vorkommen.