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 14 XML-Schema UML  XML-Schema

2 Ü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 4. XML Schema 5. Geographic Markup Language GML: der vom OpenGIS-Consortium als XML-Anwendung definierte Standard für Geo-Objekte Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

3 Motivation: Unzulänglichkeiten von DTDs
<!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> Beispiel einer DTD für ein Element “datum“ (siehe letzte VL): <datum monat=“März“ tag=“2“ jahr=“1979“/> f <datum monat=“März“ tag=“2“ jahr=“1978“/> Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

4 Möglichkeiten von XML-Schema
Namensraumdeklaration für XML-Schema Element-Deklaration Attribut-Deklaration Typdefinitionen <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> Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

5 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 Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

6 Vergleich DTDs und 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 Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

7 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 Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

8 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“/> Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

9 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> Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

10 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 Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

11 Datentypen Simple Types Complex 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 Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

12 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 Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

13 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> benannter Typ (global) unbenannter Typ (innerhalb einer Attributdeklaration) Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

14 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“: Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

15 Simple Types – Auswahl (I)
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 Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

16 Simple Types – Auswahl (II)
Beispiel(e) Kommentare float -INF, -1E4, -0, 0, 12.78E-2, 12 32-bit, einfache Genauigkeit double 64-bit, dppelte 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 Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

17 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 Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

18 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 Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

19 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 Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

20 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> Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

21 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> Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

22 Vereinigungstypen (Union Types)
Vereinigung mehrerer Simple Types Elemente bzw. Attribute eines V.-typen dürfen Werte aus einem der Wertebereiche der angegebenen Typen haben zulässig sind: atomare Typen Listentypen Vereinigungstypen <xsd:simpleType name=“monatsangabe“> <xsd:union memberTypes=“meinMonatsTyp xsd:positiveInteger“/> </xsd:simpleType> <monat>Februar</monat> <monat>2</monat> <monat>April</monat> Beispiel für ein Elemente vom Typ <monatsangabe> : Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

23 Complex Types (I) Benannte komplexe Typen (Named Complex Types)
global definiert können wiederverwendet werden Bezeichnung muss ein XML-Name sein Unbenannte komplexe Typen (Anonymous Complex Types) sind nur innerhalb einer Element-Deklaration definiert können nie eingeschränkt, erweitert oder redefiniert werden Inhalt von komplexen Typen: einfacher Inhalt (simpleContent) komplexer Inhalt (complexContent) nur Elemente (element-only content) gemischter Inhalt (mixed content) leer (empty content) Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

24 Komplexe Inhalte (Content Models)
<sequence> </sequence> alle darin deklarierten Elemente müssen in genau dieser Reihenfolge im Instanzendokument vorkommen <choice> </choice> genau eines der darin deklarierten Elemente muss im Instanzendokument vorkommen <group> </group> Gruppiert Deklarationen, die dann über ihren Namen in das Content Model eingefügt werden können Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

25 Beispiel Complex Types und Content Models
<xsd:complexType name=“personenTyp“> <xsd:sequence> <xsd:element name=“vorname“ type=“xsd:string“/> <xsd:element name=“name“ type=“xsd:string“/> <xsd:element name=“telefonnummer“> <xsd:complexType> <xsd:choice> <xsd:element name=“telnummerPrivat“ type=“xsd:string“/> <xsd:element name=“telnummerJob“ type=“xsd:string“/> </xsd:choice> </xsd:complexType> </xsd:element> </xsd:sequence> <xsd:attribute name=“geburtsdatum“ type=“xsd:date“/> Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

26 Verteilte Schemata Schemadefinitionen können über mehrere Dokumente verteilt sein Modularisierung, Wiederverwendbarkeit Übersichtlichkeit ein Schema wird mittels des <include>-Tags in ein anderes Schema eingebettet: <include schemaLocation = “http://www.beispiele.de/verteiltes_schema.xsd“/> das eingefügte Dokument muss denselben Target Namespace besitzen, d.h. die Definitionen darin werden demselben Namensraum hinzugefügt weiterer Möglichkeit mittels <import>, das auch die Verwendung mehrerer Target Namespaces erlaubt Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

27 Vererbung Eine Vererbung, wie sie bei UML möglich ist, kann in XML nur manuell nachgebildet werden. Attribute von Oberklassen müssen ausdrücklich noch einmal deklariert werden: <!ELEMENT Person (Name,Vorname)> <!ELEMENT Student (Name,Vorname, Matrikelnummer)> Person Name Vorname Student Matrikelnummer Attribute von Student: Name geerbt von Vorname Person Matrikelnummer } Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

28 Ableitung von Typen durch Erweiterung (I)
<schema targetNamespace=“http://www.personenregister.de/Personen“ xmlns=“http://www.w3.org/2001/XMLSchema“ xmlns:pers=“http://www.personenregister.de/Personen“> <complexType name=“personTyp“> <sequence> <element name=“name“ type=“string“/> <element name=“vorname“ type=“string“/> </sequence> </complexType> <complexType name=“studentTyp“> <complexContent> <extension base=“pers:personTyp“ <element name=“matrikelnr“ type=“positiveInteger“/> </extension> </complexContent> </schema> Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

