Upload
achim-fried
View
219
Download
0
Embed Size (px)
Citation preview
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
Geoinformation III
XMLGrundlagen, Namensräume &
Hyperlinks
Vorlesung 12a
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
1
Übersicht über den dritten Vorlesungsblock
1. Offene Systeme, Rechnernetze und das Internet
Die eXtensible Markup Language XML2. Grundlagen, Namensräume & Hyperlinks3. XML Schema4. Von UML nach XML
Die Geography Markup Language GML:5. Grundlagen, Repräsentation räumlicher und nichträumlicher
Objekte6. Geometrie und Topologie
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
2
Eines der größten Hindernisse bzgl. der Interoperabilität von Systemen sind die vielen proprietären Datenformate, deren Struktur zudem oftmals nicht offengelegt ist.
• 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
Extensible Markup Language
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
3
Extensible Markup Language (XML) 1.0
W3C Recommendation (Feb. 1998)• Das World-Wide-Web-Consortium (W3C) ist für die Entwicklung von
Standards für das WWW zuständigSecond Edition: W3C Recommendation (Okt. 2000)
http://www.w3.org/TR/2000/REC-xml-20001006In 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:
A 1x
XML–
Dokument
XML–Prozessor(PARSER) Anwendung
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
4
A 9x
HTML
Carl F. Gauß
• 1777 bis 1855• Mathematiker• Geodät• Physiker
<p ><b>Carl F. Gauß</b></p><ul>
<li>1777 bis 1855</li><li>Mathematiker</li><li>Geodät</li><li>Physiker</li>
</ul>
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ß?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
5
XML - Beispiel
<?xml version=“1.0“ encoding=“ISO-8859-1“ standalone=“yes“?><!DOCTYPE person SYSTEM “person.dtd“><person> <name> <vorname>Carl</vorname> <vorname>F.</vorname> <nachname>Gauß</nachname> </name> <geburtsjahr>1777</geburtsjahr> <todesjahr>1855</todesjahr> <beruf>Mathematik</beruf> <beruf>Geodät</beruf> <beruf>Physiker</beruf></person>
A 1x
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
6
Elemente, Tags und Zeichen
• Der String Carl Friedrich Gauß und die Leerzeichen sind Zeichendaten• <person> und </person> 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 <br/> anstatt <br></br>• zwischen Groß- und Kleinschreibung wird unterschieden. z.B.:
Person personA 5x
<person> Carl Friedrich Gauß </person> End-Tag
Start-Tag
Inhalt
Element person
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
GeschwisterGeschwister Elternelement von vor- und nachname
7
XML – Dokumente sind Bäume
<person> <name> <vorname>Friedrich</vorname> <nachname>Gauß</nachname> </name> <beruf>Mathematiker</beruf> <beruf>Geodät</beruf> </person>
A 7x
person
Friedrich
vorname nachname
Gauß
beruf berufname
GeodätMathematiker
Kindelement von person
Wurzelelement
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
8
XML-Dokumente mit gemischtem Inhalt
<biographie> <name><vorname>Carl Friedrich</vorname> <nachname>Gauß</nachname> </name> war einer der wichtigsten Geodäten und Mathematiker.<name> <nachname>Gauß</nachname></name> war außerdem ein anerkannter <beruf>Physiker</beruf>. Am<datum><Tag>23.</Tag><monat>Februar </monat><jahr>1855</jahr></datum> ist er gestorben.</biographie>
• Das Wurzelelement biographie enthält die Kindelemente name, beruf und datum und eine Menge roher, unstrukturierter Zeichendaten. Es enthält einen gemischten Inhalt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
Attribute
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
9
A 1x
<person geboren=“1777/04/30“ gestorben=“1855/02/23“> Carl Friedrich Gauß</person>
<person geboren = ‘1777/04/30‘ gestorben = ‘1855/02/23‘> Carl Friedrich Gauß </person>
entspricht
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
10
XML – Namen IXML-Namen (Element-, Attributnamen,...) dürfen folgende Zeichen
enthalten:• Buchstaben: A – Z ; a – z (englische Buchstaben)• Nichtenglische Buchstaben und Ideogramme: ö, f, x, ç • 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
A 5x
<Carls_Geburtstag>30 4 1777</Carls_Geburtstag>
<Monat/Tag/Jahr>21/01/2002</Monat/Tag/Jahr>
<Vorname_Name>Carl Gauß</Vorname_Name>
<téléphone>0190 666666</téléphone>
<4-you>Ich mag dich</4-you>
f
f
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
11
XML – Namen II
A 5x
<Carl‘s_Geburtstag>30 4 1777</Carl‘s_Geburtstag>
<Monat-Tag-Jahr>21/01/2002</Monat-Tag-Jahr>
<Vorname Name>Carl Friedrich</Vorname Name>
<_4-you>Ich mag dich</_4-you>
<owoya>Melina Merkouri</owoya >
f
f
XML-Namen (Element-, Attributnamen,...) dürfen folgende Zeichen enthalten:
• Buchstaben: A – Z ; a – z (englische Buchstaben)• Nichtenglische Buchstaben und Ideogramme: ö, f, x, ç • 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
12
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.: <Autor>Witte & Schmidt</Autor> bedeutet: <Autor>Witte & Schmidt</Autor> das & kann von Parsern nicht missverstanden werdenEs können selber weitere Entities & Entity-Referenzen festgelegt
werden.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
13
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 <![CDATA[ und ]]> befindet, wird als reine
Zeichenkette interpretiert. Es gibt keine Auszeichnungen, nur noch Zeichendaten.Beispiel: <![CDATA[ XML ist so komplex! <seufz> Sei´s drum! ]]><seufz> ist hier kein Tag sondern nur ein Zeichenstring
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
14
Kommentare
Kommentare benutzt man um den Quellcode für menschliche Leser verständlich zu machen.
Kommentare beginnen mit <!-- und enden mit -->
Bsp.: <!-- Hier beschreibe ich die Person Gauß -- >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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
15
• 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:<?robots index=“yes“ follow=“no“?>
A 4x
Steueranweisungen
Name der Anwendung
Beginn mit <? beliebiger
Text
Ende mit ?>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
16
XML-Deklaration
Die XML-Deklaration• ist eine optionale Steueranweisung• steht als erste im Dokument• gibt Auskunft über
<?xml version=“1.0“ encoding=“ISO-8859-1“ standalone=“yes“?><person>Carl Friedrich Gauß </person>
A 3x
Verwendete XML-Version
Verwendeter Zeichensatz
Eigenständige Datei Ja / Nein
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
17
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
<vorname>Friedrich</vorname>
<name> <nachname>Gauß</name></nachname>
<person geboren=“1777/04/30“ gestorben=“1855/02/23“>Carl Friedrich Gauß</person>
<name> <nachname>Gauß</nachname></name>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
18
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
<person geboren=“1777/04/30“ geboren=“1855/02/23“>Carl Friedrich Gauß</person>
<person<!-- Hier bezeichne ich Personen-->> Carl Friedrich Gauß </person>
<person><!-- Hier bezeichne ich Personen--> Carl Friedrich Gauß </person>
4. Element- und Attributbezeichner müssen XML-Namen sein
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
19
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.
<person> <beruf>Geodät</beruf></person><person> <vorname>Carl</vorname></person>
8. Es muss genau ein Wurzelelement geben
<Autor>Witte & Schmidt</Autor>
<person> <name>
<vorname>Carl</vorname> </name> <beruf>Geodät</beruf></person>
<Autor>Witte & Schmidt</Autor>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
20
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 • einer sog. Document Type Declaration (DTD, veraltet)• eines XML-Schemas (aktuell, siehe Vorlesung nächste Woche)