Neueste Web-Entwicklung Tutorials
 

XSD Einschränkungen / Facets


Einschränkungen verwendet werden, um akzeptable Werte für XML-Elemente oder Attribute definieren. Einschränkungen für XML-Elemente sind Facetten genannt.


Einschränkungen für Werte

Das folgende Beispiel definiert ein Element namens "age" mit einer Einschränkung. Der Wert des Alters kann nicht niedriger sein als 0 oder größer als 120:

<xs:element name="age">
  <xs:simpleType>
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="0"/>
      <xs:maxInclusive value="120"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Einschränkungen für eine Reihe von Werten

Um auf einen Satz von akzeptablen Werten den Inhalt eines XML-Elements begrenzen, würden wir die Aufzählung Einschränkung verwenden.

Das folgende Beispiel definiert ein Element namens "car" mit einer Einschränkung. Die einzigen zulässigen Werte sind: Audi, Golf, BMW :

<xs:element name="car">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:enumeration value="Audi"/>
      <xs:enumeration value="Golf"/>
      <xs:enumeration value="BMW"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Das obige Beispiel könnte auch so geschrieben worden sind:

<xs:element name="car" type="carType"/>

<xs:simpleType name="carType">
  <xs:restriction base="xs:string">
    <xs:enumeration value="Audi"/>
    <xs:enumeration value="Golf"/>
    <xs:enumeration value="BMW"/>
  </xs:restriction>
</xs:simpleType>

Note: In diesem Fall ist der Typ "carType" kann durch andere Elemente verwendet werden , da es nicht ein Teil der ist "car" Element.


Einschränkungen für eine Reihe von Werten

Um den Inhalt eines XML-Elements begrenzen eine Reihe von Zahlen oder Buchstaben zu definieren, die verwendet werden können, würden wir die Muster-Einschränkung verwenden.

Das folgende Beispiel definiert ein Element namens "letter" mit einer Einschränkung. Der einzige annehmbare Wert ist einer der Kleinbuchstaben von a bis z:

<xs:element name="letter">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[a-z]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Das nächste Beispiel definiert ein Element namens "initials" mit einer Einschränkung. Der einzige annehmbare Wert ist drei der Großbuchstaben von a bis z:

<xs:element name="initials">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[A-Z][A-Z][A-Z]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Das nächste Beispiel definiert auch ein Element namens "initials" mit einer Einschränkung. Der einzige annehmbare Wert ist drei der klein oder groß geschrieben Buchstaben von a bis z:

<xs:element name="initials">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Das nächste Beispiel definiert ein Element namens "choice" mit einer Einschränkung. Der einzige annehmbare Wert ist eine der folgenden Buchstaben: x, y oder z:

<xs:element name="choice">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[xyz]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Das nächste Beispiel definiert ein Element namens "prodid" mit einer Einschränkung. Die einzige akzeptable Wert fünf Stellen in einer Abfolge, wobei jede Ziffer in einem Bereich von 0 bis 9 sein muss:

<xs:element name="prodid">
  <xs:simpleType>
    <xs:restriction base="xs:integer">
      <xs:pattern value="[0-9][0-9][0-9][0-9][0-9]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Weitere Einschränkungen für eine Reihe von Werten

Das folgende Beispiel definiert ein Element namens "letter" mit einer Einschränkung. Der zulässige Wert ist null oder mehr Vorkommen von Kleinbuchstaben von a bis z:

<xs:element name="letter">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="([a-z])*"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Das nächste Beispiel definiert auch ein Element namens "letter" mit einer Einschränkung. Der zulässige Wert ist, ein oder mehrere Paare von Buchstaben, wobei jedes Paar aus einem Kleinbuchstaben mit einem Großbuchstaben gefolgt. Zum Beispiel, "sToP" wird dieses Muster validiert werden, aber nicht "Stop" oder "STOP" oder "stop" :

