Top Banner
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
21

1234567891011121314151617181920 Geoinformation3 Geoinformation III XML-Schema Vorlesung 13a.

Apr 06, 2016

Download

Documents

Hedwig Grosser
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML-Schema Vorlesung 13a.

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: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML-Schema Vorlesung 13a.

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 XML2. Grundlagen, Namensräume & Hyperlinks3. XML Schema4. Von UML nach XML

Die Geography Markup Language GML:5. Grundlagen, Repräsentation räumlicher und nichträumlicher

Objekte6. Geometrie und Topologie

Page 3: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML-Schema Vorlesung 13a.

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: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML-Schema Vorlesung 13a.

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: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML-Schema Vorlesung 13a.

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

Element-Deklaration

Attribut-Deklaration

Typdefinitionen

Beispiel: <datum jahr=“1979“/>

Page 6: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML-Schema Vorlesung 13a.

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: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML-Schema Vorlesung 13a.

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: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML-Schema Vorlesung 13a.

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: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML-Schema Vorlesung 13a.

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: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML-Schema Vorlesung 13a.

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: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML-Schema Vorlesung 13a.

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: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML-Schema Vorlesung 13a.

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: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML-Schema Vorlesung 13a.

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)

unbenannter Typ (innerhalb einer

Attributdeklaration)

Page 14: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML-Schema Vorlesung 13a.

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: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML-Schema Vorlesung 13a.

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: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML-Schema Vorlesung 13a.

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: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML-Schema Vorlesung 13a.

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

double anyURI QName NOTATION

normalizedString integer

nonPositiveInteger nonNegativeIntegerlongnegativeInteger positiveIntegerlanguage Name NMTOKEN

NCName NMTOKENS

IDREFIDIDREFS

ENTITYENTITIES

int unsignedLongshort

byte

unsignedInt

unsignedShortunsignedByte

built-in abgeleitete Typen

Page 18: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML-Schema Vorlesung 13a.

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 patternminLength maxLengthwhitespace enumerationmaxExclusive minExclusiveminInclusive maxInclusivetotalDigits fractionDigits

Page 19: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML-Schema Vorlesung 13a.

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

<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

Page 20: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML-Schema Vorlesung 13a.

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

Page 21: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML-Schema Vorlesung 13a.

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: