wake-up-neo.com

XML-Schema minOccurs/maxOccurs-Standardwerte

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?

191
Chris

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

305
jasso

Neue, erweiterte Antwort auf eine alte, häufig gestellte Frage ...

Standardwerte

  • Vorkommensbeschränkungen minOccurs und maxOccursdefault auf 1.

Häufige Fälle erklärt

<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.


Siehe auch

  • W3C XML Schema Part 0: Primer

    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>
    
53
kjhughes

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 .

0
Daniel Perník