Ich frage mich, wie die XML-Schemaspezifikation diese Fälle behandelt:
<xsd:element minOccurs="1" name="asdf"/>
Kein maxOccurs angegeben -> Ist dies die Kardinalität [1..1]?
<xsd:element minOccurs="5" maxOccurs="2" name="asdf"/>
Ich nehme an, das ist einfach ungültig?
<xsd:element maxOccurs="2" name="asdf"/>
Ist das die Kardinalität [0..2] oder [1..2]?
Gibt es eine "offizielle" Definition, wie die XML-Schema-Spezifikation diese Fälle behandelt?
Die Standardwerte für minOccurs
und maxOccurs
sind 1. Also:
<xsd:element minOccurs="1" name="asdf"/>
kardinalität ist [1-1] Hinweis: Wenn Sie das Attribut minOccurs von only angeben, darf es nicht größer als 1 sein, da der Standardwert für maxOccurs 1 ist.
<xsd:element minOccurs="5" maxOccurs="2" name="asdf"/>
ungültig
<xsd:element maxOccurs="2" name="asdf"/>
kardinalität ist [1-2] Hinweis: Wenn Sie das Attribut only maxOccurs angeben, darf es nicht kleiner als 1 sein, da der Standardwert für minOccurs 1 ist.
<xsd:element minOccurs="0" maxOccurs="0"/>
ist eine gültige Kombination, die das Element verbietet.
Weitere Informationen finden Sie unter http://www.w3.org/TR/xmlschema-0/#OccurrenceConstraints
Neue, erweiterte Antwort auf eine alte, häufig gestellte Frage ...
minOccurs
und maxOccurs
default auf 1
.<xsd:element name="A"/>
bedeutet A
ist erforderlich und muss genau einmal erscheinen.
<xsd:element name="A" minOccurs="0"/>
bedeutet A
ist optional und kann höchstens einmal erscheinen.
<xsd:element name="A" maxOccurs="unbounded"/>
bedeutet A
ist erforderlich und kann ein unbegrenzte Anzahl von Malen wiederholen.
<xsd:element name="A" minOccurs="0" maxOccurs="unbounded"/>
bedeutet A
ist optional und kann ein unbegrenzte Anzahl von Malen wiederholen.
Im Allgemeinen muss ein Element angezeigt werden, wenn der Wert von minOccurs ist 1 oder mehr. Die maximale Anzahl, wie oft ein Element Einrichten wird durch den Wert eines maxOccurs-Attributs in seinem .__ bestimmt. Erklärung. Dieser Wert kann eine positive ganze Zahl sein, z. B. 41 oder Begriff unbegrenzt, um anzuzeigen, dass es keine maximale Anzahl von Vorkommen gibt . Der Standardwert für die Attribute minOccurs und maxOccurs ist 1. Wenn also ein Element wie der Kommentar ohne .__ deklariert wird. maxOccurs-Attribut darf das Element nur einmal vorkommen. Sicher sein Wenn Sie nur für das minOccurs-Attribut einen Wert angeben, ist es kleiner oder gleich dem Standardwert von maxOccurs, d. h. 0 oder 1 . Wenn Sie nur für das Attribut "maxOccurs" einen Wert angeben, muss dieser gleich oder größer als der Standardwert "minOccurs" .__ sein. 1 oder mehr. Wenn beide Attribute weggelassen werden, muss das Element genau einmal erscheinen.
W3C XML Schema Teil 1: Strukturen Zweite Ausgabe
<element
maxOccurs = (nonNegativeInteger | unbounded) : 1
minOccurs = nonNegativeInteger : 1
>
</element>
Kurze Antwort:
Wie in xsd geschrieben:
<xs:attribute name="minOccurs" type="xs:nonNegativeInteger" use="optional" default="1"/>
<xs:attribute name="maxOccurs" type="xs:allNNI" use="optional" default="1"/>
Wenn Sie ein Attribut mit Nummer angeben, ist die Nummer eine Begrenzung. Ansonsten sollte das Attribut genau einmal erscheinen .