XML Schema Definition (XSD)

XSD (XML Schema Definition), definiert die Dokumentstruktur für einen XML-basierten Dokumententyp, dazu gehören die Elemente, Attribute und deren Inhalt. Es ist eine XML-basierte Sprache mit der üblichen *.xsd Endung.

Ein XML-Schema kann wie folgt aussehen:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

 <xs:element name="note">
   <xs:complexType>
     <xs:sequence>
       <xs:element name="to" type="xs:string"/>
       <xs:element name="from" type="xs:string"/>
       <xs:element name="heading" type="xs:string"/>
       <xs:element name="body" type="xs:string"/>
     </xs:sequence>
   </xs:complexType>
 </xs:element>

 </xs:schema>

Die Deklaration erfolgt durch „xs:element“ mit den Attributen „name“ für Name, „type“ für den Typen und „minOccurs“, „maxOccurs“ für die „minimale“, „maximale“ Anzahl an Werten.

Man kann auch Attribute definieren. Je nachdem in welcher Baumposition diese stehen, sind es lokale oder globale Attribute.

// Globales Attribut
<xs:attribute name="comment" type="xs:string" />

// Lokales Attribut
<xsd:complexType name="PurchaseOrderType">
    <xs:attribute name="comment" type="xs:string" />
</xsd:complexType>

Durch das Attribut „use“ in der Attributdeklaration lassen sich folgende Attribute eintragen:

  • optional (Attribut ist Optional)
  • required (Attribut ist verpflichtend)
  • prohibited (Attribut ist nicht erlaubt)

XSD Beispiel

XML Schema für eine CD-Datenbank
XML Dokument:

<catalog name="My CD´s">
    <disc title="Krawall" artist="7" year="2001">
        <song title="Krawallation" artist="7" length="61" index="1"/>
    </disc>
</catalog>

XML Schema XSD:

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

    <xsd:element name="catalog" type="catalogType"/>
    
    <xsd:complexType name="catalogType">
        <xsd:sequence>
            <xsd:element name="disc" type="discType" minOccurs="0" maxOccurs="unbounded" />
        </xsd:sequence>
        <xsd:attribute name="name" type="xsd:string"/>
    </xsd:complexType>
    
    <xsd:complexType name="discType">
        <xsd:sequence>
            <xsd:element name="song" type="songType" minOccurs="1" maxOccurs="unbounded" />
        </xsd:sequence>
        <xsd:attribute name="title" type="xsd:string"/>
        <xsd:attribute name="artist" type="xsd:IDREF"/>
        <xsd:attribute name="year" type="xsd:gYear"/>
    </xsd:complexType>
    
    <xsd:complexType name="songType">
        <xsd:attribute name="title" type="xsd:string"/>
        <xsd:attribute name="artist" type="xsd:IDREF"/>
        <xsd:attribute name="length" type="xsd:int"/>
        <xsd:attribute name="index" type="xsd:int"/>
    </xsd:complexType>
    
</xsd:schema>
Marvin Sengera

Marvin Sengera

Hey! Ich bin Marvin Sengera, Inhaber der Internetagentur "Binärfabrik" aus Paderborn. Ich habe mein Bachelorstudium Informatik mit Schwerpunkt Industriespionage an der Hochschule Hamm Lippstadt abgeschlossen und absolviere derzeit meinen Master in Fachrichtung "Technical Entrepreneurship and Innovation". Ich beschäftige mich rund um die Themen Informatik, Innovation & Unternehmensgründung.

Das könnte Dich auch interessieren …

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.