Beispiel für eine Typdefinition in der Großbuchstaben und die Zeichen Hochkomma (
Entität ") und Minus erlaubt sind.
<xs:simpleType name="Beispiel">
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z"-]+"/>
</xs:restriction>
</xs:simpleType>
Im Beispiel wird festgelegt, dass eine Bestellung eine Bezeichnung, 2 bis 4 Features,
1 bis unendlich viele Hinweise und eine LaufendeNr als Attribut enthalten muß.
Die Artikelnummer ist optional.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Bestell-Liste">
<xs:complexType>
<xs:sequence>
<xs:element name="Bestellung" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Bezeichnung" type="xs:string"/>
<xs:element name="Artikel-Nummer" minOccurs="0" type="xs:positiveInteger"/>
<xs:element name="Features" minOccurs="1" maxOccurs="4" type="xs:string"/>
<xs:element name="Hinweis" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="LaufendeNr" type="xs:positiveInteger" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Inhalt einer XML-Beispieldatei für das Schema:
<?xml version="1.0" encoding="UTF-8"?>
<Bestell-Liste>
<Bestellung Nr="1">
<Bezeichnung>Telefon 1</Bezeichnung>
<Artikel-Nummer>4711</Artikel-Nummer>
<Features>Farbe: Silber</Features>
<Features>Basissation mit AB</Features>
<Hinweis>10% Preisnachlass auf das alte Modell</Hinweis>
</Bestellung>
<Bestellung Nr="2">
<Bezeichnung>Telefone</Bezeichnung>
<Features>Farbe: Schwarz</Features>
<Features>Schnurlos</Features>
<Hinweis>Kunde möchte 10 Stück</Hinweis>
</Bestellung>
</Bestell-Liste>
Per Choice wird festgelegt, dass nur ein Element einer Auswahl vorhanden sein darf. (Hier also nur das Element kW oder PS.)
XML-Schema:
...
<xs:element name="Motor">
<xs:complexType>
<xs:choice>
<xs:element name="kW" type="xs:positiveInteger"/>
<xs:element name="PS" type="xs:positiveInteger"/>
</xs:choice>
</xs:complexType>
</xs:element>
...
XML-Bsp:
<?xml version="1.0" encoding="UTF-8"?>
<Motor xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<kW>44</kW>
</Motor>
Per All wird festgelegt, dass alle Elemente aufgeführt sein müssen, die Reihenfolge aber ist egal.
XML-Schema:
...
<xs:element name="Name">
<xs:complexType>
<xs:all>
<xs:element name="Vorname" type="xs:string"/>
<xs:element name="Nachname" type="xs:string"/>
</xs:all>
</xs:complexType>
</xs:element>
...
XML-Bsp:
<?xml version="1.0" encoding="UTF-8"?>
<Name xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Nachname>Kneller</Nachname>
<Vorname>Juergen</Vorname>
</Name>