Anmerkungen zu XML Im September 2000 Entwicklung/Anspruch von XML

Slides:



Advertisements
Ähnliche Präsentationen
XML-basierte Techniken
Advertisements

25. Mai 2001Kleyer/Oyen/ReuseFolie 1 Fallstudie im Rahmen des Studienganges Wirtschaftsinformatik Christian Kleyer, Daniel Oyen, Svend Reuse Grundkonzeption.
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil3.
Extensible Markup Language
Worzyk FH Anhalt Datenbanksysteme für FÜ WS 2004/2005 XML - 1 XML Extensible Markup Language.
Hauptseminar Softwaretechnologie TU Dresden, SS 2001
SVG und X3D Referentin: Gergana Ivanova
Dipl.- Dok. Rusalka Offer
Zurück zur ersten Seite n Style Sheets sind im Prinzip Formatvorlagen für HTML-Dokumente n Über Style Sheets lassen sich zentrale Layout-Vorgaben für eine.
XML - Aufbau und Struktur - mit Einsatz im B2B
Hands On – Einführung in XML
Scratch Der Einstieg in das Programmieren. Scatch: Entwicklungsumgebung Prof. Dr. Haftendorn, Leuphana Universität Lüneburg,
IMS Universität Stuttgart 1 Einführung in XML Hannah Kermes HS: Elektronische Wörterbücher Do,
FH-Hof Extensible Markup Language Richard Göbel. FH-Hof Extensible Markup Language XML XML ist universeller Ansatz für die Strukturierung von Zeichenketten.
DOM (Document Object Model)
Seminar XML und Datenbanken Sven Wiegelmann SS 2002.
Internetstruktur Das Internet besteht aus vielen Computern, die weltweit untereinander vernetzt sind.
Web 3.0 – Programmierung – Semantic Web / CIDOC CRM
XML-Schema HKI Proseminar Wintersemester 2010/11 Dozentin: Frau Kurz von Jan Kohl und Christian Lütticke.
HTML - Eine erste Annäherung
Gottfried Vossen 5. Auflage 2008 Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Kapitel 10: Einführung in XML.
© 2002 Prof. Dr. G. Hellberg 1 XML-Seminar XML-Technologie: XML in Theorie und Praxis Prof. Dr. G. Hellberg XML-Technologie: XML in Theorie und Praxis.
Tinosch Ganjineh, Christian v. Prollius 1 Scalable Vector Graphics SVG.
XHTML 1.1 C. Nimz Abstrakte Module XHTML 1.1 C. Nimz Was ist ein abstraktes Modul? Definition eines XHTML-Moduls in spezieller leichter.
Modularization of XHTML™
Grundlagen von XML. © Prof. T. Kudraß, HTWK Leipzig Geschichte Grundidee generic coding - Trennung Information/Form formal definierter Dokumenttyp verschachtelte.
Grundlagen von XML. © Prof. T. Kudraß, HTWK Leipzig Geschichte Grundidee generic coding - Trennung Information/Form formal definierter Dokumenttyp verschachtelte.
Einführung XML XML Einführung Andreas Leicht.
Vorlesung: 1 Betriebliche Informationssysteme XML © 2002 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme.
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
Sebastian Hirsch Sascha Neuhaus
EXtensible Server Pages von Belrhiti El mostafa. Inhalt Was ist XSP ? Wichtige XSP Tags Erstellungsmöglichkeiten Die Basis der XSP.
XML – Grundlagen und Anwendungen Teil 6: Verarbeitung von XML-Dokumenten: XSLT Prof. Dr. Michael Löwe, FHDW Hannover.
1 XML und Datenbanken Kapitel 7: Modellierung, Teil 1 Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik
XML und Datenbanken - Einführung in XML -
Tobias Högel & Dennis Böck,
XML Grundlagen But if I bought a radio and found that it accessed only certain stations and not others, I'd be upset. I suppose I could have a half dozen.
1 Grundlagen und Anwendung der Extensible Markup Language (XML ) Peter Buxmann Institut für Wirtschaftsinformatik Johann Wolfgang Goethe-Universität Frankfurt.
XML eXtensible Markup Language
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 3 Folie 2 Windows Presentation Foundation (WPF) s.a.
Wird ganz am Anfang der HTML-Datei geschrieben Doctype html public bedeutet, dass man sich auf die Öffentlichkeit der html-dtd bezieht Html ist die meist.
Java für Fortgeschrittene
Information und ihre Darstellung: XHTML & CSS
Daniel Kucher Proseminar XHTML. 1. HTML – Struktur und Versionen 2. Der – Teil 3. Der – Teil 4. Stylesheets (CSS) – Das Rückrat von XHTML.
Ausgabe vom Seite 1, XML Eine Einführung XML - Eine Einführung.
XML in relationalen Datenbanken
XML (Extensible Markup Language)
ADAT©2004 Dipl. - Ing. Walter SabinSeite: 1 Version 1.0a XML EXTENSIBLE MARKUP LANGUAGE.
XML1 XML-Motivation HTML definiert nur einen bestimmten Dokumenttyp Viele Web-Technologien benötigen eine allgemeinere Sprache zur Dokumentstrukturierung.
Version X des Programms: Datenaustausch-Probleme % ( ) (WIRBEL-BASISTEIL GR. 52) N1G29X150Y85I150J25 N2G0X150Y25 Version Y des Programms:
Stand der Normung um XML (eXtensible Markup Language) & die Aktivitäten des DIN (Stand: November 2000) Bernd Bösler, Referent im DIN/NBü DIN Deutsches.
XSL in der Praxis Anwendungsbeispiele für die eXtensible Stylesheet Language Andreas Kühne XML One 2000.
Drucken mit XSL-FO DaimlerChrysler  Drucken von Webseiten
© 2001 Sven Dammann1 Aufbau Integrierter Informationssysteme XML Bearbeitung und relationale Abbildung Sven Dammann Martin-Luther-Universität Halle-Wittenberg.
© Prof. Dr.-Ing. habil. Dierk Langbein 2005 Dierk Langbein LE 4 1 Datenverarbeitung mittels XML 1. XML-Grundlagen.
Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema XML, DTDs und XML-Schema - Stefan Kurz, 25. April 2003.
- Warum: Das HTML-Dilemma
IT-Zertifikat der Phil.Fak Kurs 4: Daten- und Metadatenstandards Patrick Sahle XML-BasicsWS 08/09.
Seminar zur Geoinformation Folie 1 Inhalt: –XML –XML- SCHEMA –XSL –Syntax –GML Seminar zur Geoinformation Datenaustausch mit XML / GML im InternetDatenaustausch.
Text Encoding Initiative Universität zu Köln Daten- und Metadatenstandards Seminarleitung: Patrick Sahle Seminarleitung: Patrick Sahle Referentin: Anna.
Peter Brezany Institut für Softwarewissenschaften Universität Wien
Geoinformation3 Geoinformation III XML Grundlagen und Dokumentspezifikation Vorlesung 12b.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Dr. Thomas H. Kolbe Geoinformation III XML Grundlagen und Dokumentspezifikationen Vorlesung.
XML Grundlagen, Namensräume & Hyperlinks
IT-Zertifikat_Seminar: Metadatenstandards XSLT Eine Transformationssprache.
XSLT I Re-usable Content in 3D und Simulationssystemen Dozent: Prof. Manfred Thaller Referentin: Elisabeth Chang.
Document Type Definitions (DTDs) Marko Harasic Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme
13.Dezember 2006–1Elektronisches Publizieren: Schemasprachen — Relax NG Schemasprachen für XML — Relax NG — Anne Brüggemann-Klein TU München.
Dokumentenproduktion im Medienzentrum
 Präsentation transkript:

