XML-Schema UML  XML-Schema

Slides:



Advertisements
Ähnliche Präsentationen
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Advertisements

Extensible Markup Language
Worzyk FH Anhalt Datenbanksysteme für FÜ WS 2004/2005 XML - 1 XML Extensible Markup Language.
Dipl.- Dok. Rusalka Offer
Hands On – Einführung in XML
IMS Universität Stuttgart 1 Einführung in XML Hannah Kermes HS: Elektronische Wörterbücher Do,
FH-Hof Extensible Markup Language Richard Göbel. FH-Hof Extensible Markup Language XML XML ist universeller Ansatz für die Strukturierung von Zeichenketten.
Java: Objektorientierte Programmierung
Java: Grundlagen der Objektorientierung
Algorithmentheorie 04 –Hashing
XML-Schema HKI Proseminar Wintersemester 2010/11 Dozentin: Frau Kurz von Jan Kohl und Christian Lütticke.
XML-basierte Techniken
XHTML 1.1 C. Nimz Abstrakte Module XHTML 1.1 C. Nimz Was ist ein abstraktes Modul? Definition eines XHTML-Moduls in spezieller leichter.
Modularization of XHTML™
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
XML Schema. © Prof. T. Kudraß, HTWK Leipzig Die 3 Strömungen von XML XML Schema Dokumenten- verarbeitung Datenbanken und Datenaustausch Semistrukturierte.
SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die.
XML Standardisierungen und Abfragesprachen
Einführung XML XML Einführung Andreas Leicht.
Hauptseminar XML-Technologie: Resource Description Framework (RDF) Michael Kranz Betreuer: Roland Haratsch.
Diskrete Mathematik I Vorlesung Arrays-
Geoinformation III Vorlesung 13b XML-Schema.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
RDF-Schema Seminar: „Semantic Web“ André Rosin,
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
Typhierarchien Hierarchische Abhängigkeit zwischen zwei Typen durch –Erweiterung (engl. extension) oder –Restriktion (engl. restriction) einer bestehenden.
1 XML und Datenbanken Kapitel 7: Modellierung, Teil 1 Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik
1 Grundlagen und Anwendung der Extensible Markup Language (XML ) Peter Buxmann Institut für Wirtschaftsinformatik Johann Wolfgang Goethe-Universität Frankfurt.
Was versteht man unter XML Schema?
Diskrete Mathe 9 Vorlesung 9 SS 2001
XML DTD.
XML Schema.
DTD – Deklaration von Elementen Beschreibt die Einschränkungen des Inhalts eines Elements Syntax: Einziger atomarer Typ: #PCDATA (Parsed Character DATA)
XML – Schema (DTD).
Fortsetzung DTDs, UML  XML
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation I Vorlesung 12 WS 2000/2001 Gerhard Gröger Modellierung mit Geodatabases.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Objektorientierte Konzepte/UML Geoinformation I Vorlesung 2 WS 2000/2001.
Wird ganz am Anfang der HTML-Datei geschrieben Doctype html public bedeutet, dass man sich auf die Öffentlichkeit der html-dtd bezieht Html ist die meist.
Java für Fortgeschrittene
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 2 Folie 2 XAML (1) s.a.
Wohlgeformtheit und Gültigkeit Grundlagen der Datenmodellierung Anke Jackschina.
Ausgabe vom Seite 1, XML Eine Einführung XML - Eine Einführung.
Kurzpräsentation von Herbert Schlechta
XJustiz: Elektronischer Rechtsverkehr mit XML
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation III Vorlesung 1 WS 2001/02 Punkt-in-Landkarte I (Streifenkarte)
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 6 SS 2001 Segmentschnitt III.
Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema XML, DTDs und XML-Schema - Stefan Kurz, 25. April 2003.
Peter Brezany Institut für Softwarewissenschaften Universität Wien
XML Schema Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung WS2011/2012 Hist.-kult.wiss. Informationsverarbeitung (Teil.
Einführung in die Programmierung mit Java
Geoinformation3 Geoinformation III XML Grundlagen und Dokumentspezifikation Vorlesung 12b.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Dr. Thomas H. Kolbe Geoinformation III XML Grundlagen und Dokumentspezifikationen Vorlesung.
Geoinformation3 Geoinformation III XML Grundlagen, Namensräume und Hyperlinks Vorlesung 12b.
Geoinformation3 Geoinformation III XML-Schema Vorlesung 13a.
Einführung in die Programmierung mit Java
XML Grundlagen, Namensräume & Hyperlinks
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 7. Vorlesung WS 2002/2003.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 9. Vorlesung WS 2001/2002.
DTD und W3C XML Schema Seminar XML und Datenbanken Vortrag: Sven Blüge.
XML – Grundlagen und Anwendungen Teil 4: Modellierung von Datenmodellen mit XML-Schema Prof. Dr. Michael Löwe, FHDW Hannover.
Ableitung UML  XML Schema
8.November 2006 ― 1Elektronisches Publizieren: XML Namespaces Kodierung strukturierter Dokumente im Web — XML Namespaces —
27.November / 4.Dezmber 2006 ― 1Elektronisches Publizieren: XML Schema Schemasprachen für XML — XML Schema — Anne Brüggemann-Klein TU München.
Document Type Definitions (DTDs) Marko Harasic Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme
Fortsetzung DTDs, UML  XML
Validierung vom XML mit XML Schema
Fortsetzung DTDs, UML  XML
XML-Schema UML  XML-Schema
 Präsentation transkript:

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

Ü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 - 5. Semester - WS 02/03 - Vorlesung 14

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 - 5. Semester - WS 02/03 - Vorlesung 14

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 - 5. Semester - WS 02/03 - Vorlesung 14

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

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 - 5. Semester - WS 02/03 - Vorlesung 14

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 - 5. Semester - WS 02/03 - Vorlesung 14

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 - 5. Semester - WS 02/03 - Vorlesung 14

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 - 5. Semester - WS 02/03 - Vorlesung 14

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 - 5. Semester - WS 02/03 - Vorlesung 14

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 - 5. Semester - WS 02/03 - Vorlesung 14

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 - 5. Semester - WS 02/03 - Vorlesung 14

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 - 5. Semester - WS 02/03 - Vorlesung 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>1777-04-30<geburtsdatum/> </person> Verwendung in einer XML-Datei in einem Element „person“: Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 14

Simple Types – Auswahl (I) Beispiel(e) string GIS ist toll byte -1, 126 unsignedByte 0, 126 hexBinary 0FB7 integer -126789, -1, 0, 1, 126789 positiveInteger 1, 126789 negativeInteger -126789, -1 nonNegativeInteger 0, 1, 126789 int -1, 126789675 unsignedInt 0, 1267896754 long -1, 12678967543233 unsignedLong 0, 12678967543233 short -1, 12678 decimal 0, 12678 boolean true, false, 1, 0 Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 14

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 2003-02-03 3. Februar 2003 duration P1Y2M3DT10H30M12.3s 1 Jahr, 2 Monate, 3 Tage, 10 Std., 30 Min., 12.3 Sek. gMonthDay --02-03 jeden 3. Februar gYear 2003 Name shipTo XML 1.0 Name Qname po:US-Adresse NXML Namensraum Qname NCName USAdresse unqualifizierter Name anyURI http://www.ikg.uni-bonn.de 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 - 5. Semester - WS 02/03 - Vorlesung 14

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 - 5. Semester - WS 02/03 - Vorlesung 14

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 - 5. Semester - WS 02/03 - Vorlesung 14

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

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> 1 5 89 3048 -6784375 </eineIntegerListe> Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 14

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 - 5. Semester - WS 02/03 - Vorlesung 14

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 - 5. Semester - WS 02/03 - Vorlesung 14

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 - 5. Semester - WS 02/03 - Vorlesung 14

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 - 5. Semester - WS 02/03 - Vorlesung 14

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 - 5. Semester - WS 02/03 - Vorlesung 14

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 - 5. Semester - WS 02/03 - Vorlesung 14

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 - 5. Semester - WS 02/03 - Vorlesung 14

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 - 5. Semester - WS 02/03 - Vorlesung 14

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>123456789</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 - 5. Semester - WS 02/03 - Vorlesung 14

Ä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 - 5. Semester - WS 02/03 - Vorlesung 14

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 - 5. Semester - WS 02/03 - Vorlesung 14

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 - 5. Semester - WS 02/03 - Vorlesung 14

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 - 5. Semester - WS 02/03 - Vorlesung 14

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 - 5. Semester - WS 02/03 - Vorlesung 14

<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 - 5. Semester - WS 02/03 - Vorlesung 14

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 - 5. Semester - WS 02/03 - Vorlesung 14

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 - 5. Semester - WS 02/03 - Vorlesung 14

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 - 5. Semester - WS 02/03 - Vorlesung 14

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 - 5. Semester - WS 02/03 - Vorlesung 14