29 Ableitung von Typen durch Erweiterung (II)
<?xml version=“1.0“> <studentenliste xmlns=“http://www.personenregister.de/Personen“> <student> <name>Zupp</name> <vorname>Jupp</vorname> <matrikelnr> </matrikelnr> </student> </studentenliste> Beispiel für ein Instanzdokument mit einer Liste von Studenten: student erbt die Elemente “name“ und “vorname“ von “person“ Erweiterung von “person“ durch eine Matrikelnummer Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

30 Äquivalenzklassen (substitution groups)
Deklaration einer Gruppe austauschbarer Elemente Elemente der substitution group müssen global deklariert werden jedes Element dieser Gruppe kann im Instanzdokument ersetzt werden jedes Element der substitution group muss vom selben Typ sein wie das zu substituierende Element oder von dessen Typ abgeleitet werden Dürfen dort verwendet werden, wo eigentlich ein Element <pers:person> erwartet wird <element name=“student“ type=“studentTyp“ substitutionGroup=“pers:person“/> <element name=“professor“ type=“professorTyp“ <pers:student>Jupp Zupp</pers:student> <pers:professor>Carl Friedrich Gauß</pers:professor> Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

31 Abstrakte Elemente und Typen
Dienen zur Repräsentation übergeordneter abstrakter Konzepte Elemente mit abstrakten Typen dürfen im Instanzdokument nicht verwendet werden, nur Mitglied(er) der substitution group “studentTyp“ wird von “personTyp“ abgeleitet (und ist nicht abstrakt). <schema xmlns=“http://www.w3c.org/2001/XML-Schema“ targetNamespace=“http://personen.abstraktebeispiele.de/schema“ xmlns:pers=“http://personen.abstraktebeispiele.de/schema“ <complexType name=“personTyp“ abstract=“true“> ... </complexType> <complexType name=“studentTyp“> <complexContent> <extension base=“pers:personTyp“/> </complexContent> <element name=“person“ type=“pers:personTyp“/> <element name=“student“ type=“pers:studentTyp“/> </schema> “personTyp“ wird als abstrakter Typ definiert. Element “person“ darf nicht im Instanzdokument vorkommen; wohl aber “student“, weil es auf dem abgeleiteten Typ “studentTyp“ basiert. Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

32 XML-Schema und UML - Beispiele -
<xsd:element name=“Landkarte“> <xsd:complexType> <xsd:sequence> <xsd:element name=“Polygon“ minOccurs=“1“> <xsd:element name=“Linie“ minOccurs=“3“> <xsd:element name=“Knoten“ minOccurs=“2“ maxOccurs=“2“> <xsd:attribut name=“xKoord“ type=“xsd:float“/> <xsd:attribut name=“yKoord“ type=“xsd:float“/> </xsd:complexType> </xsd:element> </xsd:sequence> XML-Schema und UML - Beispiele - Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

33 Beispiel Landkarten: 1. Möglichkeit (I)
<xsd:element name = “Landkarte“> <xsd:complexType> <xsd:sequence> <xsd:element name=“Polygon“ minOccurs=“1“> <xsd:element name=“Linie“ minOccurs=“3“> <xsd:element name=“Knoten“ minOccurs=“2“ maxOccurs=“2“> <xsd:attribut name=“xKoord“ type=“xsd:float“ use=“required“/> <xsd:attribut name=“yKoord“ type=“xsd:float“ use=“required“/> </xsd:complexType> </xsd:element> </xsd:sequence> Beispiel Landkarten: 1. Möglichkeit (I) Landkarte <!ELEMENT Landkarte (Polygon+)> <!ELEMENT Polygon (Linie, Linie, Linie+)> <!ELEMENT Linie (Knoten, Knoten)> <!ELEMENT Knoten (EMPTY)> <!ATTLIST Knoten xKoord CDATA #REQUIRED yKoord CDATA #REQUIRED> 1..* Polygon 2 3..* Linie 2..* 2 Knoten Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

34 Beispiel Landkarten: 1. Möglichkeit (II)
<xsd:element name=“Landkarte“> <xsd:complexType> <xsd:sequence> <xsd:element name=“Polygon“ minOccurs=“1“> <xsd:element name=“Linie“ minOccurs=“3“> <xsd:element name=“Knoten“ minOccurs=“2“ maxOccurs=“2“> <xsd:attribut name=“xKoord“ type=“xsd:float“ use=“required“/> <xsd:attribut name=“yKoord“ type=“xsd:float“ use=“required“/> </xsd:complexType> </xsd:element> </xsd:sequence> use=“required“ bedeutet, dass das Attribut im Instanzdokument angegeben werden muss. Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