Anmerkungen zu XML Im September 2000 Entwicklung/Anspruch von XML Character Data DTD vs. Schemata XSL vs. CSS Prof. Dr. Manfred Sommer Fachbereich Mathematik und Informatik Universität Marburg

XML Struktur / Structure Format / Layout Ein Dokument Inhalt / Content

W3C: XML Aussagen des W3C zu XML: XML in 10 points.htm Die aktuelle XML-Definition des W3C: XML-Dokus\Extensible Markup Language (XML) 1_0 (Second Edition) Review Version.htm

Ist XML einfach ? HTML ist eine Anwendung von SGML. XML ist (war mal ?) eine Teilmenge von SGML (ISO 8879). Die Definition von SGML umfasst angeblich ca. 500 Seiten. "Die Definition von XML passt auf ca. 33 Seiten." Diese Aussage war vielleicht mal richtig, insgesamt gibt es mittlerweile sehr viel mehr Seiten über XML und angrenzende Themen. An XML und den angrenzenden Themen arbeiten seit Jahren Komitees mit Mitgliedern von SUN, Microsoft, IBM und anderen Firmen. Folge: XML wird immer umfangreicher und unübersichtlicher.

XML ist eine Baum-Sprache <?xml version="1.0"?> <ausdruecke> <Plus> <Operand class="var" name="b" type="int"/> <Mult> <Operand class="const" val="7" type="int"/> <Operand class="var" name="c" type="int"/> <Operand class="var" name="d" type="int"/> <Operand class="var" name="e" type="int"/> </Mult> </Plus> <Operand class="const" val="8" type="int"/> </ausdruecke> B + 7 * (C + D * E + 8 ) + * 8 B C 7 D E

