geoinformation iii

21
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Geoinformation 3 Geoinformation III XML-Schema Vorlesung 13a

Upload: rania

Post on 13-Jan-2016

25 views

Category:

Documents


0 download

DESCRIPTION

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: - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Geoinformation III

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

Geoinformation III

XML-Schema

Vorlesung 13a

Page 2: Geoinformation III

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

1

Übersicht über den dritten Vorlesungsblock

1. Offene Systeme, Rechnernetze und das Internet

Die eXtensible Markup Language XML

2. Grundlagen, Namensräume & Hyperlinks

3. XML Schema

4. Von UML nach XML

Die Geography Markup Language GML:

5. Grundlagen, Repräsentation räumlicher und nichträumlicher Objekte

6. Geometrie und Topologie

Page 3: Geoinformation III

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

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

Page 4: Geoinformation III

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

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

9

Page 5: Geoinformation III

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

Möglichkeiten von XML-Schema

<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>

Namensraumdeklaration für XML-Schema

Namensraumdeklaration für XML-Schema

Element-Deklaration

Element-Deklaration

Attribut-Deklaration

Attribut-Deklaration

TypdefinitionenTypdefinitionen

Beispiel: <datum jahr=“1979“/>

Page 6: Geoinformation III

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

4

• 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/

XML-Schema

Page 7: Geoinformation III

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

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

Page 8: Geoinformation III

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

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“/>

Page 9: Geoinformation III

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

8

Elementkardinalitäten

• 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>

Page 10: Geoinformation III

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

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

9

Page 11: Geoinformation III

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

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

Page 12: Geoinformation III

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

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

Page 13: Geoinformation III

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

12

Beispiel: benannte/unbenannte Typen

A 2x

<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>

benannter Typ (global)

benannter Typ (global)

unbenannter Typ (innerhalb einer

Attributdeklaration)

unbenannter Typ (innerhalb einer

Attributdeklaration)

Page 14: Geoinformation III

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

13

Einfache Datentypen (Simple Types)

• Dienen zur Definition der Wertebereiche von Elementen und Attributen

<xsd:element name=“name“ type=“xsd:string“/><xsd:element name=“schuhgroesse“ type=“xsd:positiveInteger“/><xsd:element name=“geburtsdatum“ type=“xsd:date“/>

Beispiele für Elementdeklarationen mit Simple Types:

<person> <name>Carl Friedrich Gauß</name> <schuhgroesse>42<schuhgroesse/> <geburtsdatum>1777-04-30<geburtsdatum/></person>

Verwendung in einer XML-Datei in einem Element „person“:

Page 15: Geoinformation III

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

14

Simple Types – Auswahl (I)

Simple Type Beispiel(e)

string GIS ist tollbyte -1, 126unsignedByte 0, 126hexBinary 0FB7integer -126789, -1, 0, 1, 126789positiveInteger 1, 126789negativeInteger -126789, -1nonNegativeInteger 0, 1, 126789int -1, 126789675unsignedInt 0, 1267896754long -1, 12678967543233unsignedLong 0, 12678967543233short -1, 12678decimal 0, 12678boolean true, false, 1, 0

Page 16: Geoinformation III

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

15

Simple Types – Auswahl (II)

Simple Type Beispiel(e) Kommentare

float -INF, -1E4, -0, 0, 12.78E-2, 12 32-bit, einfache Genauigkeitdouble -INF, -1E4, -0, 0, 12.78E-2, 12 64-bit, doppelte Genauigkeittime 13:20:00.000date 2003-02-03 3. Februar 2003duration P1Y2M3DT10H30M12.3s 1 Jahr, 2 Monate, 3 Tage,

10 Std., 30 Min., 12.3 Sek.gMonthDay --02-03 jeden 3. FebruargYear 2003 2003Name shipTo XML 1.0 NameQname po:US-Adresse NXML Namensraum QnameNCName USAdresse unqualifizierter NameanyURI http://www.ikg.uni-bonn.deID XML 1.0 ID Attribut-TypIDREF XML 1.0 IDREF Attribut-TypENTITY XML 1.0 ENTITY Attribut-TypNOTATION XML 1.0 NOTATION Attribut-TypNMTOKEN XML 1.0 NMTOKEN Attribut-Typ

Page 17: Geoinformation III

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

16

Hierarchie der Simple Types

A 2x

Ur-Typbuilt-in primitive Typen

AnySimpleType

duration dateTime time date gYearMonth gYear gMonthDay gDay gMonth

boolean base64BinaryhexBinary float

string decimal

double anyURI QName NOTATION

normalizedString integer

nonPositiveInteger nonNegativeIntegerlong

negativeInteger positiveIntegerlanguage Name NMTOKEN

NCName NMTOKENS

IDREFID

IDREFS

ENTITY

ENTITIES

int unsignedLong

short

byte

unsignedInt

unsignedShort

unsignedByte

built-in abgeleitete Typen

Page 18: Geoinformation III

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

17

• Facetten definieren Einschränkungen von Wertebereichen für Simple Types.

• Typdefinition durch Restriktion eines vorhandenen Simple Types:

Einschränkung durch Facetten

<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

length pattern

minLength maxLength

whitespace enumeration

maxExclusive minExclusive

minInclusive maxInclusive

totalDigits fractionDigits

Page 19: Geoinformation III

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

18

Beispiele für Restriktionen

A 4x

<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

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

Einschränkung von string auf explizit spezifizierte Zeichenketten

Page 20: Geoinformation III

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

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>

<eineIntegerListe> 1 5 89 3048 -6784375 </eineIntegerListe>

Beispiel für ein Element vom Typ <meineZahlenliste> :

Definition eines Listentyps

Definition eines Listentyps

Page 21: Geoinformation III

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

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

<meineVornamen> Carl Friedrich Albert </meineVornamen>

<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: