Datenmodellierung für INSPIRE-Themen und Umsetzung mit GML

Slides:



Advertisements
Ähnliche Präsentationen
Anmerkungen zu XML Im September 2000 Entwicklung/Anspruch von XML
Advertisements

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: Grundlagen der Sprache
DOM (Document Object Model)
XINDICE The Apache XML Project Name: Jacqueline Langhorst
XPATH XML Path Language. Xpath – XML Path Language IT Zertifikat - Daten und Metadatenstandards: XPath 2 Entwicklung des W3C Adressierungssprache für.
XML - Abfragesprache Xpath. Problemstellung Unsere XML-Datei steht und wir wollen alle 1. Titel aller vergangenen Sendungen automatisch aus den Playlists.
XML-Schema HKI Proseminar Wintersemester 2010/11 Dozentin: Frau Kurz von Jan Kohl und Christian Lütticke.
© 2002 Prof. Dr. G. Hellberg 1 XML-Seminar XML-Technologie: XML in Theorie und Praxis Prof. Dr. G. Hellberg XML-Technologie: XML in Theorie und Praxis.
XHTML 1.1 C. Nimz Abstrakte Module XHTML 1.1 C. Nimz Was ist ein abstraktes Modul? Definition eines XHTML-Moduls in spezieller leichter.
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.
Geoinformation III Vorlesung 13b XML-Schema.
XPointer Die Xpointer beschreiben einen Ort oder Bereich innerhalb einer XML-Instanz. Die XPointer bauen auf der XML Path Language auf. Die XPointer ist.
OWL-Web Ontology Language Eine Einführung
RDF-Schema Seminar: „Semantic Web“ André Rosin,
DVG Klassen und Objekte
2.2 Definition eines Datenbankschemas (SQL-DDL)
1 XML und Datenbanken Kapitel 7: Modellierung, Teil 1 Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik
XSLT.
XML Schema.
XML - Konzepte XHTML XML Base XPath XInclude XLink XForms XPointer
Fortsetzung DTDs, UML  XML
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 2 Folie 2 XAML (1) s.a.
XPath Was ist XPath XPath ist eine Syntax für das Definieren der Teile eines XML-Dokumentes. XPath benutzt Pfade, um XML-Elemente zu definieren. XPath.
Wohlgeformtheit und Gültigkeit Grundlagen der Datenmodellierung Anke Jackschina.
Ausgabe vom Seite 1, XML Eine Einführung XML - Eine Einführung.
Programmbereich, zu dem eine Deklaration gehört Arten von Gültigkeitsbereichen -Namespace : Deklarationen von Klassen, Interfaces, Structs, Enums, Delegates.
Kurzpräsentation von Herbert Schlechta
Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema XML, DTDs und XML-Schema - Stefan Kurz, 25. April 2003.
IT-Zertifikat der Phil.Fak Kurs 4: Daten- und Metadatenstandards Patrick Sahle XML-BasicsWS 08/09.
XPath Datenmodell und Sequenzen Universität zu Köln – Historisch-Kulturwissenschaftliche Informationsverarbeitung Datenbanktechnologie – Daniel Ebner –
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.
Geoinformation3 Geoinformation III XML Grundlagen und Dokumentspezifikation Vorlesung 12b.
Geoinformation3 Geoinformation III XML Grundlagen, Namensräume und Hyperlinks Vorlesung 12b.
Java-Kurs Übung Besprechung der Hausaufgabe
Geoinformation3 Geoinformation III XML-Schema Vorlesung 13a.
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
Variablen und Datentypen
Document Type Definitions (DTDs) Marko Harasic Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme
Key-Value Paare (KVP) - Metadaten für Kanäle speichern und nach MDF4 exportieren PM (V1.0)
Tutorium Software-Engineering SS14 Florian Manghofer.
XML. Überblick In Anlehnung an Sprachmerkmale Wie jede Sprache verfügen auch ML über –Syntax  Wohlgeformtheit –Grammatik  DTD, XML-Schema.
Fortsetzung DTDs, UML  XML
Datentypen: integer, char, string, boolean
Validierung vom XML mit XML Schema
Geography Markup Language GML
Sensornetze in der MDI Michael Bauer
Fortsetzung DTDs, UML  XML
Geography Markup Language GML
XML-Schema UML  XML-Schema
MyCoRe-Anwendung selbst gebaut
Dokumentenproduktion im Medienzentrum
Seminarphase PG 402 Thema: Semantic Web Autor: Phillip Look
Raphael Fischer Informatik II - Übung 06 Raphael Fischer
SS 04 Christiane Rauh Christian Hellinger
Geschäftsregeln in XÖV-Standards XÖV-Konferenz 2018
PI Infrastruktur in der Max-Planck-Gesellschaft
Methodische Grundlagen des Software-Engineering
Da·ten·bank /Dátenbank/ Substantiv, feminin [die]
1. Die rekursive Datenstruktur Liste 1
9. Vererbung und Polymorphie
DB2 – SS 2019 von Baum allgemein bis B*-Baum
DB2 – SS 2019 von Baum allgemein bis B*-Baum
 Präsentation transkript:

