160 likes | 305 Views
Einführung in XML Schemata - die Alternative zu DTDs. Zweck von XML - Schema: Definition von Dokumentypen oder Dokumentklassen Formulierung von Regeln für die Auszeichnung ->Anordnung der Tags (mit Attributen). Vorteile gegenüber DTDs (1)
E N D
Einführung in XML Schemata - die Alternative zu DTDs Dipl.- Dok. Rusalka Offer
Zweck von XML - Schema: • Definition von Dokumentypen oder Dokumentklassen • Formulierung von Regeln für die Auszeichnung • ->Anordnung der Tags (mit Attributen) Dipl.- Dok. Rusalka Offer
Vorteile gegenüber DTDs (1) • Definition in XML selber (gleiche Deklarations- und Auszeichnungs- syntax) • Datenstrukturen und -typen sind in größerer Anzahl vorhanden und können beliebig erweitert werden (hierzu zählen auch genaue Häufigkeits- angaben) • Implementierung von Namensräumen • Erweiterung der Referenzierungs- möglichkeiten Dipl.- Dok. Rusalka Offer
Vorteile gegenüber DTDs (2) • Möglichkeiten zur Vererbung von Eigenschaften deklarierter Objekte • Stärkere Datenorientierung (anstatt Dokumentorientierung) • Schemata durch XML-Prozessor verarbeitbar (keine Erweiterungen für die Prüfung von DTDs notwendig) Dipl.- Dok. Rusalka Offer
Nachteile gegenüber DTDs: • keine deutliche Unterscheidung zwischen Deklaration und Verwendung (Verzicht auf syntaktisch eigenständige Deklarationssprache) • deutlich längerer Sourcecode (Lesbarkeit!) • Entwicklung noch nicht abgeschlossen • (früher: Existenz von mehreren Schemasprachen) Dipl.- Dok. Rusalka Offer
XML -Schema-Sprachenaktuell: W3C: XML Schema language bisher: Microsoft/IBM: Document Content Description Language (DCD) GMD / TU Darmstadt: Document Defintion Markup Language (DDML) Veo Systems / Muzmo Communications u.a.:Schema for object-oriented XML (SOX) Dipl.- Dok. Rusalka Offer
Aufbau von XML-Schemata <? xml version="1.0“ encoding="UTF8“?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" Beschreibung der Datenstruktur (simpleType | complexType | group| attributeGroup) | element |attribute | notation)* </xsd:schema> Dipl.- Dok. Rusalka Offer
Deklarationsarten in Schemata: • Element - Deklarationen • Attribut - Deklarationen • Notations - Deklarationen • Elemente und Attribute können verschiedenen Typen zugeordnet werden, die deklariert werden müssen • Complex - Type • Simple - Type XML-Schemata werden unter der Endung .xsd gespeichert Dipl.- Dok. Rusalka Offer
Complex - Type Beispiel: <xsd:complexType name="Adresse" > <xsd:sequence> <xsd:element name=“Name" type="xsd:string"/> <xsd:element name=“Strasse" type="xsd:string"/> <xsd:element name=“PLZ" type="xsd:decimal"/> <xsd:element name=“Ort" type="xsd:string"/> </xsd:sequence> <xsd:attribute name=“Land" type="xsd:NMTOKEN" fixed=“Deutschland"/> </xsd:complexType> Dipl.- Dok. Rusalka Offer
Erläuterung Complex-Type (1): • Complex-Type Elemente können im Gegensatz zu den Simple-Type Elemente weitere Elemente und Attribute beinhalten. • Im vorigen Beispiel wird folgendes festgelegt: -Jedes Element in einem XML-Dokument vom Typ Adresse muss vier Elemente und ein Attribut besitzen. -Die Elemente müssen in der vorgegebenen Reihenfolge stehen und die vorgegebenen Namen tragen. -Drei Elemente sind vom Typ string und ein Element vom Typ decimal -Das Element Adresse kann einem Attribut “Land “ haben, das denn Wert “ Deutschland “ haben muss. Dipl.- Dok. Rusalka Offer
Erläuterung Complex-Type (2): Dieser definierte Complex-Type kann an anderer Stelle im Schema referenziert werden: <xsd:complexType name=“Bestellung"> <xsd:sequence> <xsd:element name=“Empfaenger" type="Adresse"/> <xsd:element name=“Absender" type=“Adresse"/> </xsd:sequence> </xsd:complexType> In diesem Beispiel ist der Complex-Type Adresse Bestandteil des Complex-Types Bestellung. Dipl.- Dok. Rusalka Offer
Erläuterung Complex-Type (3): XML-Beispiel: <?xml version="1.0"?> <Bestellung> <Empfaenger Land=“Deutschland"> <Name>Rusalka Offer</Name> <Strasse>Claudiusstr. 1</Strasse> <PLZ>50678</PLZ> <Ort>Koeln</Ort> </Empfaenger> <Absender Land=“Deutschland""> <Name>Firma 1</Name> <Strasse>Firmenweg 1</Strasse> <PLZ>11111</PLZ> <Ort>Wolkenkuckucksheim</Ort> </Absender> ........ Dipl.- Dok. Rusalka Offer
Simple Type (1) • (Datentypen von Elementen) • Beispiel: • <xsd:element name= "Name" type="xsd:string"/> • <xsd:element name= "Strasse" type="xsd:string"/> • Erläuterung: • Die beiden Elemente Name und Strasse sind vom Typ string • Der Typ string ist innerhalb von XML Schema als Simple Type definiert. • Andere Beispiele für Simple Types sind:decimal, integer, double, long, token, boolean • Eine komplette Liste gibt es auf den Seiten des W3C Dipl.- Dok. Rusalka Offer
Simple Type (2) Neue Datentypen können aus den bestehenden abgeleitet werden. Beispiel: <xsd:simpleType name="meine_Zahl"> <xsd:restriction base="xsd:integer"> <xsd:minInclusive value="100"/> <xsd:maxInclusive value="999"/> </xsd:restriction> </xsd:simpleType> In diesem Beispiel wird ein neuer Simple Type auf der Basis des Datentyps integer erstellt. Dieser Datentyp ist auf die Zahlen von 100 bis 999 beschränkt. Dipl.- Dok. Rusalka Offer
Element - Deklarationen: • Beispiel: • <xsd:element name=“Auslieferungsdatum" type="xsd:date" minOccurs="0"/> • Neben dem Datentyp kann bei Elementen sowohl die Häufigkeit des Auftretens bestimmt werden, als auch ein Default- oder Fixed-Wert • Zur Bestimmung gibt es festgelegte Attribute:minOccurs, maxOccurs, fixed, default • In diesem Beispiel ist das Auftreten des Elementes optional, da minOccurs auf 0 gesetzt ist Dipl.- Dok. Rusalka Offer
Attribut - Deklarationen: • Beispiel: • <xsd:attribute name=“Land" type="xsd:NMTOKEN" fixed=“Deutschland"/> • Attribute zu Elementen dürfen einmal oder gar nicht auftreten (bezogen auf ein Element) • Bei der Deklaration wird das Auftreten von Attributen mit den Vorgaben use (Werte:required, optional, prohibited), fixed und default geregelt • In diesem Beispiel hat das Attribut Land einen festen Wert (Deutschland) und ist vom Typ NMTOKEN Dipl.- Dok. Rusalka Offer