1234567891011121314151617181920 Geoinformation3 Geoinformation III XML Grundlagen, Namensräume &...

21
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Geoinformation 3 Geoinformation III XML Grundlagen, Namensräume & Hyperlinks Vorlesung 12a

Transcript of 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML Grundlagen, Namensräume &...

Page 1: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML Grundlagen, 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

Geoinformation III

XMLGrundlagen, Namensräume &

Hyperlinks

Vorlesung 12a

Page 2: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML Grundlagen, 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

Page 3: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML Grundlagen, 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

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

Page 4: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML Grundlagen, 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

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

Page 5: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML Grundlagen, 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

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ß?

Page 6: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML Grundlagen, 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

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.

Page 7: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML Grundlagen, 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

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

Page 8: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML Grundlagen, 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

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

Page 9: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML Grundlagen, 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

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.

Page 10: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML Grundlagen, 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

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

Page 11: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML Grundlagen, 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

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

Page 12: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML Grundlagen, 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

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

Page 13: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML Grundlagen, 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

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:&lt; Kleiner-als-Zeichen (<)&amp; das Ampersand (&)&gt; Großer-als-Zeichen (>)&quot; geraden doppelten Anführungszeichen (“)&apos; Apostroph oder einfachen Anführungszeichen (‘)

Bsp.: <Autor>Witte &amp; Schmidt</Autor> bedeutet: <Autor>Witte & Schmidt</Autor> das &amp; kann von Parsern nicht missverstanden werdenEs können selber weitere Entities & Entity-Referenzen festgelegt

werden.

Page 14: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML Grundlagen, 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

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

Page 15: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML Grundlagen, 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

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

Page 16: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML Grundlagen, 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

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 ?>

Page 17: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML Grundlagen, 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

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

Page 18: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML Grundlagen, 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

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>

Page 19: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML Grundlagen, 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

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

Page 20: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML Grundlagen, 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

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 &amp; Schmidt</Autor>

<person> <name>

<vorname>Carl</vorname> </name> <beruf>Geodät</beruf></person>

<Autor>Witte & Schmidt</Autor>

Page 21: 1234567891011121314151617181920 Geoinformation3 Geoinformation III XML Grundlagen, 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

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)