[14] CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*) Text Text besteht aus Zeichen und eingestreuten Markierungen („Mark-Ups“). Diese bestehen aus: <Start-Tag> ... <End-Tag/> oder </Leeres-Element Tag> „Entity references“ „character references“ Kommentaren CDATA Abschnitten DTDs (Document Type Declarations) PIs (Processing Instructions) Text, der kein Markup ist, sind „die Zeichen des Dokumentes“ = Character Data = CharData (im Gegensatz zu CDATA) Außerdem gibt es noch PCDATA %pub; & © { [14] CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*)

<![CDATA[<greeting>Hello, world!</greeting>]]> CDATA / PCDATA Die Zeichen & < und müssen bis auf wenige Ausnahmen immer zitiert werden: "&" und "<“. Natürlich sollten auch >, ], ‘ und “ zitiert werden. Man kann auch Datenabschnitte definieren, in denen die üblichen Ersetzungsregeln nicht gelten: <![CDATA[<greeting>Hello, world!</greeting>]]> In dem Beispiel wird <greeting> nicht als Tag behandelt. Der einzige Text, der in einem CDATA-Abschnitt ausgewertet wird, ist ]]>. Im Gegensatz zu dem Text in einem CDATA-Abschnitt wird ausgewerteter Text als PCDATA „Parsed“ CDATA bezeichnet.

Entitäten (1) Entity steht für diverse Ersetzungsmechanismen. Gemeinsam ist allen Entities, daß es für sie einen Namen gibt und daß sie einen Inhalt haben. Die meisten Entities müssen in einer Deklaration einen Namen zugewiesen bekommen, bevor auf sie in einem Dokument verwiesen werden kann. Wenn ein Entity deklariert wurde, kann der Entity-Name als ein Kürzel verwendet werden, und der Parser wird dafür sorgen, daß an die Stelle des Entity der Ersetzungstext gesetzt wird. Vordefinierte Entities: Warum doppelt? < steht für < > steht für > & steht für & &apos; steht für ' " steht für " <!ENTITY lt "<"> <!ENTITY gt ">"> <!ENTITY amp "&"> <!ENTITY apos "'"> <!ENTITY quot """>