Datenmodellierung für INSPIRE-Themen und Umsetzung mit GML Peter Korduan Universität Rostock Agrar- und Umweltwissenschaftliche Fakultät Professur für Geodäsie und Geoinformatik

Übersicht Layer aus Sicht der AG MSRL Datenthemen INSPIRE Oceanographic and Geographical Features Environmental Monitoring Facilities Observation and Measurement

Layertabelle Eutrophierung

INSPIRE Datenthemen Annex I Annex II 1. Coordinate reference systems Annex III 1. Statistical units 2. Buildings 3. Soil 4. Land use 5. Human health and safety 6. Utility and Government services 7. Environmental monitoring facilities 8. Production and indu strial facilities 9. Agricultural and aquaculture facilities 10. Population distribution – demography 11. Area management/restriction/regulation zones & reporting units 12. Natural risk zones 13. Atmospheric conditions 14. Meteorological geographical features 15. Oceanographic geographical features 16. Sea regions 17. Bio-geographical regions 18. Habitats and biotopes 19. Species distribution 20. Energy resources 21. Mineral resources Annex I 1. Coordinate reference systems 2. Geographical grid systems 3. Geographical names 4. Administrative units 5. Addresses 6. Cadastral parcels 7. Transport networks 8. Hydrography 9. Protected sites Annex II 1. Elevation 2. Land cover 3. Orthoimagery 4. Geology

Identifizierung nach Artikel 4 der INSPIRE Richtlinie Auch die Quellen der Daten? INSPIRE Spezifikationen für die Energiewirtschaft, Dr. Peter Korduan

Wie sehen die Daten-Spezifikationen genau aus? Anhänge (Pakete) Spezifikationen (Pakete) Anwendungsschemata (Pakete) FeatureTypen (Klassen) Feature Eigenschaften (Attribute) DatenTypen (Klassen) Code-Listen (Enumeration) Listeneinträge (Values) Beziehungen (Assoziation, Aggregation, Generalisierung, …) Multiplizität... INSPIRE Spezifikationen für die Energiewirtschaft, Dr. Peter Korduan

INSPIRE Modell Modelle für INSPIRE sind objektorientiert Typen werden als Klassen modelliert zusammen mit Beziehungen in Klassendiagrammen Klassen können voneinander abgeleitet sein Attribute können einfache Werte der bekannten Typen Integer, Double oder String haben, oder andern Typen entsprechen MDI-DE, Korduan

MDI-DE, Korduan

SeaRegions packages

Overview of sea areas

Overview of SeaBed, SeaSurface and MarineIsoLine

Overview of MarineAdministrativeZone

Hirarchical Cascade of Environmental Monitoring Facilities

Application Schema Environmental Monitoring Facilities

Applikation Schema Environmental Monitoring Network

Observation and Measurement An Observation is an action whose result is an estimate of the value of some property of the feature-of-interest, at a specific point in time, obtained using a specified procedure Cox 2008 ISO Standards 19156 Für Repräsentation von gemessenen, modellierten und simulierten Daten Domainübergreifend vor allem für Datenaustausch Für Daten und Qualitätsdaten Handlungsanleitung in INSPIRE/D2.9 MDI-DE, Korduan

Basic Observation Type

Sampling Feature Type

Einführung zu GML MDI-DE, Korduan

