1 / 21

Geoinformation III

Geoinformation III. Vorlesung 13a. XML-Schema. 1. Übersicht über den dritten Vorlesungsblock. 1. Offene Systeme, Rechnernetze und das Internet Die e X tensible M arkup L anguage XML 2. Grundlagen, Namensräume & Hyperlinks XML Schema Von UML nach XML Die Geography Markup Language GML:

rania
Download Presentation

Geoinformation III

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Geoinformation III Vorlesung 13a XML-Schema

  2. 1 Übersicht über den dritten Vorlesungsblock • 1. Offene Systeme, Rechnernetze und das Internet • Die eXtensible Markup Language XML • 2. Grundlagen, Namensräume & Hyperlinks • XML Schema • Von UML nach XML • Die Geography Markup Language GML: • Grundlagen, Repräsentation räumlicher und nichträumlicher Objekte • Geometrie und Topologie

  3. Definition der Struktur von Dokumenten • wohlgeformte Dokumente können zwar von jedem XML-Parser eingelesen werden, jedoch sagt die Wohlgeformtheit nichts darüber aus • welche Elementnamen überhaupt vorkommen dürfen, • in welcher Reihenfolge die Elemente im XML-Dokument erscheinen müssen, • welches Element Kindelement eines anderen sein darf • wie oft die Elemente im XML-Dokument erscheinen dürfen, • welche Attribute in bestimmten Elementen verwendet werden dürfen • Zwei Möglichkeiten zur Strukturfestlegung in XML • Document Type Definition (DTD) - beschränkte Möglichkeiten • Aktuell: XML Schema

  4. 9 Validierung von XML-Dokumenten • Wohlgeformtheit ist grundsätzliche Voraussetzung für die maschinelle Lesbarkeit von XML-Dokumenten • Wohlgeformtheit sagt nichts darüber aus, ob die Dokumente in ihrer Struktur und den enthaltenen Daten den Anforderungen konkreter XML-Anwendungen entsprechen. • Mit Hilfe von XML-Schema kann bereits der XML-Parser die Struktur und den Inhalt überprüfen, bevor er die Daten an ein Anwendungsprogramm übergibt. • Die Fehlerüberprüfung von XML-Dokumenten wird für Anwendungsprogramme einfacher • Die Überprüfung eines XML-Dokuments erfolgt durch einen validierenden Parser • XML-Dokumente heißen gültig, wenn sie dem Schema entsprechen

  5. Namensraumdeklaration für XML-Schema Element-Deklaration Typdefinitionen Attribut-Deklaration Möglichkeiten von XML-Schema Beispiel: <datum jahr=“1979“/> <xsd:schema xmlns:xsd=“http://www.w3c.org/2001/XMLSchema“> <xsd:element name = “datum“ type= “datumsTyp“/> <xsd:complexType name= “datumsTyp“> <xsd:attribute name = “jahr“> <xsd:simpleType> <xsd:restriction base = “xsd:integer“> <xsd:maxInclusive value = “2500“> <xsd:minInclusive value = “0“> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:complexType>

  6. 4 XML-Schema • Unterscheidung von Dokumentenschema und konkreten Ausprägungen, den sog. Instanzdokumenten • XML-Schema ist Datendefinitionssprache zur Festlegung • der Struktur von Instanzdokumenten • des Datentyps jedes einzelnen Elementes/Attributs • Spezifikation von XML-Schema • W3C Recommendation, 2. Mai 2001 • Einführendes Dokument: XML Schema Part 0: Primer • http://www.w3c.org/TR/xmlschema-0/

  7. 6 Aufbau eines XML-Schemas • Eine XML-Schema-Datei besteht aus: • Dem Wurzelelement <schema> • mit Angabe eines Target Namespaces, also dem Namensraum, in dem die Definitionen gelten sollen • Darin enthalten sind • Elementdeklarationen • Attributdeklarationen • Typdefinitionen

  8. 7 Elementdeklarationen Elemente können auf 3 Arten deklariert werden: • Deklaration durch Angabe eines Datentyps<element name=“Elementname“ type=“Typ“/> • Deklaration durch Definition eines anonymen Typs<element name=“Elementname“>. . .Typdefinition . . .</element> • Deklaration durch Verweis auf ein globales Element<element ref=“globalesElement“/>

  9. Die Anzahl der Vorkommen eines Elements innerhalb eines Instanzdokuments können durch die zwei Attribute • minOccurs (minimale Anzahl) • maxOccurs (maximale Anzahl) • im <element>-Tag festgelegt werden. • Beispiel: • bedeutet, dass zwischen 4 und 6 Elemente vorkommen müssen <element name=“vorstandsmitglied“ minOccurs=4 maxOccurs=6> 8 Elementkardinalitäten

  10. 9 Globale Elemente vs. Lokale Elemente • Alle Elemente, die direkt unterhalb des <schema>-Tags deklariert werden, sind globale Elemente • globale Elemente können in Elementdeklarationen mittels des ref-Attributs referenziert werden • globale Elemente können selber keine anderen Elemente referenzieren (dürfen selber kein ref-Attribut besitzen) • globale Elemente müssen unterschiedliche Namen haben • Elemente, die in innerhalb anderer Elemente oder Typdefinitionen deklariert werden sind lokale Elemente • lokale Elemente innerhalb verschiedener Elemente dürfen die gleichen Namen besitzen

  11. 10 Datentypen • Simple Types • eingebaute (built-in) atomare Typen (atomic types) • von atomaren Typen abgeleitete Typen • durch Restriktionen • Listentypen (list types) • Vereinigungstypen (union types) • können in Element- und Attributdeklarationen verwendet werden • Complex Types • Zusammengesetzte Typen aus Simple & Complex Types • Vererbung möglich • Verwendung nur in Elementdeklarationen

  12. 11 Typdefinitionen • Typen können • unabhängig von Element- und Attributdeklarationen, • aber auch innerhalb von Element- und Attributdeklarationen definiert werden. • Typen werden definiert, Elemente und Attribute deklariert • Typen werden unterschieden in • benannte Typen (Named Types) • besitzen einen Typ-Namen • werden immer global definiert • können und sollen mehrfach benutzt werden • unbenannte Typen (Anonymous Types) • werden ohne Namen (innerhalb von Element- oder Attributdeklarationen) verwendet

  13. benannter Typ (global) unbenannter Typ (innerhalb einer Attributdeklaration) A 12 Beispiel: benannte/unbenannte Typen <xsd:schema xmlns:xsd=“http://www.w3c.org/2001/XMLSchema“> <xsd:element name=“datum“ type=“datumsTyp“/> <xsd:complexType name=“datumsTyp“> <xsd:attribute name=“jahr“> <xsd:simpleType> <xsd:restriction base=“xsd:integer“> <xsd:maxInclusive value=“2500“> <xsd:minInclusive value=“0“> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:complexType> 2x

  14. Beispiele für Elementdeklarationen mit Simple Types: <xsd:element name=“name“ type=“xsd:string“/> <xsd:element name=“schuhgroesse“ type=“xsd:positiveInteger“/> <xsd:element name=“geburtsdatum“ type=“xsd:date“/> Verwendung in einer XML-Datei in einem Element „person“: <person> <name>Carl Friedrich Gauß</name> <schuhgroesse>42<schuhgroesse/> <geburtsdatum>1777-04-30<geburtsdatum/> </person> 13 Einfache Datentypen (Simple Types) • Dienen zur Definition der Wertebereiche von Elementen und Attributen

  15. 14 Simple Types – Auswahl (I)

  16. 15 Simple Types – Auswahl (II)

  17. AnySimpleType duration dateTime time date gYearMonth gYear gMonthDay gDay gMonth boolean base64Binary hexBinary float double anyURI QName NOTATION Ur-Typ built-in primitive Typen string decimal normalizedString integer built-in abgeleitete Typen nonPositiveInteger long nonNegativeInteger language Name NMTOKEN negativeInteger int unsignedLong positiveInteger NCName NMTOKENS short unsignedInt ID IDREF ENTITY byte unsignedShort IDREFS ENTITIES unsignedByte A 16 Hierarchie der Simple Types 2x

  18. 17 Einschränkung durch Facetten • Facetten definieren Einschränkungen von Wertebereichen für Simple Types. • Typdefinition durch Restriktion eines vorhandenen Simple Types: • <xsd:simpleType> • <xsd:restriction base=“Basistyp“> • <xsd:Facette value=“Wert“/> • ... • <xsd:Facette value=“Wert“/> • </xsd:restriction> • </xsd:simpleType> • XML-Schema kennt 12 Facetten: • nicht alle Facetten sind für alle Typen sinnvoll

  19. A 18 Beispiele für Restriktionen <xsd:attribute name=“jahr“> <xsd:simpleType> <xsd:restriction base=“xsd:integer“> <xsd:maxInclusive value=“2500“/> <xsd:minInclusive value=“0“/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> Einschränkung von integer auf Wertebereich 0-2500 <xsd:attribute name=“monat“> <xsd:simpleType name=“meinMonatsTyp“> <xsd:restriction base=“xsd:string“> <xsd:enumeration value=“Januar“/> <xsd:enumeration value=“Februar“/> <xsd:enumeration value=“März“/> <xsd:enumeration value=“April“/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> Einschränkung von string auf explizit spezifizierte Zeichenketten 4x

  20. 19 Listentypen (I) • Liste von Werten, getrennt durch ein XML Whitespace (Leerzeichen, Tabulator, Zeilenende) • basieren auf atomaren Typen oder Vereinigungstypen • Listen von Listen sind unzulässig! <xsd:simpleType name = “meineZahlenliste“> <xsd:list itemType = “xsd:integer“/> </xsd:simpleType> Definition eines Listentyps Beispiel für ein Element vom Typ <meineZahlenliste> : <eineIntegerListe> 1 5 89 3048 -6784375 </eineIntegerListe>

  21. <meineVornamen> Carl Friedrich Albert </meineVornamen> 20 Listentypen (II) • Listentypen können auch vom Typ string abgeleitet werden • Achtung: • Strings dürfen Whitespaces enthalten • Whitespaces begrenzen Listenelemente • u.U. Probleme bei der Unterscheidung von Listenelementen <xsd:simpleType name = “meineVornamen“> <xsd:list itemType = “xsd:string“/> </xsd:simpleType> Beispiel für ein Element vom Typ <meineVornamen>, nachdem 1. “Carl Friedrich“ und 2. “Albert“ in die Liste eingefügt wurden:

More Related