<xs:element name="letter">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="([a-z][A-Z])+"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Das nächste Beispiel definiert ein Element namens "gender" mit einer Einschränkung. Der einzige annehmbare Wert ist männlich oder weiblich:

<xs:element name="gender">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="male|female"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Das nächste Beispiel definiert ein Element namens "password" mit einer Einschränkung. Es muss genau acht Zeichen in einer Reihe sein, und diese Zeichen müssen Klein- oder Großbuchstaben von a bis z sein, oder eine Zahl von 0 bis 9:

<xs:element name="password">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[a-zA-Z0-9]{8}"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Einschränkungen bei Whitespaces

Um festzulegen, wie Leerzeichen behandelt werden sollen, würden wir den Leer Einschränkung verwenden.

In diesem Beispiel wird ein Element namens "address" mit einer Einschränkung. Die Einschränkung whitespace wird auf "preserve" , was bedeutet , dass der XML - Prozessor keine Leerzeichen NICHT entfernen wird:

<xs:element name="address">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:whiteSpace value="preserve"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

In diesem Beispiel wird auch ein Element namens "address" mit einer Einschränkung. Die Einschränkung whitespace wird auf "replace" , was bedeutet , dass der XML - Prozessor alle Leerzeichen ersetzt (Zeilenumbrüche, Tabulatoren, Leerzeichen und Wagenrücklauf) mit Leerzeichen:

<xs:element name="address">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:whiteSpace value="replace"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

In diesem Beispiel wird auch ein Element namens "address" mit einer Einschränkung. Die whitespace Zwang gesetzt ist "collapse" , was bedeutet , dass der XML - Prozessor alle Leerzeichen entfernen wird (Zeilenumbrüche, Tabulatoren, Leerzeichen, Zeilenumbrüche durch Leerzeichen ersetzt werden, führende und nachgestellte Leerzeichen werden entfernt, und mehrere Räume werden reduziert ein einzelnes Leerzeichen):

<xs:element name="address">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:whiteSpace value="collapse"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Einschränkungen für Länge

Um die Länge eines Wertes in einem Element zu begrenzen, würden wir die Länge, maxLength und minLength Einschränkungen verwenden.

In diesem Beispiel wird ein Element namens "password" mit einer Einschränkung. Der Wert muss genau acht Zeichen lang sein:

<xs:element name="password">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:length value="8"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

In diesem Beispiel wird ein weiteres Element namens "password" mit einer Einschränkung. Der Wert muss mindestens fünf Zeichen und maximal acht Zeichen lang sein:

<xs:element name="password">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:minLength value="5"/>
      <xs:maxLength value="8"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Einschränkungen für Datentypen

Zwang Beschreibung
enumeration Definiert eine Liste von akzeptablen Werten
fractionDigits Gibt die maximale Anzahl der Nachkommastellen erlaubt Orte. Muss gleich oder größer als Null
length Gibt die genaue Anzahl der Zeichen oder Listenelemente erlaubt. Muss gleich oder größer als Null
maxExclusive Gibt die oberen Grenzen für numerische Werte (der Wert muss als dieser Wert geringer sein)
maxInclusive Gibt die oberen Grenzen für numerische Werte (der Wert muss kleiner sein als oder gleich diesem Wert)
maxLength Gibt die maximale Anzahl von Zeichen oder Listenelemente erlaubt. Muss gleich oder größer als Null
minExclusive Gibt die untere Grenze für numerische Werte (der Wert muss als dieser Wert größer sein)
minInclusive Gibt die untere Grenze für numerische Werte (muss der Wert größer oder gleich diesem Wert)
minLength Gibt die minimale Anzahl von Zeichen oder Listenelemente erlaubt. Muss gleich oder größer als Null
pattern Legt die genaue Abfolge von Zeichen, die akzeptabel sind
totalDigits Gibt die genaue Anzahl der erlaubten Stellen. Muss größer als Null
whiteSpace Gibt an, wie Leerraum (Zeilenumbrüche, Tabulatoren, Leerzeichen und Wagenrücklauf) behandelt wird