Link zu www.kneller-gifs.de

XML-Schema - Datentypen (Entitäten, Häufigkeitsindikatoren)

ZeichenEntity-ReferenzBedeutung
< &lt; less than
> &gt; greater than
& &amp; Ampersand
' &apos;Apostroph
" &quot;quotation mark

Beispiel für eine Typdefinition in der Großbuchstaben und die Zeichen Hochkomma (Entität &quot;) und Minus erlaubt sind.
<xs:simpleType name="Beispiel">
  <xs:restriction base="xs:string">
    <xs:pattern value="[A-Z&quot;-]+"/>
  </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>