Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

XML-Schema UML  XML-Schema

Ähnliche Präsentationen


Präsentation zum Thema: "XML-Schema UML  XML-Schema"—  Präsentation transkript:

1 XML-Schema UML  XML-Schema
Geoinformation III Vorlesung 14a XML-Schema UML  XML-Schema

2 Übersicht über den dritten Vorlesungsblock
1 Übersicht über den dritten Vorlesungsblock 1. Offene Systeme, Rechnernetze und das Internet Die eXtensible Markup Language XML Grundlagen, Document Type Definitions (DTDs) 3. Fortsetzung DTDs, UML  DTD, Namensräume XML Schema Geographic Markup Language GML: der vom OpenGIS-Consortium als XML-Anwendung definierte Standard für Geo-Objekte

3 f Motivation: Unzulänglichkeiten von DTDs
2 Motivation: Unzulänglichkeiten von DTDs Beispiel einer DTD für ein Element “datum“ (siehe letzte VL): <!ELEMENT datum EMPTY> <!ATTLIST datum monat (Januar|Februar|März|April) #REQUIRED tag (1|2|3|4|5|6|7|8|9|10) #REQUIRED jahr (1979|1980|1981|1982|1983) #REQUIRED> <datum monat=“März“ tag=“2“ jahr=“1979“/> f <datum monat=“März“ tag=“2“ jahr=“1978“/> A 5x

4 Namensraumdeklaration für XML-Schema Attribut-Deklaration
3 Möglichkeiten von XML-Schema Namensraumdeklaration für XML-Schema Element-Deklaration Attribut-Deklaration Typdefinitionen <xsd:schema xmlns:xsd=“ <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> A 2x

5 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

6 Vergleich DTDs und XML-Schema
5 Vergleich DTDs und XML-Schema DTDs XML-Schema spezielle Syntax XML-Syntax sehr beschränkte Datentypen (nur für Attributwerte, nicht für Elementinhalt) reichhaltige Datentypen: diverse Zahlen, Boolean, Datum, Zeit, URIs... keine Unterstützung von Namensräumen Namensräume werden unterstützt Asymmetrien zwischen Element- und Attributtypen Polymorphie (Substituierbarkeit) von Typen Constraints (Schlüssel) nur mit ID und IDREF, eingeschränkter Typ (nur NAME) allgemeine Schlüssel- und Fremdschlüsselbedingungen Erweiterung von Typen nur umständlich über Parameter Entities Typen durch Benutzer definierbar keine Vererbung Vererbung verteilte Schemata

7 Aufbau eines XML-Schemas
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 Elementdeklarationen
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 Elementkardinalitäten
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>

10 Globale Elemente vs. Lokale Elemente
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 Datentypen Simple Types
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 Typdefinitionen Typen können
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 Beispiel: benannte/unbenannte Typen
12 Beispiel: benannte/unbenannte Typen <xsd:schema xmlns:xsd=“ <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) A 2x

14 Einfache Datentypen (Simple Types)
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> <geburtsdatum/> </person> Verwendung in einer XML-Datei in einem Element „person“:

15 Simple Types – Auswahl (I)
14 Simple Types – Auswahl (I) Simple Type Beispiel(e) string GIS ist toll byte -1, 126 unsignedByte 0, 126 hexBinary 0FB7 integer , -1, 0, 1, positiveInteger 1, negativeInteger , -1 nonNegativeInteger 0, 1, int -1, unsignedInt 0, long -1, unsignedLong 0, short -1, 12678 decimal 0, 12678 boolean true, false, 1, 0

16 Simple Types – Auswahl (II)
15 Simple Types – Auswahl (II) Simple Type Beispiel(e) Kommentare float -INF, -1E4, -0, 0, 12.78E-2, 12 32-bit, einfache Genauigkeit double 64-bit, doppelte Genauigkeit time 13:20:00.000 date 3. Februar 2003 duration P1Y2M3DT10H30M12.3s 1 Jahr, 2 Monate, 3 Tage, 10 Std., 30 Min., 12.3 Sek. gMonthDay jeden 3. Februar gYear 2003 Name shipTo XML 1.0 Name Qname po:US-Adresse NXML Namensraum Qname NCName USAdresse unqualifizierter Name anyURI ID XML 1.0 ID Attribut-Typ IDREF XML 1.0 IDREF Attribut-Typ ENTITY XML 1.0 ENTITY Attribut-Typ NOTATION XML 1.0 NOTATION Attribut-Typ NMTOKEN XML 1.0 NMTOKEN Attribut-Typ

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

18 Einschränkung durch Facetten
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:restriction> </xsd:simpleType> length pattern minLength maxLength whitespace enumeration maxExclusive minExclusive minInclusive maxInclusive totalDigits fractionDigits XML-Schema kennt 12 Facetten: nicht alle Facetten sind für alle Typen sinnvoll

19 Beispiele für Restriktionen
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 <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 A 4x

20 19 Listentypen (I) Liste von Werten, getrennt durch ein XML Whitespace (Leerzeichen, Tabulator, Zeilenende) bereits bekannt durch die Attributtypen IDREFS, NMTOKENS und ENTITIES aus den DTDs diese Typen sind auch in XML-Schema vordefiniert 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> </eineIntegerListe>

21 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: <meineVornamen> Carl Friedrich Albert </meineVornamen>


Herunterladen ppt "XML-Schema UML  XML-Schema"

Ähnliche Präsentationen


Google-Anzeigen