XML - Warum: Das HTML-Dilemma HTML, SGML, XML - Wie: Syntax, Konzepte, Sprachelemente Basics...

26
XML - Warum: Das HTML-Dilemma • HTML, SGML, XML - Wie: Syntax, Konzepte, Sprachelemente • Basics • Wohlgeformte XML-Dokumente (ohne DTD) • Gültige XML-Dokumente (mit DTD) • Attribute, Entities, Style Sheets • Weitere Konzepte aus dem XML Umfeld

Transcript of XML - Warum: Das HTML-Dilemma HTML, SGML, XML - Wie: Syntax, Konzepte, Sprachelemente Basics...

Page 1: XML - Warum: Das HTML-Dilemma HTML, SGML, XML - Wie: Syntax, Konzepte, Sprachelemente Basics Wohlgeformte XML-Dokumente (ohne DTD) Gültige XML-Dokumente.

XML

- Warum: Das HTML-Dilemma• HTML, SGML, XML

- Wie: Syntax, Konzepte, Sprachelemente• Basics• Wohlgeformte XML-Dokumente (ohne DTD)• Gültige XML-Dokumente (mit DTD)• Attribute, Entities, Style Sheets• Weitere Konzepte aus dem XML Umfeld

Page 2: XML - Warum: Das HTML-Dilemma HTML, SGML, XML - Wie: Syntax, Konzepte, Sprachelemente Basics Wohlgeformte XML-Dokumente (ohne DTD) Gültige XML-Dokumente.

Das HTML-Dilemma

HTML - eine Sprache zur Auszeichnung von Dokumenten

<H1>Überschrift 1</H1><H2>Überschrift 2</H2><p>Absatz<p>...

Page 3: XML - Warum: Das HTML-Dilemma HTML, SGML, XML - Wie: Syntax, Konzepte, Sprachelemente Basics Wohlgeformte XML-Dokumente (ohne DTD) Gültige XML-Dokumente.

Das HTML-Dilemma

HTML ist ...

einfach

...aber leider...

Erweiterbarkeit: Semantische Auszeichnung unmöglich Struktur: Komplexere Strukturen nicht abbildbar Validierung: Strukturelle Schwächen

Page 4: XML - Warum: Das HTML-Dilemma HTML, SGML, XML - Wie: Syntax, Konzepte, Sprachelemente Basics Wohlgeformte XML-Dokumente (ohne DTD) Gültige XML-Dokumente.

Das HTML-Dilemma

Erweiterbarkeit: HTML ist ein reines Präsentationsformat. Ein in HTML codiertes Dokument enthält nur Informationen, wie Inhalte darzustellen sind; weitergehende Informationen über die Semantik des Inhalts sind nicht abbildbar.

Struktur: In HTML können keine Datenstrukturen jenseits von Formatinformationen beschrieben werden. Der Zusammenhang der Daten untereinander ist nicht beschreibbar.

Validierung: HTML fehlen Sprachspezifikationen, die Anwendungen, die HTML-codierte Daten verarbeiten sollen, eine Überprüfung der strukturellen Validität der Daten erlauben, also der Korrektheit der Struktur des Markup in XML-Dokumenten.

Page 5: XML - Warum: Das HTML-Dilemma HTML, SGML, XML - Wie: Syntax, Konzepte, Sprachelemente Basics Wohlgeformte XML-Dokumente (ohne DTD) Gültige XML-Dokumente.

XML: Das Sprachkonzept

Was ist XML ?

Die eXtensible Markup Language XML ist eine textbasierte Meta-Auszeichnungssprache, die die Beschreibung, den Austausch, die Darstellung und die Manipulation von strukturierten Daten erlaubt, so daß diese von einer Vielzahl von Anwendungen genutzt werden können.

Page 6: XML - Warum: Das HTML-Dilemma HTML, SGML, XML - Wie: Syntax, Konzepte, Sprachelemente Basics Wohlgeformte XML-Dokumente (ohne DTD) Gültige XML-Dokumente.

XML: Das Sprachkonzept

Struktur

Formatierung

Präsentation

Inhalt

XML basiert genau wie SGML auf der Idee des strukturierten Auszeichnens von Daten

Page 7: XML - Warum: Das HTML-Dilemma HTML, SGML, XML - Wie: Syntax, Konzepte, Sprachelemente Basics Wohlgeformte XML-Dokumente (ohne DTD) Gültige XML-Dokumente.

XML: Das Sprachkonzept

• Tags und Attribute können individuell definiert und benannt werden.• Dokumentenstrukturen können in beliebiger Komplexität abgebildet

werden.• XML-Dokumente können - müssen aber nicht – eine formale

Beschreibung ihrer Grammatik enthalten.

Page 8: XML - Warum: Das HTML-Dilemma HTML, SGML, XML - Wie: Syntax, Konzepte, Sprachelemente Basics Wohlgeformte XML-Dokumente (ohne DTD) Gültige XML-Dokumente.

XML: Das Sprachkonzept

XML besteht also aus Tags <TAG>Inhalt</TAG>

...die ineinander geschachtelt sind <TAG><NochEinTag>Inhalt</NochEinTag></TAG>

...und zusammen mit einer XML-Deklaration bereits ein vollständiges XML-Dokumentergeben. Dabei müssen nur wenige „Wohlgeformtheits-Regeln“ beachtet werden.

<?xml version="1.0"?>

Page 9: XML - Warum: Das HTML-Dilemma HTML, SGML, XML - Wie: Syntax, Konzepte, Sprachelemente Basics Wohlgeformte XML-Dokumente (ohne DTD) Gültige XML-Dokumente.

Wohlgeformte Dokumente

• Jeder geöffnete Tag muß explizit geschlossen werden

• Tags ohne Inhalt (<IMG> in HTML) werden in XML als <IMG/> geschrieben oder geschlossen

• Attribut-Werte in doppelte Anführungszeichen, z. B.: <?xml version=”1.0”?>

• Das Markup muß, wie bei SGML, streng hierarchisch gegliedert sein

• Keine Markup-Zeichen (< oder &) im Text, alle Attribute – die für alle Elemente verwendet werden können – müssen Default-Typ CDATA sein.

• Am Anfang des Dokumentes sollte der Hinweis auf die XML-Version erfolgen: <?xml version=”1.0”?>

Page 10: XML - Warum: Das HTML-Dilemma HTML, SGML, XML - Wie: Syntax, Konzepte, Sprachelemente Basics Wohlgeformte XML-Dokumente (ohne DTD) Gültige XML-Dokumente.

Wohlgeformtes Dokument „Bestellung“

<?xml version="1.0" ?> <BESTELLUNG>

<AUFTRAGSKOPF> <NAME>Mustermann</NAME> <DATUM>02.10.1998</DATUM> <E-MAIL>[email protected]</E-MAIL>

</AUFTRAGSKOPF> <AUFTRAGSPOSITIONEN>

<POSITION> <BEZEICHNUNG>Festplatte</BEZEICHNUNG> <ARTIKELNUMMER>123456</ARTIKELNUMMER> <ANZAHL>5</ANZAHL>

</POSITION> <POSITION>

<BEZEICHNUNG>Monitor</BEZEICHNUNG> <ARTIKELNUMMER>9876</ARTIKELNUMMER> <ANZAHL>1</ANZAHL>

</POSITION> </AUFTRAGSPOSITIONEN>

</BESTELLUNG>

Page 11: XML - Warum: Das HTML-Dilemma HTML, SGML, XML - Wie: Syntax, Konzepte, Sprachelemente Basics Wohlgeformte XML-Dokumente (ohne DTD) Gültige XML-Dokumente.

XML Grundlagen

Sind die grundlegenden Anforderungen an die XML-

Syntax erfüllt, spricht man von wohlgeformten (well-formed)

Dokumenten

XML stellt die Regeln bereit, um Auszeichnungssprachen zu definieren. Es gibt zwei Arten, diese Regeln (also die Grammatik der konkreten

Auszeichnungssprache) zu spezifizieren:

Zu XML-Dokumenten kann eine explizite Definition der nötigen/

möglichen Tags und ihrer Struktur gehören. Hierfür verwendet XML eine

formale Grammatik, die Document Type Definition (DTD).

Page 12: XML - Warum: Das HTML-Dilemma HTML, SGML, XML - Wie: Syntax, Konzepte, Sprachelemente Basics Wohlgeformte XML-Dokumente (ohne DTD) Gültige XML-Dokumente.

Gültiges Dokument „Bestellung“

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE BESTELLUNG SYSTEM "BESTELLUNG.DTD"><BESTELLUNG>

<AUFTRAGSKOPF> <NAME>Mustermann</NAME> <DATUM>02.10.1998</DATUM> <E-MAIL>[email protected]</E-MAIL>