Namensräume (Namespaces) Namensräume sind ein Mechanismus um Konflikte in Elementnamen zu lösen Was passiert, wenn zwei Elemente mit einem Name definiert sind? Elementnamen sind mit einem Präfix geschrieben, und das Präfix ist zu einem Namensraum gebunden Der Namensraum ist als URI spezifiziert <mein:Element xmlns:mein="http://www.mein.com"> <dein:Element xmlns:dein="http://www.dein.com" /> </mein:Element> Mehrere Namensräume können in einem Dokument verwendet werden Eine Defaultnamensraum (ohne Präfix) kann auch definiert werden Ein Schema wird mit einem Zielnamensraum (targetNamespace) definiert - 22

XSD – XML Schema Definition XSD sind selbst XML Dokumente, die eine XML-Grammatik definieren XSD unterstützt verschiedene Datentypen und objekt-orientierte Konzepte wie Abstraktion und Vererbung Der XSD-Namensraum ist http://www.w3.org/2001/XMLSchema Präfix xs oder xsd wird normalerweise hierzu gebunden Für Instanzen eines Schemas gibt es noch einen Namensraum xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance„ Die Schemadatei selbst soll in dem Dokument referenziert werden xsi:schemaLocation="http://namespace.com myschema.xsd" xsi:noNamespaceSchemaLocation="defaultSchema.xsd" - 23

Beispiel einer XSD… <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://my.schema.com" xmlns:myns="http://my.schema.com" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xsd:element name="Buch"> <xsd:complexType> <xsd:sequence> <xsd:element name="Titel" type="xsd:string"/> <xsd:element name="Autor" type="xsd:string"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:ID"/> <xsd:attribute name="foo"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:pattern value="(bar|doz)+"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:complexType> </xsd:element> </xsd:schema> - 24

...und einer entsprechenden Instanz <?xml version="1.0" encoding="UTF-8"?> <myns:Buch xmlns:myns="http://my.schema.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://my.schema.com schema.xsd" id="buch_1" foo="bar"> <myns:Titel>Harry Potter</myns:Titel> <myns:Autor>J.K. Rowling</myns:Autor> </myns:Buch> - 25

Aspekte der XSD Modularität Elemente Konkret, Abstrakt Typen Standard Einfach, Komplex, Abstrakt Inline, Genannt Vererbung Erweiterung, Einschränkung Substitution Groups - 26

Modularität XSD können weitere XSD einbinden Mit anderen Namensräumen Um existierende Elemente anderer Schemen einzubinden <xsd:import namespace="http://your.schema.com" schemaLocation="yourSchema.xsd"/> Mit demselben Namensraum Um ein existierendes Schema zu erweitern <xsd:include schemaLocation="weiteresSchema.xsd"/> Ein Schema kann dadurch aus mehreren Dateien entstehen z.B. Geography Markup Language (GML) 3.1.1: 29 Dateien, alle im Namensraum http://www.opengis.net/gml - 27

Elemente Elemente sind mit xsd:Element definiert Attribut Name ist Pflicht: name="Buch" Ein Element kann als Abstrakt definiert werden Attribut: abstract="true" Nützlich im Zusammenhang mit substitutionGroup Ein Elementtyp kann entweder referenziert werden Attribut: type="myns:BuchType" oder inline definiert werden als Kindelement - 28

Typen Typen sind: entweder einfach (SimpleType) einen String (möglicherweise eingeschränkt) können für Attribute und Elemente verwendet werden verschiedene Standardtypen sind definiert (nächste Folien) oder komplex (ComplexType) mit Kindelementen und ggf. Attributen ComplexType, ComplexContent oder mit Attributen aber ohne Kindelemente ComplexType, SimpleContent ein Element, das nur einen String enthält, aber ein Attribut besitzt, ist komplex: ohne Attribute wäre es einfach! - 29

Vordefinierte String-Typen Die folgenden Typen sind alle in dem XSD-Namensraum definiert string Zeichenkette hier ist ein Beispiel language ISO639-1 Kürzel einer Sprache de, eo, tr, ja normalizedString Zeichenkette, bei der LF, CR und TAB durch 1 Leerzeichen ersetzt werden Abstand ist egal token Zeichenkette, bei der jeder Whitespace durch 1 Leerzeichen ersetzt wird und führende und folgende Leerzeichen entfernt werden Abstand ist egal ID (nur bei Attributen) eindeutige ID, darf nicht rein numerisch sein A123445 IDREF (nur bei Attributen) Referenz auf eine ID IDREFS (nur bei Attributen) Referenzen auf IDs A123445 A12443 BAGHOE NMTOKEN (nur bei Attributen) Zeichenkette, die ein Token darstellt hallo NMTOKENS (nur bei Attributen) Zeichenkette, die ein oder mehrere Token darstellt hallo Welt Quelle: https://www.bg.bib.de/portale/xml/pdf/XML-Schema.pdf - 30

Vordefinierte ganzzahlige numerische Typen integer Ganzzahl -12345, -1, 0, 126789 positiveInteger positive Ganzzahl 1, 234234 negativeInteger negative Ganzzahl -1, -234234 nonNegativeInteger positive Ganzzahl oder 0 0, 23433 nonPositiveInteger negative Ganzzahl oder 0 -3442, 0 byte 8-bit-Integer mit Vorzeichen -1, 125 unsignedByte 8-bit-Integer ohne Vorzeichen 0, 250 short 16-bit-Integer mit Vorzeichen -1, 12555 unsignedShort 16-bit-Integer ohne Vorzeichen 1, 12833 int 32-bit-Integer mit Vorzeichen unsignedInt 32-bit-Integer ohne Vorzeichen 4545352 long 64-bit-Integer mit Vorzeichen -1, 12378967543233 unsignedLong 64-bit-Integer ohne Vorzeichen 0, 12378967543233 Quelle: https://www.bg.bib.de/portale/xml/pdf/XML-Schema.pdf - 31

Vordefinierte nicht-ganzzahlige numerische Typen decimal gebrochene Dezimalzahl -1.23, 123.4, 1000.00 float Fließkommazahl -INF -1E4 -1.23, -0, 0, 12.78E-2, 12, INF, NaN double Quelle: https://www.bg.bib.de/portale/xml/pdf/XML-Schema.pdf Vordefinierte Datum-/Zeit-Typen time Uhrzeit, ggf. mit Zeitzone 11:20:00.000, 12:20:00.123-1:00, 14:00Z date Datum (immer ISO8601-Format!) 2004-02-15 gMonthDay Monat und Tag 12-25 gYear Jahr (bringt aber nichts gegenüber int) 2000 gYearMonth Jahr und Monat 2006-12 dateTime Zeitstempel 2004-02-15T09:00:00, 2005-01-01T03:00:00Z Duration Zeitdauer, muss immer mit ”P“ beginnen P2Y5M3DT10H30M12S, PT3.24S Quelle: https://www.bg.bib.de/portale/xml/pdf/XML-Schema.pdf - 32

Sonstige vordefinierte Typen boolean logischer Wert true, false, 1, 0 hexBinary binärer hex-String a6b346e2441e base64Binary binärer base64-String aGFsbG8K anyURI URI; falls Leerzeichen drin sind, mit %20 codieren http://www.uni-rostock.de/ Quelle: https://www.bg.bib.de/portale/xml/pdf/XML-Schema.pdf - 33

Restriktionen für einfache Datentypen Die zulässigen Werte einfacher Datentypen können auf verschiedene Weise eingeschränkt werden Aufzählung Muster (regulärer Ausdruck - regexp) Länge Min-/Max-Werten Format (Nachkommastellen bzw. Gesamtanzahl der Stellen) Whitespace Der neue Typ muss immer auf einem existierenden Typ basieren <xsd:restriction base="xsd:string"> <xsd:restriction base="myns:MyType"> Die neuen, eingeschränkten Datentypen können entweder inline einmal definiert und damit verwendet werden oder als neue genannte Typen definiert werden, die wie die vordefinierten Typen weiterverwendet werden können - 34

Inline- und genannte Typen Inline Typdefinitionen werden als Kindelemente einer Elementdefinition bzw. Attributdefinition definiert <xsd:attribute name="foo"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:pattern value="(bar|doz)+"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> Genannte Typen werden „selbstständig“ definiert <xsd:simpleType name="fooType"> <xsd:restriction base="xsd:string"> <xsd:pattern value="(bar|doz)+"/> </xsd:restriction> </xsd:simpleType> <xsd:element name="foo" type="footype"/> - 35

Aufzählung (Enumeration) Ein String kann auf eine Aufzählung beschränkt werden Nur einen Wert aus einer vordefinierten Liste darf enthalten sein <xsd:simpleType name="FarbenType"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="rot"/> <xsd:enumeration value="weiss"/> <xsd:enumeration value="blau"/> <xsd:enumeration value="schwarz"/> <xsd:enumeration value="gelb"/> <xsd:enumeration value="grün"/> </xsd:restriction> </xsd:simpleType> - 36

Länge Die Länge eines Strings kann eingeschränkt werden entweder wird eine exakte Länge vorgegeben <xsd:simpleType name="WährungType"> <xsd:restriction base="xsd:string"> <xsd:length value="3"/> </xsd:restríction> </xsd:simpleType> oder eine minimale Länge und/oder eine maximale Länge <xsd:simpleType name="BenutzernameType"> <xsd:restriction base="xsd:string"> <xsd:minLength value="8"/> </xsd:restríction> </xsd:simpleType> <xsd:simpleType name="KennwortType"> <xsd:restriction base="xsd:string"> <xsd:minLength value="8"/> <xsd:maxLength value="16"/> </xsd:restríction> </xsd:simpleType> - 37

Muster Die möglichen Inhalte können mit einem regulären Ausdruck („regexp“) definiert werden <xsd:element name="ISBN"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:pattern value="[-0-9]{13}|unbekannt|ohne"/> </xsd:restriction> </xsd:simpleType> </xsd:element> - 38

Werte Die Spannweite für eine Nummer kann mit maximalem bzw. minimalem Wert eingeschränkt werden <xsd:simpleType name="MeineNummerType"> <xsd:restriction base="xsd:double"> <xsd:maxExclusive value="1000.0"/> <xsd:minInclusive value="-5.0"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="DeineNummerType"> <xsd:restriction base="xsd:positiveInteger"> <xsd:maxInclusive value="1000"/> </xsd:restriction> </xsd:simpleType> - 39

Format Die maximale Anzahl der Stellen in einer Nummer kann festgelegt werden Nachkommastellen <xsd:simpleType name="PreisType"> <xsd:restriction base="xsd:decimal"> <xsd:fractionDigits value="2"/> </xsd:restriction> </xsd:simpleType> bzw. Gesamtzahl <xsd:simpleType name="DreiStelligeNummerType"> <xsd:restriction base="xsd:positiveInteger"> <xsd:totalDigits value="3"/> </xsd:restriction> </xsd:simpleType> - 40

Whitespace Wie ein XML-Prozessor den Whitespace behandeln soll kann definiert werden: Mit „preserve“ bleibt Whitespace erhalten (default) Mit „replace“ werden alle Whitespaces durch ein Leerzeichen ersetzt <xsd:simpleType name="AdresseType"> <xsd:restriction base="xsd:string"> <xsd:whiteSpace value="replace"/> </xsd:restriction> </xsd:simpleType> Mit „collapse“ werden führende und folgende Whitespaces entfernt und sonstige Whitespaces erhalten <xsd:simpleType name="BeschreibungType"> <xsd:restriction base="xsd:string"> <xsd:whiteSpace value="collapse"/> </xsd:restriction> </xsd:simpleType> - 41

Komplexe Typen Komplexe Typen sind nur für „Element“ verwendbar Sie entstehen aus einer Definition der erlaubten Unterelemente bzw. Attribute ein komplexer Typ mit komplexem Inhalt kann als komplett neuer Typ definiert werden, oder einen existierenden Typ erweitern oder einschränken einer Definition der erlaubten Attribute und Inhalte ein komplexer Typ mit einfachem Inhalt muss einen existierenden Typ erweitern - 42

Komplexe Typen mit einfachem Inhalt <xsd:complexType name="BeschreibungType"> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="sprache" type="xsd:language"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> Ein existierender Komplextyp mit einfachem Inhalt kann auch als Basis verwendet werden <xsd:complexType name="BeschreibungMitIDType"> <xsd:simpleContent> <xsd:extension base="myns:BeschreibungType"> <xsd:attribute name="id" type="xsd:ID"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> Alle Attribute werden geerbt - 43

Komplexe Typen mit komplexem Inhalt <xsd:complexType name="BuchType"> <xsd:sequence> <xsd:element name="Titel" type="xsd:string"/> <xsd:element name="Autor" type="xsd:string"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:ID"/> </xsd:complexType> Komplexer Inhalt bedeutet Kindelemente bzw. gemischter Inhalt Text und Kindelemente complexType mixed="true" <p><b>gemischter</b> inhalt</p> Für den Inhalt gibt es drei Inhaltsmodelle Sequence, Choice, All - 44

Sequenz „Sequence“ definiert, dass die spezifizierten Kindelemente in der definierten Reihenfolge angegeben werden müssen Die Anzahl jedes Elements kann auch spezifiziert werden <xsd:complexType name="BuchType"> <xsd:sequence> <xsd:element name="Titel" type="xsd:string" minOccurs="1" maxOccurs="1"/> <xsd:element name="Autor" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:ID"/> </xsd:complexType> <Buch id="buch1"> <Autor>J.R.R. Tolkien</Autor> <Titel>Herr der Ringe</Titel> </Buch> <Buch id="buch2"> <Titel>Herr der Ringe</Titel> </Buch>   - 45

Auswahl „Choice“ definiert, dass genau eines der Elemente angegeben werden muss <xsd:complexType name="GeometrieType"> <xsd:choice> <xsd:element ref="Punkt"/> <xsd:element ref="Linie"/> <xsd:element ref="Polygon"/> </xsd:choice> </xsd:complexType> - 46

Alle „All“ definiert, dass alle Kindelemente angegeben werden müssen Außer die, die mit minOccurs="0" definiert sind maxOccurs ist in diesem Fall immer 1! Die Reihenfolge ist egal <xsd:complexType name="BuchType"> <xsd:sequence> <xsd:element name="Titel" type="xsd:string"/> <xsd:element name="Autor" type="xsd:string" minOccurs="0" /> </xsd:sequence> <xsd:attribute name="id" type="xsd:ID"/> </xsd:complexType> <Buch id="buch1"> <Autor>J.R.R. Tolkien</Autor> <Titel>Herr der Ringe</Titel> </Buch> <Buch id="buch2"> <Titel>Herr der Ringe</Titel> </Buch>   - 47

Vererbung mit komplexem Inhalt Komplexe Typen können andere komplexe Typen erweitern oder einschränken Erweitern: zusätzliche Attribute, Kindelemente, … Einschränken: optionale Kindelemente ausschließen oder als Pflichtelemente definieren, die Anzahl eines Elements beschränken, der Typ eines Kindelements auf einen Untertyp beschränken ???, … - 48

Erweiterung komplexen Inhalts Alle Attribute und Kindelemente des Elterntyps werden geerbt <xsd:complexType name="BuchMitISBNType"> <xsd:complexContent> <xsd:extension base="myns:BuchType"> <xsd:sequence> <xsd:element ref="myns:ISBN"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <Buch id="buch1"> <Titel>Herr der Ringe</Titel> <Autor>J.R.R. Tolkien</Autor> <ISBN>3-6089-3544-4</ISBN> </Buch> Eine Instanz des Kindtyps muss keine gültige Instanz des Elterntyps sein - 49

Einschränkung komplexen Inhalts Alle Attribute des Elterntyps werden geerbt, aber alle Elemente, die geerbt werden sollen, müssen noch mal vollständig gelistet werden Kindelemente müssen hierfür als Verweise auf globale Elemente definiert werden <element ref="myElement"> Eine Instanz des Kindtyps wird auch eine gültige Instanz des Elterntyps - 50

Beispiel der Einschränkung komplexen Inhalts <xsd:element name="Titel" type="xsd:string"/> <xsd:element name="Autor" type="xsd:string"/> <xsd:complexType name="BuchType"> <xsd:sequence> <xsd:element ref="myns:Titel" minOccurs="1" maxOccurs="1"/> <xsd:element ref="myns:Autor" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:ID"/> </xsd:complexType> <xsd:complexType name="BuchMax3AutorType"> <xsd:complexContent> <xsd:restriction base="myns:BuchType"> <xsd:sequence> <xsd:element ref="myns:Titel" minOccurs="1" maxOccurs="1"/> <xsd:element ref="myns:Autor" minOccurs="1" maxOccurs="3"/> </xsd:sequence> </xsd:restriction> </xsd:complexContent> </xsd:complexType> - 51

Substitutionsgruppen „Substitution Groups“ definieren, dass ein Element anstelle eines anderen verwendet werden darf Das ursprüngliche Element ist der „Kopf“ der Substitutionsgruppe, das mit einem anderen Element ersetzt werden kann Das Kopfelement ist oft ein Abstraktelement, das nur existiert, um als Kopf einer Substitutionsgruppe zu dienen Die anderen Mitglieder der Substitutionsgruppe müssen entweder denselben Typ wie das Kopfelement nutzen oder einen Typ, der von dem Typ des Kopfelements ableitet ist nutzen Durch (einfache oder mehrfache) Erweiterung oder Einschränkung - 52

Beispiel einer Substitutionsgruppe… <xsd:element name="Element1" type="xsd:string"/> <xsd:element name="Kopf"/> <xsd:complexType name="KopfType"> <xsd:sequence> <xsd:element ref="myns:Element1" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:element name="Mitglied" substitutionGroup="myns:Kopf"/> <xsd:complexType name="MitgliedType"> <xsd:complexContent> <xsd:restriction base="myns:KopfType"> <xsd:element ref="myns:Element1" maxOccurs="1"/> </xsd:restriction> </xsd:complexContent> <xsd:element name="Beispiel"> <xsd:complexType> <xsd:element ref="myns:Kopf" maxOccurs="unbounded"/> </xsd:element> - 53

…und einer entsprechenden Instanz <?xml version ="1.0" encoding ="UTF-8"?> <myns:Beispiel xmlns:myns="http://my.schema.com"> <myns:Kopf> <myns:Element1>Inhalt</myns:Element1> <myns:Element1>Inhalt</myns:Element1> </myns:Kopf> <myns:Mitglied> <myns:Element1>Inhalt</myns:Element1> </myns:Mitglied> <myns:Kopf> <myns:Element1>Inhalt</myns:Element1> </myns:Kopf> </myns:Beispiel> - 54

Bearbeitung und Visualisierung XML-Schema Ein XML Schema-Editor kann die Bearbeitung eines Schemas erleichtern Visualisierung der Strukturen als Baum oder UML Konversion eines UML-Modells zum XML-Schema oder andersrum Generierung einer Beispieldatei Verschiedene Werkzeuge sind verfügbar Altova XML Spy (kostenlose Home-Version mit begrenzter Funktionalität, z.B. keine Unterstützung für import/include) hyperModel Eclipse plug-in (kostenlos, mit XSD↔UML aber keine direkte XSD-Editierung) oxygenXML (30-Tage Probeversion verfügbar) … - 55

Weitere XML Technologien Es gibt viele Technologien, um die Bearbeitung von XML-Dateien zu erleichtern: die XML-Familie XSL: Xml Stylesheet Language XSLT: Xml Stylesheet Language Transformation XPath XLink, XPointer XQuery … - 56

XPath XPath ist eine Technologie, um bestimmte Teile eines XML-Dokuments zu spezifizieren bzw. selektieren Jedes Teil (Elemente, Attribute, Inhalt) wird als Knoten behandelt (wie beim Dokument-Objekt Modell, DOM) Mittels eines XPath-Ausdrucks werden ein oder mehrere Knoten identifiziert XPath-Software bzw. -Bibliotheken nehmen einen XPath-Ausdruck und ein XML-Dokument bzw. -Fragment und liefern die entsprechenden Teile als Objekte zurück XPath wird in weiteren XML-Technologien wie XSLT verwendet - 57

Das Knoten-Modell Das Knoten-Modell eines XML-Dokuments enthält 7 Knotentypen Dokument (Wurzel) Element <Element/> Attribut schlüssel="wert" Text Inhalt Namensraum xmlns:myns="http://my.namespace.com" Kommentar <!-- Kommentar --> Verarbeitungsanweisung <?xml version="1.0"> Ein Dokument besteht aus Knoten in einer Baumstruktur Mit einem Dokumentknoten als Wurzelknoten Die Knoten haben Beziehungen zu anderen Knoten Eltern, Kinder, Geschwister, Ahn, Abkomme Das Dokument wird über diese Achsen von einem Kontextknoten aus navigiert - 58