24
XML Schema Was versteht man unter XML Schema?

XML Schema Was versteht man unter XML Schema?. Was ist ein XML Schema? Definiert Inhalt und Struktur Beschreibt Elemente und Attribute die in XML Dokument

Embed Size (px)

Citation preview

Page 1: XML Schema Was versteht man unter XML Schema?. Was ist ein XML Schema? Definiert Inhalt und Struktur Beschreibt Elemente und Attribute die in XML Dokument

XML Schema

Was versteht man unter XML Schema?

Page 2: XML Schema Was versteht man unter XML Schema?. Was ist ein XML Schema? Definiert Inhalt und Struktur Beschreibt Elemente und Attribute die in XML Dokument

Was ist ein XML Schema?

● Definiert Inhalt und Struktur

● Beschreibt Elemente und Attribute die in XML Dokument enthalten sein dürfen

● Bestimmt Art und Weise der Ordnung dieser Elemente

Page 3: XML Schema Was versteht man unter XML Schema?. Was ist ein XML Schema? Definiert Inhalt und Struktur Beschreibt Elemente und Attribute die in XML Dokument

Was ist XML Schema?

Oder: weitere Möglichkeit, gültige XML Dokumente zu erstellen.

Andere Möglichkeit:DTD

Page 4: XML Schema Was versteht man unter XML Schema?. Was ist ein XML Schema? Definiert Inhalt und Struktur Beschreibt Elemente und Attribute die in XML Dokument

Unterschied Schema / DTD

XML Schema bietet 2 wesentliche Vorteile:

● Verbesserte Möglichkeit der genauen, eindeutigen Bestimmung von Inhalt und Struktur.

● In XML Syntax verfasst

Page 5: XML Schema Was versteht man unter XML Schema?. Was ist ein XML Schema? Definiert Inhalt und Struktur Beschreibt Elemente und Attribute die in XML Dokument

Syntax von XML Schema

<?xml version="1.0"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="Buch"> <xsd:complexType> <xsd:sequence> <xsd:element name="TITEL" type="xsd:string"/> <xsd:element name="AUTOR" type="xsd:string"/> <xsd:element name="EINBAND" type="xsd:string"/> <xsd:element name="PREIS" type="xsd:decimal"/> </xsd:sequence> <xsd:attribute name="Vorhanden"type="xsd:boolean"

use="required"/>

</xsd:complexType> </xsd:element></xsd:schema>

Page 6: XML Schema Was versteht man unter XML Schema?. Was ist ein XML Schema? Definiert Inhalt und Struktur Beschreibt Elemente und Attribute die in XML Dokument

XML Schema- Syntax

● Beginnt immer mit XML Deklaration

● Als Dokumentelement immer <xs:schema...

● Danach Dokumentelement des XML Instanzdokuments.

Page 7: XML Schema Was versteht man unter XML Schema?. Was ist ein XML Schema? Definiert Inhalt und Struktur Beschreibt Elemente und Attribute die in XML Dokument

Syntax von XML Schema

<?xml version="1.0"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="Buch"> <xsd:complexType> <xsd:sequence> <xsd:element name="TITEL" type="xsd:string"/> <xsd:element name="AUTOR" type="xsd:string"/> <xsd:element name="EINBAND" type="xsd:string"/> <xsd:element name="PREIS" type="xsd:decimal"/> </xsd:sequence> <xsd:attribute name="Vorhanden"type="xsd:boolean"

use="required"/>

</xsd:complexType> </xsd:element></xsd:schema>

Page 8: XML Schema Was versteht man unter XML Schema?. Was ist ein XML Schema? Definiert Inhalt und Struktur Beschreibt Elemente und Attribute die in XML Dokument

Syntax: Elemente einfachen Typs

<xs:element name=“ELEMENT1“type=“string“/>