Entitäten (2) Im einfachsten Fall kann man mit einer Entitiy-Deklaration selbst eine Abkürzung definieren: <!ENTITY pu "Philipps Universitaet Marburg"> <!ENTITY fb "Fachbereich Mathematik und Informatik" > <!ENTITY dk "Der Dekan des &fb; der &pu;" > .... <zzz> &pu; </zzz> <zzz> &fb; </zzz> <zzz> &dk; </zzz> <zzz>Philipps Universitaet Marburg</zzz> <zzz>Fachbereich Mathematik und Informatik</zzz> <zzz>Der Dekan des Fachbereich Mathematik und Informatik der Philipps Universitaet Marburg</zzz>

Entitäten (3) Soll sich der Substitutionsmechanismus nur auf den DTD-Teil und auf den Erstellungszeitpunkt der DTD beziehen, verwendet man „Parameter Entities“. <!ENTITY % pub "Éditions Gallimard" > <!ENTITY rights "All rights reserved" > <!ENTITY book "La Peste: Albert Camus, © 1947 %pub;. &rights;" > = <!ENTITY book2 "La Peste: Albert Camus, © 1947 Éditions Gallimard. &right;" > Für Entities gibt es drei Einteilungskriterien: Interne und externe Entities. Parsed und unparsed Entities. Normale und Parameter-Entities Alles ganz einfach ???

DTD: allgemein Der Typ eines Dokumentes wird in einer DTD beschrieben. Diese definiert die Struktur eines Dokumentes und sollte alle verwendeten Markups beschreiben. Dies ist jedoch keine Pflicht! (Warum eigentlich nicht?) Eine DTD kann intern sein oder extern. Beides ist auch möglich. Man spricht dann von einer internen und einer externen Teilmenge der DTD. Beispiel für eine externe DTD: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE gruss SYSTEM "hello.dtd"> <gruss> Hallo XML! </gruss> Auf SYSTEM folgt eine URI. Alternativ kann das Schlüsselwort PUBLIC verwendet werden. Das verweist auf eine „öffentliche“ URI. Als Beispiel sind Standards anzusehen.

DTD: Inhalt In einer DTD werden definiert: Elemente Attribute Entitäten Notationen ...

