Kodierung strukturierter Dokumente im Web — XML — Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 1 Aufgaben Zum Modell der strukturierten Dokumente o Aufgabe 1: Definieren Sie das Modell der strukturierten Dokumente. o Aufgabe 2: Beschreiben Sie strukturierte Dokumente in Baumterminologie. o Aufgabe 3: Wozu wurde das Modell der strukturierten Dokumente eingeführt? o Aufgabe 4: Wie werden strukturierte Dokumente in XML kodiert? Erläutern Sie dazu auch den Begriff „eingebettetes Markup“. o Aufgabe 5: Nennen Sie mindestens drei Vorteile des Modells der strukturierten Dokumente. Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 2 Lösung zu Aufgabe 1 o o In strukturierten Dokumenten werden Inhalt und logische Struktur explizit repräsentiert, nicht jedoch Vorgaben zum Präsentationsformat. Die Vorgaben zum Format und eventuelle weitere Bearbeitungsvorschriften werden separat vom Dokument gehalten und sind somit austauschbar und mehrfach anwendbar. Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 3 Lösung zu Aufgabe 2 o o o Dokument als Baum von Knoten [../../xmlSamples/compBookModel.pdf] Knoten o benannt, optional mit Attributierung [Elementknoten, für Strukturelemente] o anonym, mit Stringwert (nur bei Blättern) [Textknoten, für Inhaltstext] Attributierung: Menge von Schlüssel-Wert-Paaren o Schlüssel sind Namen o Werte haben Typ Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 4 Lösung zu Aufgabe 3 o o Das Modell der strukturierten Dokumente wurde ursprünglich im Verlagswesen und in der technischen Dokumentation eingeführt, um Erstellung und Verwaltung von Dokumenten von ihrer Präsentation zu trennen. Es hat sich dann auch pragmatisch als geeignet herausgestellt, um die Anforderungen moderner Dokumente zu erfüllen, nämlich sie in sinnvoller semantischer Tiefe automatisch interpretieren zu können. Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 5 Lösung zu Aufgabe 4 o o o Kodierung von strukturierten Dokumenten als Textstring, bestehend aus dem Inhaltstext und eingebettetem Markup für Strukturelemente Syntaktische Trennung zwischen Inhaltstext und Markup An Anfang und Ende des Ausdehnungsbereich eines Strukturelements Markierung durch Tags Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 6 Lösung zu Aufgabe 5 o o o o In strukturierten Dokumente ist semantische Information explizit kodiert; verarbeitende Programme können diese semantische Information ausnutzen. Strukturierte Dokumente können durch Stylesheets einheitlich formatiert werden (innerhalb von Dokumenten, über Dokumentgrenzen hinweg). Strukturierte Dokumente können durch Kombination mit geeigneten Stylesheets über unterschiedliche Kanäle angeboten werden. Strukturierte Dokumente unterstützen Funktionen der Dokumentenverwaltung (Nummerierungen, Verzeichnisse) Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 7 Wiederholung … Dokumentenmodell: Modell der strukturierten Dokumente o explizite Repräsentation von textuellem Inhalt und (logischer) Struktur (Annotation von Textbereichen mit semantisch bedeutsamer Metainformation) Z Dokumente als computerbearbeitbare Daten Inhalt und Struktur für sich alleine von intelligenten Anwendungen nutzbar Kombinierbarkeit mit separaten Bearbeitungsvorschriften o separate, auswechselbare Formatvorlage (Stylesheet) Format aus beiden zusammen berechenbar Z multi-channel, cross-media Publishing (eine Quelle, viele Präsentationen) Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 8 Drehscheibencharakter strukturierter Dokumente .xml RDMS .gif .doc str.Dok .html .rtf .html .pdf .doc .xml Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML .wml 30.Oktober / 6.November 2006 ― 9 … Wiederholung … o o Grenzen: Genre, Diskurs (http://jodi.tamu.edu/Articles/v03/i01/Hillesund) Konkretisierung: Inhalt und Struktur im Modell der strukturierten Dokumente o hierarchische Struktur (Baumstruktur) von Elementen (mit Attributen) über Inhaltstext o linearisierte Repräsentation als Zeichenstrom (eingebettetes Markup): Einbettung von Anfangs- und Endemarkierungen für Elementgrenzen (Markup) in Form von öffnenden und schließendenTags in den Inhaltstext (Character data) Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 10 … Wiederholung o o o Anforderung: anwendungsspezifische Markup-Sprachen (Namen von Elementen und Attributen, Typen) Anforderung: Verbindlichkeit des Vokabulars durch formale Definition von Markup-Sprachen über Strukturvorgaben, Validierbarkeit von Dokumenten. Anders ausgedrückt: Modellierung von Klassen von Dokumenten Methode (SGML/XML): Dokumentengrammatik oder Document Type Definition (DTD), legt Vokabular und mögliche Reihenfolgen und Schachtelungen von Elementen fest Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 11 XML (Extensible Markup Language) am Beispiel o o o o o Dokumentenformat des W3C für Webdokumente Markupsprache: Markiert Textbereiche an Anfang und Ende mit Tags (attributierte Elemente): ../../compProp/Konzept.xml, ../../compProp Tag-Syntax wie bei HTML: <eName aName="…">…</eName> Freies Vokabular für Elementnamen und Attributnamen, formal definierbar in Document Type Definition (DTD): ../.. /compProp/Konzept.dtd Formatierung von XML-Dokumenten: ../../compProp/KonzeptXML.css Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 12 Erster Steckbrief für XML … o o o HTML mit freien Elementen, Attributen, Referenzen Z XML (ohne DTDs) XML als Syntax für strukturierte Dokumente und Markupsprachen (Sprache für strukturierte Dokumente) Standardisiertes allgemeines Format für moderne Dokumente (Kodierung von Text und semantischen Rollen) XML-Anwendung, Markupsprache: spezifisches Vokabular/Format für spezifische Anwendungen Beispiele: XHTML, MathML, CML, Persistente Objektrepräsentation (Java), B2B (EDI), ECommerce (OTP), Topic Map Markup Language, XSL-FO, Konfigurationen, Metadaten Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 13 … Erster Steckbrief für XML o o o Durch Strukturvorgabe (DTD) Markupsprache formal definierbar und verifizierbar: Standardisiertes Format für Definition spezifischer Formate (Metasprache für Markupsprachen) Wohlgeformtheit und Validität Portabilität Satellitenstandards: Dokumentenmodell, Strukturvorgaben, Stylesheets, Hypertextlinks, Transformation, Abfragesprachen, Formularbeschreibung, APIs für Programmiersprachen, Data Binding Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 14 XML als Erbe von SGML o SGML = Standard Generalized Markup Language o Beide: Sprachen zur syntaktischen Repräsentation von strukturierten Dokumenten und ihren Strukturvorgaben Beide: Metasprachen zur Definition von Markup-Sprachen SGML: Im Verlagswesen und in der Dokumentation großer Systeme von Bedeutung, Praxis-Einsatz und SoftwareEntwicklung schlecht XML = Extensible Markup Language o o o ISO-Standard 8879 seit 1986 W3C-Standard Version 1.0 vom 10.2.1998 (inzwischen dritte Auflage) W3C-Standard Version 1.1 vom 4.2.2004 Vereinfachte Fassung von SGML für das Web Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 15 XML-Syntax: Dokument (Instanz) … o o o o o XML-Deklaration <?xml version="1.0" encoding="" standalone=""?> Element mit Attributen <eName aName1="w1" … aNamex="wx"> Element-Inhalt </eName> <eName aName1='w1' … aNamex='wx'/> Einschränkungen zu Alphabet (alphanumerisch plus '-', '_', '.', ':') und Syntax für Namen (Elemente, Attribute etc.) Ausschluß bestimmter Funktionszeichen für Attributwerte und textuellen Inhalt Mixed Content (erzählerische Dokumente, Daten) Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 16 … XML-Syntax: Dokument (Instanz) o Zeichen: Attributwerte und textueller Inhalt o Direkte Code-Position o o o Character Reference &#Dezimalzahl; oder &#xHexzahl; o Vordefinierte Entity References für Funktionszeichen: &lt;, &gt;, &amp;, &apos;, &quot; o Deklarierte Entity References CDATA Section <![CDATA[InhaltOhne']]>']]> Markup im Innern einer CDATA Section wird nicht erkannt; nicht schachtelungsfähig White Space Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 17 XML-Syntax: DTD … o o o Deklaration der DTD: Internes und externes Subset <!DOCTYPE Name SYSTEM "URI"> <!DOCTYPE Name [Deklarationen]> <!DOCTYPE Name SYSTEM "URI" [Deklarationen]> Deklaration für Element: <!ELEMENT Name ContentModel> Content Model: Element Content EMPTY, ANY Ausdruck über Elementnamen mit Operatoren ,|?+*, Content Model: Mixed Content Ausdruck (#PCDATA), Ausdruck (#PCDATA | N1 | ... | Nx)* Eindeutigkeit von Inhaltsmodellen (Forschungsarbeiten) Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 18 … XML-Syntax: DTD o o o o o Deklaration für Attributliste <!ATTLIST Name N1 W1 D1 … Nx Wx Dx> (Elementname, Attributname, Wertebereich, Defaultregel) Wertebereiche CDATA, ID, IDREF, (v1, … ,vn), ENTITY Defaultregelungen #REQUIRED, #IMPLIED, v, #FIXED v Einsatz von Defaultwerten durch Parser Kommentar (nicht schachtelungsfähig), auch in Instanz <!--KommentartextOhne'--'--> Prozessor-Anweisung, auch in Instanz <?Name≠”XML” AnweisungOhne'?>'?> Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 19 XML und XML-Modelle am Beispiel … o o Formatiertes Dokument [../../xmlSamples/compBook.pdf] in XML-Kodierung [../../xmlSamples/compBook.xml] (semantisch reich, normalisiert, bearbeitbar) und als Baummodell [../../xmlSamples/compBookModel.pdf] Allgemein: Baummodell für strukturierte Dokumente o o Baum von Knoten o benannt, optional mit Attributierung [Elementknoten, für Strukturelemente] o anonym, mit Stringwert (nur bei Blättern) [Textknoten, für Inhaltstext] Attributierung: Menge von Schlüssel-Wert-Paaren o Schlüssel sind Namen o Werte haben Typ Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 20 … XML und XML-Modelle am Beispiel … o Visualisierung des Baummodells für Dokumente o Knoten als Ellipsen, Eltern-Kind-Beziehung als Linien (von oben nach unten oder von links nach rechts) o Namen für Elemente im Knoten o anonyme Knoten mit Schlüsselwort #Text im Knoten, Text in Anführungszeichen am Knoten o Attribute als Tabelle am Knoten (1. Spalte: Attributname, 2. Spalte: Attributwert) Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 21 … XML und XML-Modelle am Beispiel o o XML-DTD [../../xmlSamples/book.dtd] als Baummodell [../../xmlSamples/bookModel.pdf] Verallgemeinerung für Strukturvorgaben (DTDs) o o o o Namen für Elemente bzw. Schlüsselwort #Text im Knoten Verbindungen zwischen Element und den Bestandteilen seines Inhaltsmodells am Platz, aber ohne Wiederholungen [Spezialfall Russian Doll, wenn jedes Element nur einmal referenziert wird; insbesondere dann keine Rekursion] unterschiedliche Verbindungen je nach Operator Attribute als Tabelle am Knoten (1. Spalte: Attributname, 2. Spalte: Attributtyp) Fragezeichen an Verbindung zwischen Knoten und Attribut für optionale Attribute Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 22 Wohlgeformtheit und Validität o o XML-Dokumente müssen wohlgeformt sein (Überprüfung durch alle Parser, auch nicht-validierende) o DTD optional o korrekte Klammerung o keine mehrfachen Attribute in Elementen Zusätzlich: Validität (Überprüfung durch validierende Parser) o Referenzen definiert (nächste Stunde: Entities) o Instanz erfüllt Deklarationen von Elementen und Attributen (Typen, Defaults) o validierender Parser setzt Defaultwerte ein und erkennt Attributtypen wie ID und ENTITY Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 23 XML-Konzept: Entities … Doppelfunktion DTDs o Strukturvorgabe o o o o Festlegung eines Vokabulars von Element- und Attributnamen und ihren Verwendungsweisen Regeln für Aufbau der logischen Struktur von XML-Dokumenten mit Elementen und Attributen (Instanzen) Verbindlichkeit und Überprüfbarkeit Festlegung der Komponenten eines XML-Dokuments, aus denen es physisch zusammengesetzt ist (physische Struktur) Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 24 … XML-Konzept: Entities … o o o o o o XML-Dokumente sind physisch in Entities organisiert (Entity als Speichereinheit) Gesamtes Dokument bildet eine Entity inkludiert untergeordnete Entities durch Entity-Referenz Beispiele für Entity-Referenzen: &auml; %KonzeptLog; Entities müssen in der DTD definiert werden: der Name wird an seinen Ersetzungstext gebunden Expansion: Auflösen von Entity-Referenzen Anders als bei HTML nur sehr wenige vordefinierte Entities (für Funktionssymbole): &amp; &lt; &gt; &quot; &apos; Entities als Makro-Mechanismus Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 25 … XML-Konzept: Entities … o Modularisierung o Anpassbarkeit o Wiederverwendbarkeit o Plattformunabhängigkeit o o o Aufteilen großer Dokumente; z.B. Buch in Kapitel Abgestufter Gültigkeitsbereich (DTDs): intern, firmenweit, global explizite Benennung, Redundanzvermeidung (z.B. HTML) o o Überschreiben von Definitionen in DTDs DokBook: DTD von OASIS für technische Dokumentation o o Abkürzungen (Sonderzeichen, Textbausteine) Teildokumente (Logos, DTDs) o Kapselung des Speicherorts für Ersetzungstext an Definitionsort Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 26 … XML-Konzept: Entities o o Ersetzungstext einer Entity kann intern (innerhalb der Deklaration der Entity) oder extern definiert werden; bei einer externen Definition wird eine Ressource (beispielsweise ein Dateiname) angegeben, die den Ersetzungstext enthält (Speicherort für Speichereinheit) Orthogonal zwei Typen von Entities o General Entity: Expansion in Instanz o Parameter Entity: Expansion in DTD Vorteil: Getrennte Namensräume, Verbergen des Namensraums für DTD-interne Entitäten (Transparenz) Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 27 XML-Syntax: Entities … o Generelle Entities: in DTD deklariert, in Instanz verwendet Beispiele für Deklaration interner genereller Entity <!ENTITY AHK 'Alles für Hund und Katze'> <!ENTITY AHK 'Alles für Hund &amp; Katze'> Beispiele für Deklaration externer genereller Entity <!ENTITY AHK SYSTEM 'ahk.ent'> <!ENTITY AHK PUBLIC '-//TSV//Firma AHK//DE' 'ahk.ent'> Verwendung in Dokumenteninstanz (Text und Attributwerte) &AHK; Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 28 … XML-Syntax: Entities o Parameter-Entities: in DTD deklariert, in DTD verwendet Beispiele für Deklaration interner Parameter-Entity <!ENTITY % text ´(#PCDATA | emph)*´> Beispiele für Deklaration externer Parameter-Entity <!ENTITY % text SYSTEM 'text.dtd'> <!ENTITY % text PUBLIC ´-//Springer//Text DTD//DE´ 'text.dtd'> Verwendung in DTD <!ELEMENT para %text;> <!ELEMENT quote %text;> Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 29 Customizing DTDs o o o DocBook DTD für technische Dokumentation (OASIS) Ziel: Erweiterung, Wiederverwendbarkeit, Anpassbarkeit Mittel: Extensive Verwendung von Parameter-Entitäten o Methoden in DocBook o o Entitäten in einer DTD mehrfach definierbar erste Definition “zählt” (überschreibt spätere) o o Aufteilung der DTD in Module, die nach Bedarf genutzt werden Typisierung der Elemente: Metadaten, Gliederungselemente, Informationsbausteine, Informationsschnipsel, dann Klassenbildung (Klasse aller Listenarten etc.) über Parameter-Entitäten mit leeren “Aufhängern” für lokale Erweiterungen kleinere Module und einzelne Elemente mit Möglichkeit zur Inklusion/Exklusion (marked section) o Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 30 XML-Syntax: Entities für Fremddaten … Fremddaten über Attribute vom Typ ENTITY assoziieren o Assoziation durch Attribut vom Typ ENTITY mit dem Namen der zu referenzierenden Entity als Wert (Indirektion über dokumenteninternen Namen) o Notation (Datentyp) <!NOTATION Name SYSTEM SystemID> <!NOTATION Name PUBLIC PublicID> o Entity-Deklaration mit Notation <!ENTITY EName SYSTEM DName NDATA NName> (Binden des externen Namens an internen Namen, Vereinbarung des Datentyps der Fremddaten) Tutorial aus Praktikum XML-Technologie SS 2005 (..\..\Tutorielles\FremddatenEntities.pdf) Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 31 … XML-Syntax: Entities für Fremddaten … o o o o Beispiel <!ELEMENT figure EMPTY> <!ATTLIST figure src ENTITY #REQUIRED> <!NOTATION gif SYSTEM "GIF"> <!ENTITY fig1 SYSTEM "fig2.gif" NDATA "gif"> <figure src="fig1"/> Aufruf der Fremddaten mit Attribut vom Typ ENTITY Voraussetzungen o o o Deklaration des Attributs als vom Typ ENTITY Deklaration der Entity als Fremddatentyp (Notation) Deklaration der Notation Anwendung im Computer-Propädeutikum (..\..\compProp) Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 32 … XML-Syntax: Entities für Fremddaten Zusammenfassung o Standardisierte Assoziation von Fremddaten, nicht Import Behandlung der Assoziation durch Anwendungssysteme o Spiel mit Namen Kapselung der Plattformabhängigkeiten o Empfehlenswert: Aufteilung in dokumentinterne und externe Teile der DTD o Benennung der Fremddaten o Deklaration der Aufhängepunkte und Datentypen Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 33 Diskussion Syntax o o o "Flache" Syntaxdefinition: Abstraktion von Token für lexikalische Analyse fehlt o Alternative: xmlRulesRewritten.htm o XMLLight für Instanzen: xmlLightI.htm Physische und logische Struktur nicht in getrennten Schichten (vgl. Präprozessoren für Makros in Programmiersprachen) Viele Nebenbedingungen Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 34 Konzeptionelles Modell für XML … o o o o o XML: Sprache, in der strukturierte Dokumente und ihre Strukturvorgaben syntaktisch repräsentiert werden Daten als Zeichenstrom unter bestimmten syntaktischen Regeln, Überprüfung und Abstraktion durch Parser, Datenmodell, APIs, Anwendungssysteme In den Worten des XML-Standards: whatIsXML.htm Wert liegt in Standardisierung durch W3C und Adaption im Web Konzeptionelles Modell für XML-Dokumente nur implizit, nicht explizit (explizite konzeptionelle Beschreibung von XML unter xmlMod.htm) Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 35 … Konzeptuelles Modell für XML Begriffe (../../Tutorielles/xmlMod.htm) o Element o Name oder Typ o Attribut o Name, Typ und Wert o XML-Dokument o XML-Instanz o XML-DTD (Document Type Definition) o Entitätenreferenz o Zeichenreferenz o Kommentar, Processing Instruction Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 36 Hausaufgabe (Abgabe Samstag, 11.11.2006) Formalisieren Sie das konzeptionelle Modell von XML in einem UML-Klassendiagramm Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 37 Formales Modell für XML (1) GCSDocument ⊆ DocInstance × DocGrammar. (2) DocInstance = DocSort × Attributes × Content. (3) Attributes = Ffin(AttSort → AttValue ∪ Character* ∪ DocID). (4) Content = (DocInstance ∪ Character)*. (5) DocGrammar = ContentRules × AttRules. (6) ContentRules = Ffin(DocSort → DocDomain). (7) DocDomain = Reg(DocSort) ∪ RReg(Character,DocSort). (8) AttRules = Ffin(DocSort × AttSort → AttDomain). (9) AttDomain = Pfin(AttValue) ∪ {String,ID,IDREF}. Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 38 XML-Parser … o o Programme zur XML-Syntaxüberprüfung heißen XML-Prozessoren oder Parser Aufgaben eines Parsers o o o o o o o Syntaxüberprüfung (gegenüber XML-Grammatik) Überprüfen der Wohlgeformtheit Expansion von Referenzen Einsetzen von Attributwerten Validierung Abstraktion von syntaktischem Zucker und von Alternativen Weitergabe der erforderlichen Information (APIs) Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 39 … XML-Parser o Parser-Software Xerces von Apache XML unter http://xml.apache.org/, zum Beispiel als Java-Implementierung Xerces-J o o o xercesImpl.jar, xml-apis.jar und xercesSamples im Classpath Aufruf java sax.Counter [-v] XMLDocument o o http://www.hcrc.ed.ac.uk/~richard/xml-check.html http://www.stg.brown.edu/service/xmlvalid/ Online-Parser Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 40 XML-Browser o o o o Microsoft Internet Explorer ab Version 5 zur Darstellung von XML-Dokumenten, auch mit CSS-Stylesheets Netscape Navigator ab Version 6 zur Darstellung von XMLDokumenten, nur mit CSS-Stylesheets Anbindung eines Stylesheets mit Processing Instruction <?xml-stylesheet type="text/css" href="KonzeptXML.css"?> [Associating Style Sheets with XML documents W3C Recommendation 29 June 1999 http://www.w3.org/TR/xml-stylesheet] Beispiel (..\..\compProp) Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 41 XML-Status … o Definition und Umsetzung von Formaten für XML o Stylesheet-Sprache CSS Umsetzung durch XML/CSS-fähigen Browser o Sprache XSLT zur Transformation von XML o nach HTML o nach XML (Anpassung der logischen Struktur) o nach PDF (über Zwischenstufe) Umsetzung durch Server oder Browser mit XSLT-Prozessor o mit XSLT auch andere Formate (z.B. LaTeX) erreichbar Z XML dadurch operationabel für narrative Dokumente Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 42 … XML-Status … o o Ergänzende Stylesheet- und Linking-Standards sowie Schema-Sprachen, Query-Sprachen Software-Unterstützung ordentlich o Parser mit standardisierten APIs o Editoren o Document Management / Datenbank-Systeme o XSLT-Prozessoren o Browser o Stylesheet-Unterstützung Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 43 … XML-Status o Situation im EP-Bereich: XML-Studie Börsenverein 2004 o XML-Anwendungen (DTDs) o MathML, CML, DocBook, TEI, XHTML o Metadaten (auch Austauschformate) für Kataloganwendungen: RDF, Dublin Core o Authentifizierung, digitale Unterschriften o Electronic Commerce: Open Trading Protocol, EDI o Web Services: WSDL, SOAP o Ontologien: OWL o Content Syndication: RSS, ATOM http://www.boersenverein.de/sixcms/media.php/686/AKEP_Branchenbarometer2004.pdf Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 44 Verhältnis SGML-XML-HTML-XHTML … o o Jedes gültige (valid ) XML-Dokument ist ein gültiges SGMLDokument (nach leichter Anpassung des SGML-Standards) XML-Dokumente können nur wohlgeformt sein (well-formed ): nur eine vollständig geklammerte Instanz, keine DTD oder keine Übereinstimmung zwischen DTD und Instanz SGML-Dokumente müssen immer DTD haben Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 45 … Verhältnis SGML-XML-HTML-XHTML … o o o HTML ist eine SGML-Anwendung; HTML ist über eine SGML-DTD definiert HTML-Dokumente sind keine gültigen XML-Dokumente, aber Anpassung in Form von XHTML inzwischen vom W3C verabschiedet XHTML (Januar 2000), HTML4 als XML-DTD definiert Richtlinien für Kompatibilität von XHTML-Dokumenten mit heutigen Browsern unter http://www.w3.org/TR/xhtml1/#guidelines Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 46 … Verhältnis SGML-XML-HTML-XHTML … o o o XML: freies Vokabular für Elemente, Attribute, Entitäten HTML: festes Vokabular für Elemente, Attribute, Entitäten XML: keine definierte Semantik für Sprachelemente HTML: definierte Semantik, von Browsern verstanden HTML hat liberalere Syntax als XHTML o keine schließenden Tags bei leeren Elementen o Attributwerte ohne Anführungszeichen o Boolesche Attribute ohne Attributnamen Definition von XHTML mit HTML-Vokabular, aber strengerer XML-Syntax (JTidy zur Konvertierung von HTML nach XHTML) Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 47 … Verhältnis SGML-XML-HTML-XHTML o Einschränkungen/Änderungen von XML gegenüber SGML o feste SGML-Deklaration o explizite und vollständige Klammerung, keine Markup-Minimierung in DTD o Markierung <X/> für leeres Element X o Einschränkungen bei Content models: Exceptions, &-operator, Mixed content o Attributwerte immer in Anführungsstrichen o restriktivere Entity-Grenzen o ISO 10646 (Unicode) Zeichenkodierung, auch für Namen Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 48 Aufgaben Kodierung mit XML … Grundlage der Aufgaben ist das XML-Dokument „Wie ich das Rad erfand“ [..\..\xmlSamples\radBook.xml] o Markieren Sie jedes Vorkommen der folgenden Sprachelemente von XML: XML-Deklaration, Dokumenttypdeklaration, Elementdeklaration, Attributdeklaration, (Entitydefinition), Element, Attribut, (Entityreferenz), Zeichenreferenz, Tag. o Führen Sie die Bestandteile einer Elementdeklaration und einer Attributdeklaration auf und markieren Sie sie ebenfalls. Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 49 … Aufgaben Kodierung mit XML o Visualisieren Sie das konzeptionelle Modell zum XML- o Dokument als Baum. Müssen Sie Ihren Baum ändern, wenn in dem öffnenden Tag zum ersten Element chapter die beiden Attribute in umgekehrter Reihenfolge angegeben werden? Erläutern Sie anhand Ihrer Überführung des XMLDokuments in einen Baum die Aufgaben eines XML-Parsers. Gehen Sie auch auf die Begriffe „Wohlgeformtheit“ und „Validität“ ein. Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 50 XML-Steckbrief … o XML als Sprache für strukturierte Dokumente Dokumente als Daten, Daten als Dokumente o o o o Priorität von logischer Auszeichnung in Gegensatz zu Machbarkeit (HTML) Flexibilität bei Vokabular Verifizierbarkeit o o o homogene Syntax für Markup frei definierbares Vokabular Definition des Vokabulars mit homogener Syntax XML als Metasprache Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 51 … XML-Steckbrief o Document Management mit XML: Physikalische Aufspaltung in Entitäten o o o o Zerlegung in separate Speichereinheiten (Modularisierung) Wiederverwendbare Inhalte (Textbausteine) Abkürzungen/Namen für Sonderzeichen Verwendung von Entitäten (Auflösung) über Namensreferenzen (Name/Ersetzungstext) Multifunktionales Markup: Elemente mit Attributen, Referenzen, DTD-Deklarationen, Kommentare, Prozessanweisungen, XML-Deklarationen, Whitespace (außerhalb des Wurzeldokuments) Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 52 DTDs konzeptionell o o o o Formale Beschreibung einer Klasse von XML-Dokumenten Analogien o DTD ≅ kontextfreie Grammatik syntaktischer Zucker implizit o Instanz ≅ Wort der Grammatik o Baummodell ≅ Syntaxbaum Enge Korrespondenz zwischen Instanz/Baummodell bzw. Wort/Syntaxbaum: Niedrige Sprachklasse innerhalb der kontextfreien Sprachen (LL(1)) Generierbarkeit von DTD-spezifischen Werkzeugen aus DTD (Forschung) Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 53 Literatur o o o XML-Seite des W3C (http://www.w3.org/XML/). E.R. Harold, W.S. Means: XML in a Nutshell. O'Reilly 2001. E.T. Ray: Einführung in XML. O'Reilly 2001. Neil Bradley: The XML Companion. Addison-Wesley 2002. Mark Johnson: XML for the Absolute Beginner. Javaworld, April 1999. (http://www.javaworld.com/javaworld/jw-04-1999/jw-04-xml_p.html) Online-Tutorial von W3Schools o XML-Portal von O‘Reilly (http://www.xml.com/). o o o (http://www.w3schools.com/xml/). Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 54 Aufgabe (Abgabe Samstag, den 4.10.2006) o Entwerfen Sie ein Gedicht als strukturiertes Dokument. o Entwerfen Sie eine Strukturvorgabe für Gedichte und visualisieren Sie sie als Baum. Kodieren Sie die Strukturvorgabe als DTD und binden Sie sie in Ihr Gedicht ein. Validieren Sie das Gedicht mit den drei obigen Methoden o Berücksichtigen Sie die Klassifizierung von Strukturelementen. Visualisieren Sie das Gedicht als Baum. Kodieren Sie das Gedicht in XML. Überprüfen Sie das Gedicht auf Wohlgeformtheit o mit einem Browser oder o mit einem Online-Validierer oder o mit einem selbstinstallierten Parser. Elektronisches Publizieren: Kodierung strukturierter Dokumente mit XML 30.Oktober / 6.November 2006 ― 55