</AUFTRAGSKOPF> <AUFTRAGSPOSITIONEN>

<POSITION> <BEZEICHNUNG>Festplatte</BEZEICHNUNG> <ARTIKELNUMMER>123456</ARTIKELNUMMER> <ANZAHL>5</ANZAHL>

</POSITION> <POSITION>

<BEZEICHNUNG>Monitor</BEZEICHNUNG> <ARTIKELNUMMER>9876</ARTIKELNUMMER> <ANZAHL>1</ANZAHL>

</POSITION> </AUFTRAGSPOSITIONEN>

</BESTELLUNG>

Page 13: XML - Warum: Das HTML-Dilemma HTML, SGML, XML - Wie: Syntax, Konzepte, Sprachelemente Basics Wohlgeformte XML-Dokumente (ohne DTD) Gültige XML-Dokumente.

DTD zu gültigem Dokument „Bestellung“

<!ELEMENT BESTELLUNG (AUFTRAGSKOPF, AUFTRAGSPOSITIONEN)><!ELEMENT AUFTRAGSKOPF (NAME, DATUM, E-MAIL)><!ELEMENT NAME (#PCDATA)><!ELEMENT DATUM (#PCDATA)><!ELEMENT E-MAIL (#PCDATA)><!ELEMENT AUFTRAGSPOSITIONEN (POSITION)+><!ELEMENT POSITION (BEZEICHNUNG, ARTIKELNUMMER, ANZAHL)><!ELEMENT BEZEICHNUNG (#PCDATA)><!ELEMENT ARTIKELNUMMER (#PCDATA)><!ELEMENT ANZAHL (#PCDATA)>

BESTELLUNG.DTD

Page 14: XML - Warum: Das HTML-Dilemma HTML, SGML, XML - Wie: Syntax, Konzepte, Sprachelemente Basics Wohlgeformte XML-Dokumente (ohne DTD) Gültige XML-Dokumente.

Deklaration von Elementen in der DTD

Elemente können i. Allg. andere Elemente oder Zeichendaten enthalten

<!ELEMENT AUFTRAGSKOPF (NAME, DATUM, E-MAIL)><!ELEMENT NAME (#PCDATA)>

Elemente können auch gemischten Inhalt haben

<!ELEMENT a (#PCDATA | b | c)*>

Elemente können als sequentiell, optional etc. definiert werden

<!ELEMENT a (b, c?, (d|e)+, f*)<!ELEMENT e-mail (adresse, cc*, message, signature?)

Page 15: XML - Warum: Das HTML-Dilemma HTML, SGML, XML - Wie: Syntax, Konzepte, Sprachelemente Basics Wohlgeformte XML-Dokumente (ohne DTD) Gültige XML-Dokumente.

Attribute

Alle Elemente können Attribute haben:

<AUFTRAGSKOPF edifact=„UNH D0062.1“ lala=„123“>

Die Attribute müssen wie Elemente deklariert werden

<!ATTLIST AUFTRAGSKOPF edifact CDATA #REQUIRED>

Attribute können optional, obligatorisch oder „fixed“ sein

<!ATTLIST BEZEICHNUNG ean CDATA #REQUIREDabbildung CDATA #FIXED

„http://meine.bilder.de/hd.htm“status (angebot | normal) „normal“>

Page 16: XML - Warum: Das HTML-Dilemma HTML, SGML, XML - Wie: Syntax, Konzepte, Sprachelemente Basics Wohlgeformte XML-Dokumente (ohne DTD) Gültige XML-Dokumente.

Gültiges XML-Dokument

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE BESTELLUNG SYSTEM „bestellung2.dtd“> <BESTELLUNG>

<AUFTRAGSKOPF edifact=„UNH D0062.1“> <NAME>Mustermann</NAME> <DATUM>02.10.1998</DATUM> <E-MAIL>[email protected]</E-MAIL>

</AUFTRAGSKOPF> <AUFTRAGSPOSITIONEN>

<POSITION> <BEZEICHNUNG ean=„3034152204082“

abbildung=„http://meine.bilder.de/hd.htm“status=„angebot“>Festplatte</BEZEICHNUNG>

<ARTIKELNUMMER>123456</ARTIKELNUMMER> <ANZAHL>5</ANZAHL>

</POSITION> <POSITION>

.......</POSITION>

</AUFTRAGSPOSITIONEN> </BESTELLUNG>

Page 17: XML - Warum: Das HTML-Dilemma HTML, SGML, XML - Wie: Syntax, Konzepte, Sprachelemente Basics Wohlgeformte XML-Dokumente (ohne DTD) Gültige XML-Dokumente.

DTD

<!ELEMENT BESTELLUNG (AUFTRAGSKOPF, AUFTRAGSPOSITIONEN)><!ELEMENT AUFTRAGSKOPF (NAME, VORNAME*,DATUM, E-MAIL+)><!ATTLIST AUFTRAGSKOPF edifact CDATA #REQUIRED><!ELEMENT NAME (#PCDATA)><!ELEMENT VORNAME (#PCDATA)><!ELEMENT E-MAIL (#PCDATA)><!ELEMENT DATUM (#PCDATA)><!ELEMENT AUFTRAGSPOSITIONEN (POSITION)+><!ELEMENT POSITION (BEZEICHNUNG, ARTIKELNUMMER, ANZAHL)><!ELEMENT BEZEICHNUNG (#PCDATA)><!ATTLIST BEZEICHNUNG ean CDATA #REQUIRED

abbildung CDATA #FIXED „http://meine.bilder.de/hd.htm“status (angebot | normal) „normal“>

<!ELEMENT ARTIKELNUMMER (#PCDATA)><!ELEMENT ANZAHL (#PCDATA)>

Page 18: XML - Warum: Das HTML-Dilemma HTML, SGML, XML - Wie: Syntax, Konzepte, Sprachelemente Basics Wohlgeformte XML-Dokumente (ohne DTD) Gültige XML-Dokumente.

Gültige XML-Dokumente

• Ein XML-Dokument ist gültig (valid), wenn es wohlgeformt ist und darüber hinaus den Spezifikationen einer DTD entspricht.

• Ein wohlgeformtes XML-Dokument kann ein gültiges werden, sofern es die Regeln der DTD erfüllt.

• Funktional ist eine DTD dem Relationenschema einer Datenbank oder einer IDL analog

• Programme können mit einer DTD XML-Dokumente auf strukturelle Fehler überprüfen und neue „Instanzen“ dieses Dokument-Typs erstellen.

Page 19: XML - Warum: Das HTML-Dilemma HTML, SGML, XML - Wie: Syntax, Konzepte, Sprachelemente Basics Wohlgeformte XML-Dokumente (ohne DTD) Gültige XML-Dokumente.

Interne DTDs

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE BESTELLUNG [<!ELEMENT BESTELLUNG (AUFTRAGSKOPF, AUFTRAGSPOSITIONEN)><!ELEMENT AUFTRAGSKOPF (NAME, DATUM, E-MAIL)><!ELEMENT NAME (#PCDATA)><!ELEMENT DATUM (#PCDATA)><!ELEMENT E-MAIL (#PCDATA)><!ELEMENT AUFTRAGSPOSITIONEN (POSITION)+><!ELEMENT POSITION (BEZEICHNUNG, ARTIKELNUMMER,

ANZAHL)><!ELEMENT BEZEICHNUNG (#PCDATA)><!ELEMENT ARTIKELNUMMER (#PCDATA)><!ELEMENT ANZAHL (#PCDATA)>]><BESTELLUNG>

<AUFTRAGSKOPF> <NAME>Mustermann</NAME>

.............................</BESTELLUNG>

Die DTD kann auch im Dokument selber enthalten sein:

Page 20: XML - Warum: Das HTML-Dilemma HTML, SGML, XML - Wie: Syntax, Konzepte, Sprachelemente Basics Wohlgeformte XML-Dokumente (ohne DTD) Gültige XML-Dokumente.

Logische und physische Struktur von XML-Dokumenten

Die logische Struktur wird von der Anordnung der Tags im Dokument bestimmt.

Ein XML-Dokument kann unabhängig von der logischen Struktur in beliebig viele physische Einheiten zerlegt werden.

Hiermit besteht die Möglichkeit, im Netzwerk verteilte XML-Daten in einem XML-Dokument zusammenzutragen.

Sog. Entities erlauben hierbei das Verweisen auf externe Daten.

Referenzen zu Entities stehen zwischen „&“ und „;“

Page 21: XML - Warum: Das HTML-Dilemma HTML, SGML, XML - Wie: Syntax, Konzepte, Sprachelemente Basics Wohlgeformte XML-Dokumente (ohne DTD) Gültige XML-Dokumente.

Externe Entity-Referenzen

<!doctype BESTELLUNG

[ <!entity Kopf SYSTEM “Kopfteil.xml"> <!entity PositionenPC SYSTEM “Positionen/PC1.xml"> <!entity PositionenMonitor SYSTEM “http://monitore.de/m2.xml"> ]>

<BESTELLUNG><KUNDENDATEN>&Kopf;</KUNDENDATEN> <AUFTRAG> &PositionenPC;

&PositionenMonitor; </AUFTRAG>

</ BESTELLUNG >

XML-Dokumente können sich auf verschiedene Dateien verteilen:

Page 22: XML - Warum: Das HTML-Dilemma HTML, SGML, XML - Wie: Syntax, Konzepte, Sprachelemente Basics Wohlgeformte XML-Dokumente (ohne DTD) Gültige XML-Dokumente.

Präsentation von XML-Dokumenten

Die Darstellung eines XML-Dokumentes erfolgt mit Hilfe einer Formatvorlage, eines Style Sheet.

In diesem Style Sheet wird das Layout des Dokumentes festgelegt.

Auf Style Sheets wird durch entsprechende processing instructions verwiesen, z. B. : <?xml-stylesheet href="style1.css"?>

•Das W3C entwickelt mit (XSL) eigene Style Sheet Sprache für XML

•Daneben ist die Darstellung mit von HTML bekannten CSS möglich

Page 23: XML - Warum: Das HTML-Dilemma HTML, SGML, XML - Wie: Syntax, Konzepte, Sprachelemente Basics Wohlgeformte XML-Dokumente (ohne DTD) Gültige XML-Dokumente.

Warum 2 Style-Sheet-Sprachen?

1) CSS: Einfach; jedes Element bekommt eine Formatierungsanweisung

2) XSL: Mehr als CSS (Scripting, Transformation), aber komplizierter

BESTELLUNG {background-color:blue}

NAME, DATUM, E-MAIL {Display:Block; font-size:28pt; font-family:Times,serif}

E-MAIL {color:yellow}

<xsl:template match=”Artikel-Nr."> <P>

<xsl:process-children/> </P>

</xsl:template>

Page 24: XML - Warum: Das HTML-Dilemma HTML, SGML, XML - Wie: Syntax, Konzepte, Sprachelemente Basics Wohlgeformte XML-Dokumente (ohne DTD) Gültige XML-Dokumente.

XML mit CSS

<?xml version="1.0" ?><?xml-stylesheet type="text/css" href="style1.css"?> <BESTELLUNG> <AUFTRAGSKOPF>

<NAME>Mustermann</NAME> ..............

</BESTELLUNG>

BESTELLUNG { Display: Block; background-color: blue; float: left; padding: 15pt}

NAME, DATUM, E-MAIL {Display: Block; font-size: 28pt; font-family: Times, serif}

E-MAIL {color:yellow}AUFTRAGSPOSITIONEN {Display: Block;

background-color: green; float: left; padding: 12pt}BEZEICHNUNG {font-size: 28pt; font-family: Times,

sans-serif}

+ =

Page 25: XML - Warum: Das HTML-Dilemma HTML, SGML, XML - Wie: Syntax, Konzepte, Sprachelemente Basics Wohlgeformte XML-Dokumente (ohne DTD) Gültige XML-Dokumente.

XML

Neben den eigentlichen Sprachspezifikationen von XML (seit 10.02.1998 eine Recommendation), gibt es weitere Initiativen des W3C aus dem XML-Umfeld. Die wichtigsten sind:

XLink (Working Draft, 26.07.1999)XPointer (Working Draft, 09.07.1999)XML Namespaces (Recommendation, 14.01.1999)XSL (Working Draft 21.04.1999)DOM (Recommendation, 01.10.1998)RDF (Recommendation, 24.02.1999)XML Schemas (Working Drafts, 06.05.1999) (XML-Data, DCD, SOX, DDML)

Page 26: XML - Warum: Das HTML-Dilemma HTML, SGML, XML - Wie: Syntax, Konzepte, Sprachelemente Basics Wohlgeformte XML-Dokumente (ohne DTD) Gültige XML-Dokumente.

Linking in XML

XML unterstützt ein wesentlich weitergehendes Linking, als es von HTML bekannt ist

XLink bietet uni-, bi- und multidirektionale Links

XPointer bietet Mechanismen, um (auch ohne Identifier) auf Fragmente von Zieldokumenten zu verweisen: „book.html#section2“

Einfacher Link Erweiterter Link(XLink)

Link auf Element innerhalb einer Instanz (XPointer)