620 likes | 765 Views
XML. eXtensible Markup Language Metasprache zur Definition von Markupsprachen Beschreibt die Struktur des Dokuments Beschreibt die Semantik der Elemente eines Dokuments Auszeichnungen („Markups“) in Form von Tags. XML, HTML und SGML.
E N D
XML • eXtensible Markup Language • Metasprache zur Definition von Markupsprachen • Beschreibt die Struktur des Dokuments • Beschreibt die Semantik der Elemente eines Dokuments • Auszeichnungen („Markups“) in Form von Tags
XML, HTML und SGML • 60er Jahre: IBM Standards, Bemühungen um standardisierte Beschreibungssprache • 1969: GML von IBM entwickelt • 1986: SGML wird als ISO-Standard 8879 eingeführt mächtige und komplexe Beschreibungssprache • 1989: HTML von Tim Bernes-Lee entwickelt • 90er Jahre: einfache und schnell erlernbare Beschreibungssprache für Websites HTML • 1994: HTML (2.0) als Standard von W3C festgelegt • 1998: XML (1.0) von W3C eingeführt vereinfachtes SGML (20% der Komplexität, 80% der Funktionalität)
Metasprachen SGML XML [Metasprachen] [Markup Sprachen] [Dokumente] MathML, XHTML, HTML, ... x ƒ(x) = ∏ (2n+1) n=1
Markup Language Beschreibt Layout <h1> Video </h1> <h2> The Great Escape </h2> <table border=“1“><tr> <td>Director</td> <td>John Sturges</td></tr><tr> <td>Hauptdarsteller</td> <td>Steve McQueen</td></tr><tr> <td> ... </td> </tr> </table> Metasprache für Markup Language Beschreibt Inhalt und Struktur <video> <title> The Great Escape </title><cast> <director>John Sturges</director> <actor>Steve McQueen </actor></cast><text> A classic war movie from 1956 </text> </video> HTML vs XML
Motivation von XML • Erstellen eigener Dokumenttypen • Keine beschränkte Anzahl von Tags • Breites Spektrum von Anwendungsbereichen • XML-verarbeitende Anwendungen können einfach entwickelt werden • Trennung von Layout und Inhalt • XML-Dokument: Fokus liegt in der Struktur des Dokuments und in der Semantik der Elemente • XML soll sich im Internet auf einfache Weise nutzen lassen • XML-Dokumente sollen auch für Menschen lesbar und verständlich sein
Überblick • XML Dokumentlogische und physische Strukturenthält Dekarationen, Elemente, Kommentare, ... • DTD (Document Type Definition)logische Struktur des DokumentsDefinition der Elemente, Attribute, ... eines XML-Dokuments • Style SheetsVisualisierung des XML-Dokuments, Formatieren von Markups CSS, DSSSL, XSL
XML – DokumentElemente Elemente sind die „Bausteine“ des XML-Dokuments. Syntax: Starttag Elementinhalt Endtag z.B.: <actor>Steve McQueen</actor> • Elemente mit gleichem Start- und Endtag gehören zu einem Elementtyp • Dokumente welche dieselben Elementtypen enthalten, gehören zum selben DokumenttypLeere Elemente • <actor></actor> • <actor/>
XML-DokumentVerschachtelung von Elementen Ein Element kann andere Elemente enthalten: <video> <title> The Great Escape </title> <cast> <director> John Sturges </director> <actor>Steve McQueen </actor> <actor/> <!-- wer spielt den amerikanischen Offizier ???--> </cast> <text> A classic war movie from 1956 </text> <screenshot/> </video>
XML-DokumentKommentare • Syntax: • <!-- irgendein Kommentar--> • Kommentare... • können sich über mehrere Zeilen erstrecken • können sich zwischen Start- und Endtags von Elementen befinden z.B.: <actor>Steve McQueen <!--richtiger Kommentar--> </actor> • dürfen nicht innerhalb eines Tags stehen z.B.: <actor <!--völlig falsch--> > Steve McQueen </actor> • dürfen keine „--“ enthalten
XML-DokumentAttribute • Attribute sind zusätzliche Informationen zu Elementen: • <actor geschlecht=m> Steve McQueen </actor><screenshot imgage="picture.jpg" heigth="12" width="150"/> • Attributname Attributwert • Besonderheiten bei Attributen: • Die Reihenfolge der Attribute ist unbestimmt • In einem Element darf ein Attributname nicht mehrmals vorkommen • Ein Attributwert darf keinen Verweis auf ein externes Entity enthalten • In einem Attributwert darf kein „<“ vorkommen
XML-DokumentStruktur des XML-Dokuments Prolog Enthält Informationen zur Verarbeitung des Dokuments: - Dekaration der XML Version - Dekaration DTD Wurzelelement Jedes XML-Dokument enthält genau ein Wurzelelement Ein Wurzelelement kann beliebig viele Elemente enthalten
XML-DokumentEigenschaften • Wohlgeformtheit • XML-Dokument enthält ein oder mehrere Elemente • Genau ein Element ist Wurzelelement • Korrekte Verschachtelung der TagsKorrekte Verschachtelung: <b><c> xyz </c> abc </b> Falsche Verschachtelung: <b><c> xyz </b> abc </c> • Jedes analysierte Entity ist wiederum wohlgeformt • .... • Gültigkeit • XML-Dokument ist wohlgeformt • XML-Dokument entspricht den Spezifikationen einer DTD
XML-DokumentBeispiel <?xml version="1.0"?><!DOCTYPE buch SYSTEM „bibliothek.dtd"> <bibliothek> <buch genre="Fantasy" isbn="3-608-95855-X"> <titel>Der Herr der Ringe</titel> <autor geschlecht="m">J.R.R. Tolkien</autor> <inhalt>viel Text</inhalt> </buch> <buch genre="Sachbuch" isbn="3-8273-1330-9"> <titel>XML in der Praxis</titel> <autor geschlecht="m">Behme, Mintert</autor> <inhalt>Inhalt</inhalt> </buch></bibliothek>
dokument bibliothek genre buch buch autor inhalt titel genre text text text text text text fantasy sachbuch geschlecht m JRR Tolkien Herr der Ringe Viel Text XML-DokumentBaumstruktur
Sichten auf XML • Dokumentensicht • XML-Dokumente sind kommentierte Textdateien • XMath, CML,... • Datensicht • XML als Speicherformat • Repräsentationsform für komplexe Datentypen • XQL (XML Query Language) • Nachrichtensicht • XML als Nachrichtenprotokoll • XML-Dokument als flüchtige Nachricht, nicht als dauerhafte Ressource • SOAP
Überblick • XML Dokumentlogische und physische Strukturenthält Dekarationen, Elemente, Kommentare, ... • DTD (Document Type Definition)logische Struktur des DokumentsDefinition der Elemente, Attribute, ... eines XML-Dokuments • Style SheetsVisualisierung des XML-Dokuments, Formatieren von Markups CSS, DSSSL, XSL
DTD • welche Elementtypen es gibt • welchen Inhalt sie haben dürfen • welche Attribute erlaubt sind • welche Werte sie annehmen dürfen sie enthält die Informationen darüber
DTDDeklaration Interne Deklaration <!DOCTYPE Name [ Definitionen ]> Beispiel <?xml version=„1.0“ encoding=„ISO-8859-1“?> <!DOCTYPE Buch[ <!ELEMENT Buch (Titel, Autor+)> <!ELEMENT Titel (#PCDATA)> <!ELEMENT Autor (#PCDATA)> ]>
DTDDeklaration Externe Deklaration <!DOCTYPE Name SYSTEM “Pfadangabe“> Beispiel: <?xml version=„1.0“ encoding=„ISO-8859-1“?> <!DOCTYPE Buch SYSTEM “aufbau.dtd“> <Buch> ... </Buch>
DTDDeklaration • intern und externe DTD-Untermenge • <!DOCTYPE Name SYSTEM “Pfadangabe“[ • interne Definitionen • ]> • Beispiel • <?xml version=„1.0“ encoding=„ISO-8859-1“?> • <!DOCTYPE Buch SYSTEM “aufbau.dtd“ [ • <!ELEMENT Anhang (#PCDATA)> • ]>
DTDElementdefinition <!ELEMENT Elementname (Inhaltsmodell)> • Elementinhalt <!ELEMENT Buch (Kapitel)> • Sequenz <!ELEMENT Kapitel (Einleitung, Inhalt)> • Alternative <!ELEMENT Inhalt (Text | Grafik)>
DTDElementdefinition Schlüsselwörter • Leeres Element <!ELEMENT Autor EMPTY> • Element mit beliebigem Inhalt <!ELEMENT Kommentar ANY> #PCDATA-Element<!ELEMENT Text (#PCDATA)>
DTDBeispiel zum Inhaltsmodell <?xml version=„1.0“ encoding=„ISO-8859-1“?> <!DOCTYPE Buch[ <!ELEMENT Buch (Titel, Autor, (Kategorie | Preis)> <!ELEMENT Titel (#PCDATA)> <!ELEMENT Autor (#PCDATA)> <!ELEMENT Kategorie (#PCDATA)> <!ELEMENT Preis (#PCDATA)> ]> <Buch> <Titel> Das große Buch XML</Titel> <Autor> Elke Niedermaier</Autor> <Kategorie>Sachbuch</Kategorie><7Buch> <Buch> <Titel> Das große Buch XML</Titel> <Autor> Elke Niedermaier</Autor> <Preis>251</Preis><7Buch>
DTDElementdefinition • Optional (?) <!ELEMENT Anhang (Referenz?)> • Optional und mehrmals (*) <!ELEMENT Anhang (Referenz*)> • Einmal und öfter (+) <!ELEMENT Anhang (Kommentar, Referenz+) Kardinalitäten
Beispiel Kardinalitäten <?xml version=„1.0“ encoding=„ISO-8859-1“?> <!DOCTYPE Buch[ <!ELEMENT Buch (Titel, Autor+, Kategorie?)> <!ELEMENT Titel (#PCDATA)> <!ELEMENT Autor (#PCDATA)> <!ELEMENT Kategorie (#PCDATA)> ]> <Buch> <Titel> Das große Buch XML</Titel> <Autor> Elke Niedermaier</Autor> <Autor> Michael Niedermair</Autor> <Kategorie>Sachbuch</Kategorie> </Buch>
DTDAttributdefinition • Verpflichtendes Attribut: #REQUIRED • Implizites Attribut: #IMPLIED • Fixer Attributwert: #FIXED “wert“ • Defaultwert setzen: “wert“ <!ATTLIST Elementname Attributname Typ Einschränkung Attributname Typ Einschränkung...> Einschränkungen:
DTDAttributdefinition • Zeichenkettentyp (CDATA) <!ATTLIST Autor name CDATA #REQUIRED> • Aufzählungstyp <!ATTLIST Farbe (weiss | blau | grün) “weiss“> • Token-Attribute ID, IDREF, NMTOKEN, NMTOKENS, ENTITY, ENTITIES, NOTATION
DTDAttributdefinition - Beispiel <!ELEMENT Artikel (Bezeichnung, Bild)> <!ELEMENT Bezeichnung (#PCDATA)><!ATTLIST id ID #REQUIRED><!ELEMENT Bild EMPTY><!ATTLIST scr CDATA #REQUIRED höhe CDATA #IMPLIED breite CDATA #IMPLIED ><?XML version=“1.0“ encoding=“ISO-8859-1“?><DOCTYPE Firma SYSTEM “artikel.dtd“><Artikel> <Bezeichnung id=5>CD-Rohling</Bezeichnung> <Bild scr=“rohling.jpg“></Bild><Artikel>
DTDEntities • Interne allgemeine Entities • Externe allgemeine Entities • Interne Parameter-Entities • Externe Parameter-Entities Arten von Entities
DTDEntities • Allgemeine Entities:fügen Daten in den Dokumenteninhalt ein • Parameter Entities:fügen Deklarationen in die DTD des Dokuments ein Unterscheidung
DTDEntities • Teile lassen sich extern abspeichern • Übersichtlichere Gestaltung • Verwendung der Teile in verschiedenen Dokumenten Vorteile von Entities
DTDEntities Allgemeine Entities • Interne allgemeine Entities: • Verwendet man für Abkürzungen häufig verwendeter oder schwer einzubindender Texte. • Deklaration: <!ENTITY name “ersetzender Text“> • Aufruf im Text: &name;
DTDEntities Allgemeine Entities • Externe allgemeine Entities: • Zum Einfügen von unabhängigen Teilen in das XML-Dokument. • Deklaration: <!ENTITY name SYSTEM “URI“> • Aufruf im Text: &name;
DTDEntities Parameter-Entities • Interne Parameter-Entities: • Abkürzungen für häufig verwendete Definitionen. • Deklaration: <!ENTITY % name “ersetzender Text“> • Einfügen: %name;
DTDEntities Parameter-Entities • Externe Parameter-Entities: • Geeignet um umfangreiche DTDs in Module zu zerlegen. Das erhöht die Lesbarkeit und Wartbarkeit. • Deklaration: <!ENTITY % name SYSTEM “URI“> • Einfügen: %name;
DTDEntities - Beispiel <!ENTITY % Struktur “(Abteilungsleiter, Stellvertreter+, Mitarbeiter)“><!ELEMENT Firma (Buchhaltung, Lager*, Vertrieb?)> <!ELEMENT Buchhaltung %Struktur><!ELEMENT Lager %Struktur><!ELEMENT Vertrieb %Struktur><!ELEMENT Abteilungsleiter (#PCDATA)><!ELEMENT Stellvertreter (#PCDATA)><!ELEMENT Mitarbeiter (#PCDATA)><?XML version=“1.0“ encoding=“ISO-8859-1“?><DOCTYPE Firma SYSTEM “firma.dtd“><Firma> <Buchhaltung> <Abteilungsleiter> Sven Regener </Abteilungsleiter> <Stellvertreter> Martin Zehentner </Stellvertreter> <Mitarbeiter> die Abteilung hat 5 Mitarbeiter</Mitarbeiter> </Buchhaltung><Firma>
Beispiel: DTD und DokumentDTD Dokument <!ELEMENT bibliothek (buch)+><!ELEMENT buch (titel, autor, inhalt)><!ATTLIST buch genre (Sachbuch | Roman | Fantasy) "Sachbuch" verlag CDATA #FIXED "meinVerlag" isbn ID #REQUIRED neuauflageVon IDREF "null"><!ELEMENT titel (#PCDATA)><!ELEMENT autor (#PCDATA)><!ATTLIST autor geschlecht (m | w) #REQUIRED><!ELEMENT inhalt (#PCDATA)> <?xml version="1.0"?><!DOCTYPE buch SYSTEM „bibliothek.dtd"> <bibliothek> <buch genre="Fantasy" isbn="3-608-95855-X"> <titel>Der Herr der Ringe</titel> <autor geschlecht="m">J.R.R. Tolkien</autor> <inhalt>viel Text</inhalt> </buch> <buch genre="Sachbuch" isbn="3-8273-1330-9"> <titel>XML in der Praxis</titel> <autor geschlecht="m">Behme, Mintert</autor> <inhalt>Inhalt</inhalt> </buch></bibliothek>
Überblick • XML Dokumentlogische und physische Strukturenthält Dekarationen, Elemente, Kommentare, ... • DTD (Document Type Definition)logische Struktur des DokumentsDefinition der Elemente, Attribute, ... eines XML-Dokuments • Style SheetsVisualisierung des XML-Dokuments, Formatieren von Markups CSS, DSSSL, XSL
XML und Style-Sheets Erklärung, CSS, DSSSL, XSLXML und XSL in der Praxis
Style-Sheet – Was? • Darstellungsbeschreibung • eine Style für beliebig viele Dokumente • für ein Dokument beliebig viele Styles • Trennung von semantischer und physischer Auszeichnung • CSS, DSSSL, XSL
XML-Dok Style-Sheet versch. Styles für 1 Dok. *.html Style-Sheet *.pdf Style-Sheet *.wml Style-Sheet *.rtf
XML-Dok Style-Sheet einheitlicher Style XML-Dok XML-Dok XML-Dok
CSS, DSSSL und XSL DSSSL XSL CSS
CSS unter XML • Bei Einführung von XML • Kompatibel mit XSL • Eingeschränkte Möglichkeiten • Kann verschachtelt werden • CSS2 auf XML abgestimmt
CSS – Deklaration 1 CSS innerhalb einer HTML Datei <html> <head> <title>Titel der Datei</title> <style type="text/css"> <!-- /* ... Style-Sheet-Angaben ... */ //--> </style> </head> <body></body> </html>
CSS – Deklaration 2 • CSS in einer separaten Datei<html><head><title>Titel der Datei</title><link rel=stylesheet type="text/css" href="formate.css"></head><body></body></html>
Bsp. Schriftformatierung <style type="text/css">h1,h2,h3 { font-familiy:Avantgarde,Arial }</style> <h1>Überschrift 1</h1><br> <h2>Überschrift 2</h2><br> <h3>Überschrift 3</h3><br> Überschrift 1 Überschrift 2 Überschrift 3
Formatierung von Links 1 a.menu { font-family: "Times New Roman“}a.menu:link { color: #000000} a.menu:visited { color: #FF3333} a.menu:active { color: #3333FF} a.menu:hover { color: #009999}
Formatierung von Links 2 • Zuweisung eines Styles<a href=„home.htm“ class=„menu“>home</a>Ausgabe im Browser:home Standard Link homebesuchter Linkhomeaktiver LinkhomeMouse-over Link
DSSSL • Seit 1996 • DSSSL ist eine echte Programmiersprache • Zu kompliziert • XSL basiert auf einer Untermenge des DSSSL Standards, aber geringere Komplexität