| Teile: | Teil: XML Teil: PHP Quellenverzeichnis |
| Pfad: | > Teil: XML > XML-Schema |
| Benachbarte Abschnitte: | Grundlagen Definition komplexer Typen, Elementen- und Attributdeklaration Simple Typen Anonyme Typ-Definitionen Element-Inhalte Kommentare (annotations) Aufbau von Inhaltsmodellen Attribut-Gruppen NIL-Werte |
| Untergeordnete Abschnitte: | Aufzählungstypen (List Types) Vereinigungstypen (Union Types) |
XML-Schema bringt eine Reihe von vordefinierten, simplen Typen mit. Des Weiteren ist es möglich, neue simple Typen durch Vererbung zu definieren. Beide Arten von simplen Typen können nachfolgend in Element- und Attribut-Deklarationen verwendet werden. Die andere Form definierter Typen, die komplexen Typen, können lediglich auf Elemte angewendet werden,
Simpler Typ |
Beispiele (Kommata-getrennt) |
Hinweise |
|---|---|---|
String |
Confirm this is electric |
|
NormalizedString |
Confirm this is electric |
siehe (3) |
token |
Confirm this is electric |
siehe (4) |
byte |
-1, 126 |
siehe (2) |
UnsignedByte |
0, 126 |
siehe (2) |
base64Binary |
GpM7 |
|
HexBinary |
0FB7 |
|
Integer |
-126789, -1, 0, 1, 126789 |
siehe (2) |
PositiveInteger |
1, 126789 |
siehe (2) |
NegativeInteger |
-126789, -1 |
siehe (2) |
NonNegativeInteger |
0, 1, 126789 |
siehe (2) |
NonPositiveInteger |
-126789, -1, 0 |
siehe (2) |
int |
-1, 126789675 |
siehe (2) |
UnsignedInt |
0, 1267896754 |
siehe (2) |
long |
-1, 12678967543233 |
siehe (2) |
UnsignedLong |
0, 12678967543233 |
siehe (2) |
short |
-1, 12678 |
siehe (2) |
UnsignedShort |
0, 12678 |
siehe (2) |
decimal |
-1.23, 0, 123.4, 1000.00 |
siehe (2) |
float |
-INF, -1E4, -0, 0, 12.78E-2, 12, INF, NaN |
Äquivalent zu einfach-genauem 32-Bit-Fließkomma; NaN bedeutet "not a number", siehe (2) |
double |
-INF, -1E4, -0, 0, 12.78E-2, 12, INF, NaN |
Äquivalent zu einfach doppelt-genauem 64-bit Fließkomma; NaN bedeutet "not a number", siehe (2) |
boolean |
True, false 1, 0 |
|
time |
13:20:00.000, 13:20:00.000-05:00 |
siehe (2) |
dateTime |
1999-05-31T13:20:00.000-05:00 |
31. Mai 1999, 13:20 Uhr Eastern Standard Time (5 Stunden auf Co-Ordinated Universal Time zurück), siehe (2) |
duration |
P1Y2M3DT10H30M12.3S |
1 Jahr, 2 Monate, 3 Tage, 10 Stunden, 30 Minuten und 12.3 Sekunden |
date |
1999-05-31 |
siehe (2) |
gMonth |
--05-- |
Mai, siehe (2) (5) |
gYear |
1999 |
1999, siehe (2) (5) |
gYearMonth |
1999-02 |
Der Monat Februar 1999, unabhängig der Anzahl von Tagen, siehe (2) (5) |
gDay |
---31 |
der 31. Tag, siehe (2) (5) |
gMonthDay |
--05-31 |
jeder 31. Mai, siehe (2) (5) |
Name |
ShipTo |
XML 1.0 Name type |
QName |
po:USAddress |
XML Namespace QName |
NCName |
USAddress |
XML Namespace NCName, d.h. QName ohne Präfix und Doppelpunkt |
anyURI |
Http://www.example.com/, http://www.example.com/doc.html#ID5 |
|
language |
en-GB, en-US, fr |
Gültige Werte für xml:lang wie in XML 1.0 |
ID |
XML 1.0 ID Attribut-Typ, siehe (1) |
|
IDREF |
XML 1.0 IDREF Attribut-Typ, siehe (1) |
|
IDREFS |
XML 1.0 IDREFS Attribut-Typ, siehe (1) |
|
ENTITY |
XML 1.0 ENTITY Attribut-Typ, siehe (1) |
|
ENTITIES |
XML 1.0 ENTITIES Attribut-Typ, siehe (1) |
|
NOTATION |
XML 1.0 NOTATION Attribut-Typ, siehe (1) |
|
NMTOKEN |
US, Brésil |
XML 1.0 NMTOKEN Attribut-Typ, siehe (1) |
NMTOKENS |
US UK, Brésil Canada Mexique |
XML 1.0 NMTOKENS Attribut-Typ, d.h. eine Whitespace-getrennte List von NMTOKEN's, siehe (1) |
Hinweise:
|
Neue simple Typen werden von bestehenden (eingebauten oder hergeleiteten) abgeleitet. Dazu wird der vorhandene Type in seinem Umfang eingeschränkt, so dass der neu entstehende Typ eine Untermenge des ursprünglichen Typs darstellt.
Das simpleType-Element wird verwendet, um den neuen, simplen Typ zu benennen und zu definieren. In ihm wird das restriction-Element verwendet, um den Basistypen zu spezifizieren, von dem abgeleitet werden soll, und die "facets" (Facetten) zu benennen, die die Einschränkungen darstellen. Mögliche Facetten: length, minLength, maxLength, pattern, enumeration, whiteSpace, maxInclusive, maxExclusive, minInclusive, minExclusive, totalDigits und fractionDigits. Nicht alle Facetten können jedoch auf alle Typen angewendet werden.
Soll ein neuer Integer-Typ gebildet werden, bei dem die Spanne gültiger Werte von 10000 bis zu 99999 (inklusive) reicht, wird vom simplen Typen integer abgeleitet, und entsprechend der minimale und maximale Wert begrenzt.
<xsd:simpleType name="myInteger">
<xsd:restriction base="xsd:integer">
<xsd:minInclusive value="10000"/>
<xsd:maxInclusive value="99999"/>
</xsd:restriction>
</xsd:simpleType>
Andere Restriktionen führen ggf. ebenfalls zum gewünschten Ergebnis.
Mit pattern's lassen sich reguläre Ausdrücke zum Beschränken des Gültigkeitsbereichs von string-Typen verwenden.
<xsd:simpleType name="SKU">
<xsd:restriction base="xsd:string">
<xsd:pattern value="\d{3}-[A-Z]{2}"/> </xsd:restriction>
</xsd:simpleType>
Unter den genannten Facetten ist vor allem enumeration sehr nützlich. Es läßt sich auf alle Typen anwenden (außer boolean). Es beschränkt einen simplen Typen auf eine benannte Liste eindeutiger Werte.
<xsd:simpleType name="USState">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="AK"/>
<xsd:enumeration value="AL"/>
<xsd:enumeration value="AR"/>
<!-- u.s.w. -->
</xsd:restriction>
</xsd:simpleType>






