XML Schema Einführung

25.01.2017 11:31 Uhr

XML Schema Einführung

XML Beispiel:

<?xml version="1.0" encoding="UTF-8"?>
<kunstsammlung xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="kunstsammlung.xsd">
    
    <name>Neue schöne Bilder</name>
    
     <kunstwerk>
         <info>
             <titel>Mona Lisa vor dem Eiffelturm</titel>
             <jahr>2012</jahr>
             <kuenstler>Leonarda da Vinci</kuenstler>
         </info>
     </kunstwerk>
    
</kunstsammlung>

Headerinformation

Da ein XML-Schema-Dokument selbst XML-basiert ist, beginnt das Dokument immer mit der PI:

<?xml version=“1.0“ encoding =“utf-8“?>

gefolgt von dem root-Element <xs:schema>, das die Namensraumdeklaration als Attribute enthält.

<xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema>

Danach wird die eigentliche Struktur möglichst detailliert und strikt mit einfachen und komplexen Elementen beschrieben. Einfache Elemente können im Gegensatz zu den komplexen Elementen keine weiteren Elemente und keine Attribute beinhalten.


Einfache Elemente

Einfache Elemente = simple types werden eingesetzt, um Elemente zu definieren, die nur reinen Text (PCData) und weder Kind-Elemente noch Attribute beinhalten.

Allgemeine Definition:

<xs:element name="xyz" type="abc"/>

Die Wertzuweisung des Attributs name legt die Bezeichnung des Elementes und type den Datentyp fest.

<xs:element name="nachname" type="xs:string"/>

Datentypen

In XML-Schema vordefinierte, häufig vorkommende Datentypen sind:

  1. string = Normale Zeichenketten (Text)
  2. integer = Ganze Zahlen (ohne Komma)
  3. decimal =Dezimalzahlen (mit Komma)
  4. boolean = Wahrheitswert: 0 oder 1 oder true oder false
  5. date = Datumsformat Jahr-Monat-Tag
  6. time = Zeitformat

Mittels der Wertzuweisung des Attributs default bzw. fixed kann ein veränderbarer Vorgabewert oder ein unveränderbarer Wert für die Instanz festgelegt werden:

<xs:element name="sex" type="string" default=“female“/>
<xs:element name="color" type="string" fixed=“black“/>

Restriktionen

XML-Schema ermöglicht es, innerhalb eines Datentyps eine Auswahl an möglichen Werten festzulegen, z.B. einen Wertebereich von 0 bis 125:

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

Analog kann dies auch mit Text über eine Auswahlliste erfolgen:

<xs:element name="Bundeslaender">
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:enumeration value="NRW"/>
            <xs:enumeration value="Rheinland Pfalz"/>
            <xs:enumeration value="Saarland"/>
        </xs:restriction>
    </xs:simpleType>
</xs:element>

Die Auswahl kann ebenso auf Zeichenebene erfolgen:

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

oder:

<xs:element name="plz">
    <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>

oder

<xs:element name="Existenz">
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:pattern value="Sein|nichtSein"/>
        </xs:restriction>
    </xs:simpleType>
</xs:element>

Übersicht

 Restriktions- Basis  Begriffsbestimmung
 enumeration  Auflistung möglicher Werte.
 fractionDigits  Angabe der maximalen Ziffernanzahl der Nachkommastellen bei numerischen Werten.
 length  Feste Längenvorgabe für die Anzahl der Zeichen.
 maxExclusive  Angabe zur oberen Grenze eines Intervalls, wobei der Grenzwert nicht enthalten ist.
 maxInclusive  Angabe zur oberen Grenze eines Intervalls, wobei der Grenzwert Teil des Intervalls ist.
 maxLength  Angabe der maximalen Länge der Anzahl der Zeichen.
 minExclusive  Angabe zur untern Grenze eines Intervalls, wobei der Grenzwert nicht enthalten ist.
 minInclusive  Angabe zur untern Grenze eines Intervalls, wobei der Grenzwert Teil des Intervalls ist.
 minLength  Angabe der minimalen Länge der Anzahl der Zeichen.
 pattern  Festlegung von gültigen Zeichenfolgen.
 totalDigits  Angabe der maximalen Ziffernanzahl bei numerischen Werten.
 whiteSpace  Definiert die Umsetzung von nicht sichtbaren Zeichen wie Zeilenumbruch, Tabulator, Leerzeichen usw.

vorherige Seite / nächste Seite

Schlagwörter: