Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Dr. Thomas H. Kolbe Geoinformation III XML Grundlagen und Dokumentspezifikationen Vorlesung 12
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung Offene Systeme, Rechnernetze und das Internet Die eXtensible Markup Language XML 2.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 Übersicht über den dritten Vorlesungsblock
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 12 3 Extensible Markup Language XML ist eine Meta-Sprache zur Definition eigener Datenformate –in XML spezifizierte Dokumentenformate heißen XML-Anwendungen –Beispiele für bekannte XML-Anwendungen: Scalable Vector Graphics SVG Synchronised Media Integration Language SMIL Geographic Markup Language GML vom OpenGIS Consortium XML-Dokumente sind sowohl maschinen- als auch menschenlesbar Struktur und Syntax von XML-Dokumenten ähnelt HTML Der Entwurf von XML ist formal und präzise Korrektheit von XML-Dokumenten kann zu großen Teilen bereits außerhalb des eigentlichen Anwendungsprogramms geprüft werden Eines der größten Hindernisse bzgl. der Interoperabilität von Systemen sind die vielen proprietären Datenformate, deren Struktur zudem oftmals nicht offengelegt ist.
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 12 4 Extensible Markup Language (XML) 1.0 XML – Dokument XML–Prozessor (PARSER) Anwendung W3C Recommendation (Feb. 1998) Das World-Wide-Web-Consortium (W3C) ist für die Entwicklung von Standards für das WWW zuständig Second Edition: W3C Recommendation (Okt. 2000) In dem oben genannten Dokument werden XML-Dokumente und das Verhalten eines XML-Prozessors (Parser) definiert, der ein XML- Dokument liest und an eine Anwendung weiterreicht, die die Information verarbeitet:
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 12 5 HTML Carl F. Gauß 1777 bis 1855 Mathematiker Geodät Physiker Carl F. Gauß 1777 bis 1855 Mathematiker Geodät Physiker ErgebnisQuelltext paragraph (Absatz) bold (fett) unnamed list List item Problem: für die Darstellung im Webbrowser geeignet, allerdings nicht für thematische Abfragen und Recherchen. Die Auszeichnungen (Tags) sagen nur etwas über die Formatierung, aber nicht über die Bedeutung (Semantik) des Textinhaltes aus. Beispielanfrage: Welche Berufe hatte der alte Gauß?
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 12 6 XML - Beispiel Carl F. Gauß Mathematik Geodät Physiker So sähe die entsprechende XML-Datei zum Beispiel der vorigen Folie aus. Durch entsprechend definiertes Markup (Tags) werden aus einfachen Daten (maschinen-) interpretierbare Informationen. Die Syntax und Struktur ähnelt der von HTML. So sähe die entsprechende XML-Datei zum Beispiel der vorigen Folie aus. Durch entsprechend definiertes Markup (Tags) werden aus einfachen Daten (maschinen-) interpretierbare Informationen. Die Syntax und Struktur ähnelt der von HTML.
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 12 7 Elemente, Tags und Zeichen Der String Carl Friedrich Gauß und die Leerzeichen sind Zeichendaten und sind Auszeichnungen (Markup) Das Tag ist die gebräuchlichste Form der Auszeichnung in einem XML-Dokument für leere Elemente, also Elemente ohne Inhalt, kann folgende Syntax abkürzend verwendet werden anstatt zwischen Groß- und Kleinschreibung wird unterschieden Person person Carl Friedrich Gauß End-Tag Start-TagInhaltElement person
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 12 8 Friedrich Gauß Mathematiker Geodät person Geschwister Elternelement von vor- und nachname Kindelement von person Friedrich vornamenachname Gauß beruf name GeodätMathematiker Wurzelelement XML – Dokumente sind Bäume
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 12 9 XML-Dokumente mit gemischtem Inhalt Carl Friedrich Gauß war einer der wichtigsten Geodäten und Mathematiker. Gauß war außerdem ein anerkannter Physiker. Am 23. Februar 1855 ist er gestorben. Das Wurzelelement biographie enthält die Kindelemente name, beruf und datum und eine Menge roher, unstrukturierter Zeichendaten. Es enthält einen gemischten Inhalt.
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung Attribute Carl Friedrich Gauß Elemente können neben dem Inhalt auch noch Attribute besitzen Ein Attribut ist ein Paar aus einem Namen und einem Wert Die Zuweisung erfolgt im Start-Tag eines Elements Die Namen werden von den Werten durch Gleichheitszeichen und optional durch Leerzeichen getrennt Die Werte sind in einfache oder doppelte Anführungszeichen eingeschlossen entspricht Carl Friedrich Gauß
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung XML – Namen I XML-Namen (Element-, Attributnamen,...) dürfen folgende Zeichen enthalten: Buchstaben: A – Z ; a – z (englische Buchstaben) Nichtenglische Buchstaben und Ideogramme: ö, , , ç Ziffern: 0 – 9 Nur folgende Interpunktionszeichen: Unterstrich ( _ ), Bindestrich ( - ), Punkt (. ) Doppelpunkt ist für Namensräume reserviert XML-Namen müssen mit Buchstaben, Ideogrammen oder Unterstrich beginnen Reserviert sind alle Namen die mit XML, xml, Xml, xMl... beginnen /01/2002 Carl Gauß Ich mag dich f f
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung XML – Namen II /01/2002 Carl Friedrich Ich mag dich f f XML-Namen (Element-, Attributnamen,...) dürfen folgende Zeichen enthalten: Buchstaben: A – Z ; a – z (englische Buchstaben) Nichtenglische Buchstaben und Ideogramme: ö, , , ç Ziffern: 0 – 9 Nur folgende Interpunktionszeichen: Unterstrich ( _ ), Bindestrich ( - ), Punkt (. ) Doppelpunkt ist für Namensräume reserviert XML-Namen müssen mit Buchstaben, Ideogrammen oder Unterstrich beginnen Reserviert sind alle Namen die mit XML, xml, Xml, xMl... beginnen
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung Entity-Referenzen XML reserviert einige Zeichen (<>&“‘/). Um diese dennoch verwenden zu können verwenden werden sie durch Entity-Referenzen ersetzt. XML gibt genau fünf Entities mit entsprechenden Entity-Referenzen vor: < Kleiner-als-Zeichen (<) & das Ampersand (&) > Großer-als-Zeichen (>) " geraden doppelten Anführungszeichen (“) ' Apostroph oder einfachen Anführungszeichen (‘) Bsp.: Witte & Schmidt bedeutet: Witte & Schmidt das & kann von Parsern nicht missverstanden werden Es können selber weitere Entities & Entity-Referenzen festgelegt werden.
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung CDATA-Abschnitte Um die aufwändige Nutzung der Entity-Referenzen zu umgehen gibt die Möglichkeit der CDATA-Abschnitte: CDATA-Abschnitte: Alles was sich zwischen befindet, wird als reine Zeichenkette interpretiert. Es gibt keine Auszeichnungen, nur noch Zeichendaten. Beispiel: Sei´s drum! ]]> ist hier kein Tag sondern nur ein Zeichenstring
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung Kommentare Kommentare benutzt man um den Quellcode für menschliche Leser verständlich zu machen. Kommentare beginnen mit Bsp.: Die Regeln für Kommentare: -- sollte innerhalb eines Kommentars nicht auftreten ein 3-facher Bindestich als Teil des Schlusszeichens ---> ist verboten Kommentare sind niemals zwingend Sie dürfen nicht innerhalb von Tags oder andere Kommentaren stehen
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung Steueranweisungen XML-Dokumente sind normalerweise weitgehend unabhängig von den Programmen, die mit ihnen arbeiten In manchen Fällen kann es sinnvoll sein, Hinweise oder Befehle zum Lesen bzw. zur Bearbeitung in ein Dokument einzubauen Steueranweisungen (Processing Instructions) dienen der Übergabe von Informationen an bestimmte Anwendungsprogramme Steueranweisungen können eine beliebige Menge Text enthalten, der „ungeparsed“, d.h. ohne Konvertierungen oder Ersetzungen an die entsprechende Anwendung weitergereicht wird. Beispiel: Name der Anwendung Beginn mit <? beliebiger Text Ende mit ?>
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung XML-Deklaration Carl Friedrich Gauß Verwendete XML-Version Verwendeter Zeichensatz Eigenständige Datei Ja / Nein Die XML-Deklaration ist eine optionale Steueranweisung steht als erste im Dokument gibt Auskunft über
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung Wohlgeformtheit I Alle XML-Dokumente müssen ohne Ausnahme wohlgeformt sein: 2.Elemente dürfen einander nicht überschneiden 3.Attributwerte müssen in Anführungszeichen stehen 1.Jedes Start-Tag muss ein dazugehöriges End-Tag haben Friedrich Gauß Carl Friedrich Gauß Gauß
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung Wohlgeformtheit II Alle XML-Dokumente müssen ohne Ausnahme wohlgeformt sein: 6.Kommentare & Steueranweisungen dürfen nicht innerhalb Tags stehen 5.Ein Element darf nicht 2 Attribute mit gleichem Namen besitzen Carl Friedrich Gauß > Carl Friedrich Gauß Carl Friedrich Gauß 4.Element- und Attributbezeichner müssen XML-Namen sein
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung Wohlgeformtheit III Alle XML-Dokumente müssen ohne Ausnahme wohlgeformt sein: 7.In den Zeichendaten eines Elements oder Attributs dürfen keine ungeschützten <- oder &- Zeichen stehen. Geodät Carl 8.Es muss genau ein Wurzelelement geben Witte & Schmidt Carl Geodät Witte & Schmidt
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 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 Jede XML-Anwendung definiert die ihr bekannten bzw. von ihr akzeptierten Elemente sowie die Dokumentenstruktur mit Hilfe der sog. Document Type Declaration
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung Dokumententyp-Deklaration Die Dokumententyp-Deklaration besteht aus einzelnen Dokumenttyp-Definitionen, den sog. DTDs: –Element-Definitionen –Attribut-Definitionen Diese können –am Anfang eines XML-Dokuments enthalten sein... ]> –oder in einer eigenen Datei zusammengefasst stehen.
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung Element-Definition Die Grundform der Element-Definition: Die Inhaltsmodelle geben an in welcher Reihenfolge welche Kinder und wie viele Kinder ein Element haben kann oder muss Es gibt folgende Inhaltsmodelle: Auswahl Klammern Gemischter Inhalt Leere Elemente #PCDATA Kindelemente Folgen (Sequenzen) Anzahl der Kinder
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung Inhaltsmodell: #PCDATA Modellierung von unstrukturiertem Text #PCDATA=Parsed Character Data darf keine Kindelemente enthalten Entity-Referenzen werden aufgelöst ( " “ ) (deshalb Parsed Character Data) Beispiel: Definition: XML-Datei: XML macht Spaß
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung Inhaltsmodell: Kindelemente Kindelemente Element muss genau ein Kind des vorgegebenen Typs haben Beispiel:
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung Inhaltsmodell: Folgen (Sequenzen) Folgen (Sequenzen) angegebenen Elemente werden durch Kommata getrennt sie müssen in der angegebenen Reihenfolge auftreten Beispiel: Friedrich Gauß
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung Inhaltsmodell: Auswahl Auswahl Möglichen Elemente werden durch | getrennt Beispiel: Gauß 1 Carl 2 oder 12 Nurmöglich.Nichtund 12
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung Inhaltsmodell: Anzahl der Kinder / Multiplizität Die Anzahl der Kinder / Multiplizität wird durch Anhängen folgender Zeichen an den Elementnamen bestimmt. ? Erlaubt kein oder ein Elemente * Erlaubt kein oder mehrere Elemente + Erlaubt ein oder mehrere Elemente Friedrich Beispiel: Friedrich Gauß oder
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung Eine Beispiel-DTD Eine DTD für das Element person Das Element person besitzt ein Kindelement name und kein oder mehrere Kindelemente beruf Die Elemente vorname, beruf und nachname enthalten alle Text Die Reihenfolge wird festgeschrieben: erst name dann beruf(e) Das Element name besitzt ein Kindelement vorname und ein Kindelement nachname
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung 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 der DTDs 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 heissen gültig, wenn sie der DTD entsprechen
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung Was DTDs nicht können Die DTDs sagen nichts darüber aus: Wie das Wurzelelement des Dokuments aussieht Wie viele Instanzen jedes einzelnen Elements im Dokument auftauchen dürfen / sollen Wie die Zeichendaten innerhalb der Elemente aussehen Was die semantische Bedeutung eines Elements ist; z.B. ob es ein Datum oder einen Namen enthält
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung Beispiele: Dokumententyp-Deklaration Ist dieses person-Element gültig, bzw. entspricht das Dokument der DTD? JA Beispiel 1 für ein Element person Friedrich Gauß Mathematiker Bsp. einer DTD für ein Element person
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung Beispiele: Dokumententyp-Deklaration Bsp. einer DTD für ein Element person Ist dieses person-Element gültig, bzw. entspricht das Dokument der DTD? Nein, das Element name fehlt Beispiel 2 für ein Element person Mathematiker Physiker Geodät
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung Beispiele: Dokumententyp-Deklaration Bsp. einer DTD für ein Element person Ist dieses person-Element gültig, bzw. entspricht das Dokument der DTD? Nein, das Element beruf steht vor dem Element name Mathematiker Friedrich Gauß Physiker Geodät
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung Beispiele: Dokumententyp-Deklaration Bsp. einer DTD für das Element person Ist dieses person-Element gültig, bzw. entspricht das Dokument der DTD? JA Beispiel 4 für ein Element person Friedrich Gauß
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung Beispiele: Dokumententyp-Deklaration Bsp. einer DTD für das Element person Ist dieses person-Element gültig, bzw. entspricht das Dokument der DTD? Nein, das Element Leistung ist in der DTD nicht vorgesehen Friedrich Gauß Physiker Geodät N-Verteilung
Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 02/03 - Vorlesung Beispiele: Dokumententyp-Deklaration Bsp. einer DTD für das Element person Ist dieses person-Element gültig, bzw. entspricht das Dokument der DTD? Nein, Text ist nur innerhalb der Kinder vorname, nachname und beruf vorgesehen Friedrich Gauß war Physiker und Geodät