35 <xsd:element name = “Landkarte“>
<xsd:complexType> <xsd:sequence> <xsd:element name=“Polygon“ minOccurs=“1“> <xsd:element name=“Linie“ minOccurs=“3“> <xsd:element name=“Knoten“ minOccurs=“2“ maxOccurs=“2“> <xsd:attribut name=“xKoord“ type=“xsd:float“ use=“required“/> <xsd:attribut name=“yKoord“ type=“xsd:float“ use=“required“/> </xsd:complexType> </xsd:element> </xsd:sequence> Instanzdokument: <Landkarte> <Polygon> <Linie> <Knoten xKoord=“100“ yKoord=“100“ /> <Knoten xKoord=“200“ yKoord=“100“ /> </Linie> <Knoten xKoord=“150“ yKoord=“200“ /> </Polygon> </Landkarte> 150, 200 200, 100 100, 100 Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

36 Beispiel Landkarten: 2. Möglichkeit (I)
<!ELEMENT Landkarte (Polygon+,(Linie, Linie, Linie+),(Knoten, Knoten, Knoten+))> <!ELEMENT Polygon EMPTY> <!ELEMENT Linie EMPTY> <!ELEMENT Knoten EMPTY> Landkarte 1..* 3..* 3..* Polygon Linie Knoten 2 3..* 2..* 2 Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

37 Beispiel Landkarten: 2. Möglichkeit (II)
<!ELEMENT Landkarte (Polygon+,(Linie,Linie, Linie+),(Knoten, Knoten, Knoten+))> <!ELEMENT Polygon EMPTY> <!ELEMENT Linie EMPTY> <!ELEMENT Knoten EMPTY> <schema xmlns=“http://www.w3c.org/2001/XML-Schema“ targetNamespace=“http://landkarten.beispiele.de/schema“ xmlns:lk=“http://landkarten.beispiele.de/schema“> <element name=“landkarte“ type=“lk:landkartenTyp“/> <element name=“polygon“ type=“lk:polygonTyp“/> <element name=“linie“ type=“lk:linienTyp“/> <element name=“knoten“ type=“lk:knotenTyp“/> <complexType name=“landkartenTyp“> <sequence> <element ref=“lk:polygon“ minOccurs=“1“/> <element ref=“lk:linie“ minOccurs=“3“/> <element ref=“lk:knoten“ minOccurs=“3“/> </sequence> </complexType> ... <!ATTLIST Landkarte Polygon_IDs IDREFS #REQUIRED> <!ATTLIST Polygon Polygon_ID ID #REQUIRED Linien_IDs IDREFS #REQUIRED> <!ATTLIST Linie Linien_ID ID #REQUIRED Knoten_IDs IDREFS #REQUIRED> <!ATTLIST Knoten Knoten_ID ID #REQUIRED xKoord CDATA #REQUIRED yKoord CDATA #REQUIRED> Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

38 Beispiel Landkarten: 2. Möglichkeit (III)
... <complexType name=“polygontyp“> <attribut name=“polygon_ID“ type=“ID“ use=“required“/> <attribut name=“linien_IDs“ type=“IDREFS“ use=“required“/> </complexType> <complexType name=“linientyp“> <attribut name=“linien_ID“ type=“ID“ use=“required“/> <attribut name=“knoten_IDs“ type=“IDREFS“ use=“required“/> <complexType name=“knotentyp“> <attribut name=“knoten_ID“ type=“ID“ use=“required“/> <attribut name=“xKoord“ type=“float“ use=“required“/> <attribut name=“yKoord“ type=“float“ use=“required“/> </schema> Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14

39 Beispiel Landkarten: 2. Möglichkeit (III)
Instanzdokument: <Landkarte Polygon_IDs=“P1 P2“> <Polygon Polygon_ID=“P1“ Linien_IDs=“L1 L3 L7“ /> <Polygon Polygon_ID=“P2“ Linien_IDs=“L3 L5 L6“ /> <Linie Linien_ID=“L1“ Knoten_IDs=“P3 P7“ /> <Linie Linien_ID=“L3“ Knoten_IDs=“P7 P9“ /> <Linie Linien_ID=“L5“ Knoten_IDs=“P4 P7“ /> <Linie Linien_ID=“L6“ Knoten_IDs=“P4 P9“ /> <Linie Linien_ID=“L7“ Knoten_IDs=“P9 P3“ /> <Knoten Knoten_ID=“P3“ xKoord=“100“ yKoord=“100“ /> <Knoten Knoten_ID=“P4“ xKoord=“250“ yKoord=“200“ /> <Knoten Knoten_ID=“P7“ xKoord=“200“ yKoord=“100“ /> <Knoten Knoten_ID=“P9“ xKoord=“150“ yKoord=“200“ /> </Landkarte> P9 P4 P7 P3 L7 L1 L6 L5 L3 Thomas H. Kolbe - Geoinformationen III Semester - WS 02/ Vorlesung 14


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

Ähnliche Präsentationen


Google-Anzeigen