DTD: Beispiel <?xml version="1.0" standalone="no"?> <!DOCTYPE AdrListe [ <!ELEMENT AdrListe (Adr)*> <!ELEMENT Adr (Vorname?, Nachname, (Strasse|Postfach), PLZ, Ort)> <!ELEMENT Vorname (#PCDATA)> <!ELEMENT Nachname (#PCDATA)> <!ELEMENT Strasse (#PCDATA)> <!ELEMENT Postfach (#PCDATA)> <!ELEMENT PLZ (#PCDATA)> <!ELEMENT Ort (#PCDATA)> ]> .... ... <AdrListe> <Adr> <Nachname> Sommer </Nachname> <Postfach> 4711 </Postfach> <PLZ> 35037 </PLZ> <Ort> Marburg </Ort> </Adr> <Vorname> Manfred </Vorname> <Nachname> Winter </Nachname> </AdrListe>

DTD: Diskussion (1) In einer DTD können die Elemente und Attribute beschrieben werden. Die zur Verfügung stehenden Datentypen sind sehr beschränkt: Der Inhalt von Elementen kann sein: Der Inhalt kann leer (EMPTY) oder beliebig (ANY) sein. Der Inhalt kann ausschließlich aus noch zu parsenden Character Daten (#PCDATA) bestehen. Der Inhalt kann ausschließlich aus Elementen bestehen. Der Inhalt kann sowohl aus Daten als auch aus Elementen bestehen. Attribute können folgenden Typs sein: #CDATA ID, IDREF, IDREFS, ENTITY, ENTITIES, NMTOKEN, NMTOKENS, NOTATION, NOTATIONS

DTD: Diskussion (2) DTDs sind ein Relikt aus der SGML-Zeit und können den Inhalt von XML-Dokumenten nur sehr ungenau beschreiben, wenn darin z.B. spezifische Datenstrukturen verwendet werden. Das Problem lässt sich auch nicht kompatibel beheben. Daher wurden XML-Schemata definiert. In DTDs können keine Namespace-Konstrukte verwendet werden.

XML-Schema XML-Schema erweitern die Möglichkeit zur Definition von XML-Datenstrukturen erheblich! In der Definition von XML-Schemata wird das Thema Datenstrukturen vollständig erschlagen (overkill?) XML-Schemata sind nicht kompatibel zur SGML-Vergangenheit. Die Verwendung und auch die genaue Definition von XML-Schemata ist umstritten!

XML-Schema Beispiel (1) Für das folgende XML-Element wird auf den nächsten Folien ein passendes Schema definiert. Das Beispiel ist aus der Diplomarbeit von Frank Bingel. <auftrag bestellDatum="2000.04.30"> <lieferadresse> <name>Mustermann</name> <vorname>Herbert</vorname> <strasse>Musterstrasse 1</strasse> <postleitzahl>60000</postleitzahl> <wohnort>Frankfurt</wohnort> </lieferadresse> <posten> <produktnummer>212-456</produktnummer> <anzahl>5</anzahl> <preis>19.99</preis> </posten> <produktnummer>942-132</produktnummer> <anzahl>2</anzahl> <preis>37.49</preis> </auftrag>

XML-Schema Beispiel (2) <element name="auftrag" type="auftragTyp"/> <complexType name="auftragTyp"> <element name="lieferAdresse" type="adressTyp"/> <element name="posten" type="postenTyp" maxOccurs="10"/> <attribute name="bestellDatum" type="date"/> </complexType> <complexType name="adressTyp"> <element name="name" type="string"/> <element name="vorname" type="string"/> <element name="strasse" type="string"/> <element name="postleitzahl" type="posteitzahlTyp"/> <element name="wohnort" type="string"/> ...

XML-Schema Beispiel (3) ... <simpleType name="postleitzahlTyp" base="string"> <pattern value="[0-9][1-9][0-9]{3}"/> </simpleType> <complexType name="postenTyp"> <element name="produktNummer" type="produktNummerTyp"/> <element name="anzahl"> <simpleType base="positive-integer"> <maxExclusive value="10"/> </element> <element name="preis" type="decimal"/> </complexType> <simpleType name="produktNummerTyp" base="string"> <pattern value="[1-9]{3}-[1-9]{3}"/> </schema>

Vorteile unabhängiger Stilvorlagen Wiederverwendbarkeit Mehrere Varianten für unterschiedliche Ausgabemedien. Standardisierte Textvorlagen können eingeführt werden. Individuelle Textgestaltung ist immer noch möglich. Trennung von „Inhalts-Autoren“ und „Stil-Autoren“. Stilvorlagen können deklarativ oder prozedural sein. Deklarative Stilvorlagen sagen wie ein Textelement aussieht. Prozedurale Stilvorlagen sagen wie ein Textelement transformiert werden soll.

Stilvorlagen für XML Die Diskussion über Stilvorlagen für XML ist anhaltend und noch keineswegs abgeschlossen. Die Puristen halten CSS, wie bereits für HTML definiert, für völlig ausreichend. Daneben gibt es einen andauernden Versuch zusätzlich einen XML spezifischen Stilvorlagen Mechanismus zu definieren. Eine erste Version von XSL wurde vor 1998 definiert. Eine neue Version wurde seit 1999 eingeführt. Diese ist völlig anders – dies wurde aber nirgends an die grosse Glocke gehängt. Gegenwärtig gibt es eine zweistufige XSL-Definition: XSLT definiert Baumtransformationen. XSL definiert XML-Formate.

XSL und XSLT (1) Baumtransformationen könnte man übrigens genau so gut mit DOM machen!

XSL und XSLT (2) Die Baum-Transformationen sind durch XSLT definiert. Das Ergebnis kann sein: ein Text mit Format-Auszeichnungen ein anderer XML-Baum ein HTML-Baum ... Input: Ein XML-Baum Ergebnis: Ein anderer Baum

Baumstruktur Ein XML Dokument definiert einen Baum. XSLT definiert eine Baumtransformation für einen solchen Baum. Die Struktur eines XML ist: Er besteht aus einem Wurzelknoten und Kind-Knoten. Es gibt folgende Arten von Knoten: Wurzel-Knoten Element-Knoten Text-Knoten Attribut-Knoten (Namespace)-Knoten (Processing Instruction)-Knoten Kommentar-Knoten

Knotenarten: Beispiel <section> <title>The First Day</title> <p>It was the <emph>best</emph> of days, it was the <emph>worst</emph> of days.</p> </section> Wurzel Elementknoten: section Elementknoten: title Elementknoten: p Textknoten: The First Day Textknoten: It was the El.knoten: emph Textknoten: of days, it was the El.knoten: emph Textknoten: of days Textknoten: best Textknoten: worst

Aktueller Knoten Bei der Verarbeitung eines Baumes gibt es ausgezeichnete Positionen: Der aktuelle Knoten: Auf diesen bezieht sich die momentane Verabeitung. Wenn ein Template angewandt wird, wird der Knoten auf den es angewandt wird, der aktuelle Knoten. Weitere Arten von Knoten: Wurzel-Knoten Vorgänger-Knoten (Eltern-Knoten) Kind-Knoten (1. Kind, 2. Kind, .... Letztes Kind)

Abhängige Knoten (1) Ausgehend von der aktuellen Position kann man folgende Mengen von Knoten definieren. Dafür gibt es eine ausführliche und eine abgekürzte Schreibweise. Einige Beispiele in ausführlicher Schreibweise: from-children(para) Die Kinder-Elementknoten namens para. from-children(*) Alle Kinder-Elementknoten. from-children(text()) Alle Kinder-Textknoten. from-children(node()) Alle Kinder-Knoten. from-attributes(name) Die Kinder-Attributknoten namens name. from-attributes(*) Alle Kinder-Attributknoten. from-descendants(para) Aus der Menge der Abkömmlinge: Elementknoten namens para from-self(para) ist der aktuelle Knoten, wenn er ein Elementknoten namens para ist, die leere Menge andernfalls.

Abhängige Knoten (2) Zusammengesetzte Selektoren: from-ancestors-or-self(...) from-descendants-or-self(...) Abgekürzte Schreibweise: para bezeichnet die Kind-Elemente names para. * alle Kind-Elemente. text() Alle Kinder-Textknoten. @name Die Kinder-Attributknoten namens name. @* Alle Kinder-Attributknoten. para[1] das 1. Element der Kind-Elemente names para. para[last()] das letzte Element der Kind-Elemente names para.

Muster Eine wesentliche Komponente von XSL ist der Vergleich von Mustern. Beispiele: <xsl:template match="preparation"> <xsl:value-of select="@units"/> <xsl:when test="note[@status='credit']"> <xsl:template match="/"> / wählt das Wurzelelement eines XML Baumes aus. * wählt alle Elemente eines XML Baumes aus. m1|m2 wählt Elemente aus, auf die m1 oder m2 zutrifft. m1 and m2 wählt Elemente aus, auf die m1 und m2 zutrifft. m1/m2 wählt Elemente aus, auf die m2 zutrifft, wenn der Elternknoten m1 ist. m1//m2 wählt Elemente aus, auf die m2 zutrifft, wenn sie einen Vorgängerknoten m1 haben. @a wählt ein Attribut mit Namen a aus. *@ wählt alle Attribute aus.

Filter [] definiert einen Filter für ein Muster. Beispiele: div[@class="appendix"]//p wählt jedes Element namens p aus (auf das p zutrifft), das ein Vorgängerelement namens div hat, der ein Attribut class mit dem Wert appendix hat. para[1] trifft auf alle para Elemente zu, die 1. Kind ihres Elternknotens sind. *[position()=1] wählt jedes Element aus das 1. Kind seines Elternknotens ist. *[last()=1] wählt jedes Element aus das das einzige Kind seines Elternknotens ist. item[position() mod 2 = 1] trifft auf ein Element namens item zu, wenn es eine ungerade Positionsnummer hat. item[position() > 1] trifft auf ein Element namens item zu, wenn es nicht das 1. Kind seines Elternknotens ist.

XSL/XSLT Beispiel (1) Für das folgende XML-Element wird auf den nächsten Folien eine passende Formatierung definiert. Das Beispiel ist aus der W3C XSL Spezifikation. <doc> <chapter><title>Chapter</title> <p>Text</p> <section><title>Section</title> </section> </chapter> </doc>

XSL/XSLT Beispiel (2) XSLT – Definition: <?xml version='1.0'?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" version='1.0'> <xsl:template match="chapter"> <fo:block break-before="page"> <xsl:apply-templates/> </fo:block> </xsl:template> <xsl:template match="chapter/title"> <fo:block text-align="center" space-after="8pt" space-before="16pt" space-after.precedence="3"> ...

XSL/XSLT Beispiel (3) ... <xsl:template match="section/title"> <fo:block text-align="center" space-after="6pt" space-before="12pt" space-before.precedence="0" space-after.precedence="3"> <xsl:apply-templates/> </fo:block> </xsl:template> <xsl:template match="p[1]" priority="1"> <fo:block text-indent="0pc" space-after="7pt" space-before.minimum="6pt" space-before.optimum="8pt" space-before.maximum="10pt">

XSL/XSLT Beispiel (4) ... <xsl:template match="p"> <fo:block text-indent="2pc" space-after="7pt" space-before.minimum="6pt" space-before.optimum="8pt" space-before.maximum="10pt"> <xsl:apply-templates/> </fo:block> </xsl:template> </xsl:stylesheet>

XSL/XSLT Beispiel (5) Ergebnis-Format: <fo:block break-before="page"> <fo:block text-align="center" space-after="8pt" space-before="16pt" space-after.precedence="3">Chapter </fo:block> <fo:block text-indent="0pc" space-after="7pt" space-before.minimum="6pt" space-before.optimum="8pt" space-before.maximum="10pt">Text <fo:block text-align="center" space-after="6pt" space-before="12pt" space-before.precedence="0" space-after.precedence="3">Section ...

XSL/XSLT Beispiel (6) ... <fo:block text-align="center" space-after="6pt" space-before="12pt" space-before.precedence="0" space-after.precedence="3">Section </fo:block> <fo:block text-indent="0pc" space-after="7pt" space-before.minimum="6pt" space-before.optimum="8pt" space-before.maximum="10pt">Text

XSL/XSLT Beispiel (7) ... <fo:block break-before="page"> <fo:block text-align="center" space-after="8pt" space-before="16pt" space-after.precedence="3">Chapter </fo:block> <fo:block text-indent="0pc" space-after="7pt" space-before.minimum="6pt" space-before.optimum="8pt" space-before.maximum="10pt">Text <fo:block text-align="center" space-after="6pt" space-before="12pt" space-before.precedence="0" space-after.precedence="3">Section

XSL/XSLT Beispiel (8) ... <fo:block text-indent="0pc" space-after="7pt" space-before.minimum="6pt" space-before.optimum="8pt" space-before.maximum="10pt">Text </fo:block> <fo:block text-align="center" space-after="6pt" space-before="12pt" space-before.precedence="0" space-after.precedence="3">Section

Diskussion (und Ende) XML war einmal eine bestechende Idee ... Heute verderben zu viele Köche den XML-Brei ... HTML war gut für Textdokumente. XML versucht die Struktur ganz allgemeiner Dokumente zu beschreiben – geht das mit denselben Hilfsmitteln. XML sollte ganz einfach sein – Baumtransormationen etc. sind nicht ganz einfach... Viele Details habe ich noch gar nicht diskutiert.