Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Was versteht man unter XML Schema?

Ähnliche Präsentationen


Präsentation zum Thema: "Was versteht man unter XML Schema?"—  Präsentation transkript:

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.


Herunterladen ppt "Was versteht man unter XML Schema?"

Ähnliche Präsentationen


Google-Anzeigen