<!ELEMENT ELEMENT1 (#PCDATA)>

Page 9: XML Schema Was versteht man unter XML Schema?. Was ist ein XML Schema? Definiert Inhalt und Struktur Beschreibt Elemente und Attribute die in XML Dokument

Syntax: Elemente einfachen Typs

<xs:element name=“ELEMENT1“type=“anyURI“/>

<!ELEMENT ELEMENT1 (#PCDATA)>

Page 10: XML Schema Was versteht man unter XML Schema?. Was ist ein XML Schema? Definiert Inhalt und Struktur Beschreibt Elemente und Attribute die in XML Dokument

Vordefinierte einfache Datentypen

http://www.w3.org/TR/xmlschema-2/#built-in-datatypes

Page 11: XML Schema Was versteht man unter XML Schema?. Was ist ein XML Schema? Definiert Inhalt und Struktur Beschreibt Elemente und Attribute die in XML Dokument

Syntax: Elemente einfachen Typs

<xs:element name=“AKTUELL“ type=“dateTime“minOccurs=“0“/>

<xs:element name=“AKTUELL“ type=“positiveInteger“

minOccurs=“7“ maxOccurs=“11“/>

<xs:element name=“BOOKMARK“ type=“anyURI“ minOccurs=“0“ maxOccurs=“unbounded“/>

Page 12: XML Schema Was versteht man unter XML Schema?. Was ist ein XML Schema? Definiert Inhalt und Struktur Beschreibt Elemente und Attribute die in XML Dokument

Einfache Typen selbst definieren

<xs:element name=“SPEED“type=“xsd:decimal“/>

Problem:

● SPEED kann auch negative Werte annehmen● Soll maximal 210 annehmen dürfen

Page 13: XML Schema Was versteht man unter XML Schema?. Was ist ein XML Schema? Definiert Inhalt und Struktur Beschreibt Elemente und Attribute die in XML Dokument

Einfache Typen selbst definieren

<xs:element name=“SPEED“type=“xsd:decimal“> <xs:simpleType> <xs:restriction base=“xs:decimal“> <xs:minInclusive value=“0“/> <xs:maxInclusive value=“210“/> </xs:restriction> </xs:simpleType></xs:element>

Page 14: XML Schema Was versteht man unter XML Schema?. Was ist ein XML Schema? Definiert Inhalt und Struktur Beschreibt Elemente und Attribute die in XML Dokument

Datentypen Beschränken

<xs:element name=“FORMAT“> <xs:restriction base=“xs:string“> <xs:enumeration value=“JPEG“/> <xs:enumeration value=“GIF“/> <xs:enumeration value=“GIF“/> </xs:restriction></xs:element>

Page 15: XML Schema Was versteht man unter XML Schema?. Was ist ein XML Schema? Definiert Inhalt und Struktur Beschreibt Elemente und Attribute die in XML Dokument

Datentypen beschränken

<xs:element name=“ISBN“> <xs:restriction base=“xs:string“>

<xs:pattern value=“\d{1}-\d{5}-\d{3}-\d{1}“/> </xs:restriction></xs:element>

gültiges Element:

<ISBN>3-89721-501-2</ISBN>

Page 16: XML Schema Was versteht man unter XML Schema?. Was ist ein XML Schema? Definiert Inhalt und Struktur Beschreibt Elemente und Attribute die in XML Dokument

Komplexe Datentypen

<xsd:element name="Buch"> <xsd:complexType> <xsd:sequence> <xsd:element name="TITEL" type="xsd:string"/> <xsd:element name="AUTOR" type="xsd:string"/> <xsd:element name="EINBAND" type="xsd:string"/> <xsd:element name="PREIS" type="xsd:decimal"/> </xsd:sequence> </xsd:complexType></xsd:element>

Elemente, die neben Zeichendaten auch untergeodnete Elemente oder Attribute enthalten dürfen, bezeichnet man als komplexe Typen.

Page 17: XML Schema Was versteht man unter XML Schema?. Was ist ein XML Schema? Definiert Inhalt und Struktur Beschreibt Elemente und Attribute die in XML Dokument

Komplexe Datentypen

<xsd:element name="Buch"> <xsd:complexType> <xsd:sequence> <xsd:element name="TITEL" type="xsd:string"/> <xsd:element name="AUTOR" type="xsd:string"/> <xsd:element name="EINBAND" type="xsd:string"/> <xsd:element name="PREIS" type="xsd:decimal"/> </xsd:sequence> </xsd:complexType></xsd:element>

Das „sequence“ Tag weist an, dass die eingeschlossenen Elemente in der vorgegebenen Reihenfolge auftauchen müssen!

Page 18: XML Schema Was versteht man unter XML Schema?. Was ist ein XML Schema? Definiert Inhalt und Struktur Beschreibt Elemente und Attribute die in XML Dokument

Komplexe Datentypen

<xs:choice><xs:element name=“FENSTER“ type=“xs:string“/><xs:element name=“LAMPE“ type=“xs:string“/></xs:choice>

Das übergeordnete Element kann, muss aber keines der im „choice“- Block eingeschlossenen Elemente enthalten. Im Falle dass beide verwendet werden, muss die Reihenfolge eingehalten werden.

Page 19: XML Schema Was versteht man unter XML Schema?. Was ist ein XML Schema? Definiert Inhalt und Struktur Beschreibt Elemente und Attribute die in XML Dokument

Komplexe Datentypen

<xs:all><xs:element name=“FENSTER“ type=“xs:string“/><xs:element name=“LAMPE“ type=“xs:string“/></xs:all>

Bei „all“ ist die Reihenfolge der Elemente völlig beliebig. Es muss aber mindestens ein Element auftauchen, es sei denn ich setze den Wert „minOccurs=0“.

Page 20: XML Schema Was versteht man unter XML Schema?. Was ist ein XML Schema? Definiert Inhalt und Struktur Beschreibt Elemente und Attribute die in XML Dokument

Weitere Unterscheidungen:

Bei den komplexen Typen unterscheidet man zusätzlich zwischen:

● Anonymen komplexen Typen● Benannten komplexen Typen

Page 21: XML Schema Was versteht man unter XML Schema?. Was ist ein XML Schema? Definiert Inhalt und Struktur Beschreibt Elemente und Attribute die in XML Dokument

Benannte Komplexe Datentypen

<xsd:element name="Buch"> <xsd:complexType> <xsd:sequence> <xsd:element name="TITEL" type="xsd:string"/> <xsd:element name="AUTOR" type="xsd:string"/> <xsd:element name="EINBAND" type="xsd:string"/> <xsd:element name="PREIS" type="xsd:decimal"/> </xsd:sequence> </xsd:complexType></xsd:element>

Annahme: Ich will das Inhaltsmodell des Elements „Buch“ auch für ein Element „Zeitschrift“ verwenden. Hierfür bediene ich mich benannter komplexer Typen.

Page 22: XML Schema Was versteht man unter XML Schema?. Was ist ein XML Schema? Definiert Inhalt und Struktur Beschreibt Elemente und Attribute die in XML Dokument

Benannte Komplexe Datentypen

<?xml version=“1.0“?> <xs:schema xmlns:xs=“http//www.w3.org(....) <xsd:complexType name=“KATALOGDATEN“> <xsd:sequence> <xsd:element name="TITEL" type="xsd:string"/> <xsd:element name="AUTOR" type="xsd:string"/> <xsd:element name="EINBAND" type="xsd:string"/> <xsd:element name="PREIS" type="xsd:decimal"/> </xsd:sequence> </xsd:complexType> <xs:element name=“ZEITSCHRIFT“ type=“KATALOGDATEN“/>

Page 23: XML Schema Was versteht man unter XML Schema?. Was ist ein XML Schema? Definiert Inhalt und Struktur Beschreibt Elemente und Attribute die in XML Dokument

Attribute deklarieren

<?xml version="1.0"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="Buch"> <xsd:complexType> <xsd:sequence> <xsd:element name="TITEL" type="xsd:string"/> <xsd:element name="AUTOR" type="xsd:string"/> <xsd:element name="EINBAND" type="xsd:string"/> <xsd:element name="PREIS" type="xsd:decimal"/> </xsd:sequence> <xsd:attribute name="Vorhanden" type="xsd:boolean"

use="required"/>

</xsd:complexType> </xsd:element></xsd:schema>

Page 24: XML Schema Was versteht man unter XML Schema?. Was ist ein XML Schema? Definiert Inhalt und Struktur Beschreibt Elemente und Attribute die in XML Dokument

Attribute deklarieren

<xsd:attribute name="Vorhanden" type="xsd:boolean"

use="required"/>

● Werden immer mit einfachen Datentypen deklariert● Es gibt die gleichen vordefinierten Datentypen wie bei Elementen

● Selbst definierte eigene Datentypen natürlich auch möglich (z.B. durch „restriction“)

● Statt „use=required“ auch „optional“ od. „prohibited“ möglich

● Optinal ist der Standardwert● Per „default=“IRGENDWAS““ kann man einem Attribut eine Voreinstellung zuweisen.