Präsentation herunterladen
1
Was versteht man unter XML Schema?
2
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
3
Oder: weitere Möglichkeit, gültige XML Dokumente zu erstellen.
Was ist XML Schema? Oder: weitere Möglichkeit, gültige XML Dokumente zu erstellen. Andere Möglichkeit: DTD
4
Unterschied Schema / DTD
XML Schema bietet 2 wesentliche Vorteile: Verbesserte Möglichkeit der genauen, eindeutigen Bestimmung von Inhalt und Struktur. In XML Syntax verfasst
5
Syntax von XML Schema <?xml version="1.0"?>
<xsd:schema xmlns:xsd=" <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>
6
XML Schema- Syntax Beginnt immer mit XML Deklaration
Als Dokumentelement immer <xs:schema... Danach Dokumentelement des XML Instanzdokuments.
7
Syntax von XML Schema <?xml version="1.0"?>
<xsd:schema xmlns:xsd=" <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>
8
Syntax: Elemente einfachen Typs
<xs:element name=“ELEMENT1“type=“string“/> <!ELEMENT ELEMENT1 (#PCDATA)>
9
Syntax: Elemente einfachen Typs
<xs:element name=“ELEMENT1“type=“anyURI“/> <!ELEMENT ELEMENT1 (#PCDATA)>
10
Vordefinierte einfache Datentypen
11
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“/>
12
Einfache Typen selbst definieren
<xs:element name=“SPEED“type=“xsd:decimal“/> Problem: SPEED kann auch negative Werte annehmen Soll maximal 210 annehmen dürfen
13
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>
14
Datentypen Beschränken
<xs:element name=“FORMAT“> <xs:restriction base=“xs:string“> <xs:enumeration value=“JPEG“/> <xs:enumeration value=“GIF“/> </xs:restriction> </xs:element>
15
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> </ISBN>
16
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.
17
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!
18
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.
19
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“.
20
Weitere Unterscheidungen:
Bei den komplexen Typen unterscheidet man zusätzlich zwischen: Anonymen komplexen Typen Benannten komplexen Typen
21
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.
22
Benannte Komplexe Datentypen
<?xml version=“1.0“?> <xs:schema xmlns:xs=“http// <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“/>
23
Attribute deklarieren
<?xml version="1.0"?> <xsd:schema xmlns:xsd=" <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>
24
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.
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.