Link zu www.kneller-gifs.de

XML-Schema - Datentypen (Beispiele Einschränkungen)

Weitere Beispiele für eigene Datentypen:

Null oder ein- bis 5stellige positive Zahl.
Bsp. gültige Werte: 0, 1, ... 99999, auch 01 oder 001
...
<xs:element name="Zahl">
  <xs:simpleType>
    <xs:restriction base="xs:nonNegativeInteger">
      <xs:maxInclusive value="99999"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>
...

Genau 5 Ziffern.
Bsp. gültige Werte: 00000, 00001 ... 99999
...
<xs:element name="Zahl">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="\d{5}"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>
...

Mind. 10 höchstens 20 Ziffern.
Bsp. gültige Werte: 0000000000, 123456789012345, 12345678901234567890
...
<xs:element name="Zahl">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:maxLength value="20"/>
      <xs:minLength value="10"/>
      <xs:pattern value="\d*"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>
...

Dezimalzahl mit max. zwei Nachkommastellen, größer 0 und max. 9.99.
Bsp. gültige Werte: 0.01, 0.1, 1, 01, 7.89
...
<xs:element name="Zahl">
  <xs:simpleType>
    <xs:restriction base="xs:decimal">
      <xs:fractionDigits value="2"/>
      <xs:minExclusive value="0"/>
      <xs:maxInclusive value="9.99"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>
...

Dezimalzahl mit genau einer Vorkomma- und zwei Nachkommastellen.
Bsp. gültige Werte: 0.01, 0.12, 7.89
...
<xs:element name="Zahl">
  <xs:simpleType>
    <xs:restriction base="xs:decimal">
      <xs:minInclusive value="0.01"/>
      <xs:pattern value="\d\.\d\d"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>
...

Dezimalzahl mit ein bis 4 Vorkomma- und zwei Nachkommastellen, keine führenden Nullen.
Bsp. gültige Werte: 0.01, 0.12, 77.89, 1234.50
...
<xs:element name="Zahl">
  <xs:simpleType>
    <xs:restriction base="xs:decimal">
      <xs:minInclusive value="0.01"/>
      <xs:maxInclusive value="9999.99"/>
      <xs:pattern value="(0|[1-9][0-9]*)\.\d\d"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>
...

Ein oder zwei Zeichen aus einem vorgegebenen Zeichenvorrat (0 bis 9, A, B oder X).
Bsp. gültige Werte: 00, 7B, AX, X9, BB
...
<xs:element name="Wert">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:maxLength value="2"/>
      <xs:minLength value="1"/>
      <xs:pattern value="[0-9ABX]*"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>
...

1 bis 10 Zeichen aus dem Zeichenvorrat (0 bis 9 oder A bis Z) oder "-TEST-".
Bsp. gültige Werte: 00, ABC, 12345ABZZZ, -TEST-
...
<xs:element name="WertOder-TEST-">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:maxLength value="10"/>
      <xs:minLength value="1"/>
      <xs:pattern value="[0-9A-Z]*|-TEST-"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>
...

Min. 1, max. 10 Zeichen, das erste Zeichen aus dem Zeichenvorrat (Buchstabe oder Ziffer), Rest beliebige Zeichen.
Bsp. gültige Werte: aaaaa, 1-3undxyz
...
<xs:element name="Wert">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:maxLength value="10"/>
      <xs:minLength value="1"/>
      <xs:pattern value="[a-zA-Z0-9].*"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>
...

Entweder true oder false oder 0 oder 1.
Bsp. gültige Werte: true, false, 0, 1
...
<xs:element name="JaNein">
  <xs:simpleType>
    <xs:restriction base="xs:boolean"/>
  </xs:simpleType>
</xs:element>
...

Entweder true oder 1 (keine 0 oder false). Bsp. gültige Werte: true, 1
...
<xs:element name="Ja">
  <xs:simpleType>
    <xs:restriction base="xs:boolean">
      <xs:pattern value="true|1"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>
...

Eine der Vorgaben.
Bsp. gültige Werte: AA, B, 3
...
<xs:element name="Auswahl">
  <xs:simpleType>
    <xs:restriction base="xs:NMTOKEN">
      <xs:enumeration value="AA"/>
      <xs:enumeration value="B"/>
      <xs:enumeration value="XY"/>
      <xs:enumeration value="XY"/>
      <xs:enumeration value="1"/>
      <xs:enumeration value="2"/>
      <xs:enumeration value="3"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>
...
NMTOKEN: Buchstaben, Ziffern, Punkt, Doppelpunkt, Bindestrich, Unterstrich (keine Leerzeichen).

Jahr von 1900 bis 2099. Bsp. gültige Werte: 1900, 2011, 2099
...
<xs:element name="Jahr">
  <xs:simpleType>
      <xs:restriction base="xs:string">
      <xs:pattern value="(19\d\d|20\d\d)"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>
...
19ZifferZiffer oder 20ZifferZiffer

Datum mit Sommer-/Winterzeit, eingeschränkt auf den Bereich 1900-01-01 bis 2099-12-31.
Bsp. gültige Werte: 1900-01-01+01:00, 2011-12-24+02:00
...
<xs:element name="Datum">
  <xs:simpleType>
    <xs:restriction base="xs:date">
      <xs:minInclusive value="1900-01-01+01:00"/>
      <xs:maxInclusive value="2099-12-31+01:00"/>
      <xs:pattern value=".+\+02:00"/>
      <xs:pattern value=".+\+01:00"/>
      <xs:pattern value=".+\+00:00"/>
      <xs:pattern value=".+Z"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>
...

Nur ISO 8851-Code.
...
<xs:element name="Wert">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[\p{IsBasicLatin}\p{IsLatin-1Supplement}]+"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>
...
Der Pattern \p{name} entspricht einem beliebigen Zeichen in der allgemeinen Unicode-Kategorie oder einem durch "name" angegebenen benannten Block.
Hier werden die ersten 256 Unicode-Zeichen (von #x0000 bis #x00ff) definiert:
0000 - 007F: IsBasicLatin (Basic Latin = ASCII-Codetabelle)
0080 - 00FF: IsLatin-1Supplement (Latin-1 = Codetabelle von ISO 8859-1)
Details zu den Zeichen findet man bei: http://de.selfhtml.org/inter/unicode.htm