Inhaltsverzeichnis
Inhaltsverzeichnis I
Abk ürzungsverzeichnis II
Abbildungsverzeichnis II
1 Einleitung 4
2 XML - Extensible Markup Language 5
2.1 XML-Grundlagen 5
2.1.1 Entwicklungsgeschichte 5
2.1.2 XML Allgemein 6
2.1.3 XML versus HTML. 6
2.1.4 Aufbau und Syntax eines XML-Dokuments 7
2.2 DTD und XMLSchema 9
2.2.1 Dokumenttyp-Deklaration (DTD) 9
2.2.2 XMLSchema 9
2.2.3 Namensräume. 11
3 Die Formatierung von XML-Dokumenten. 13
3.1 CSS - Cascading Stylesheet Language 13
3.2 XSL - Extensible Stylesheet Language. 14
3.2.1 XSLT - XSL Transformations. 14
3.2.2 XSL-FO - XSL Formatting Objects 16
4 Anwendungsbeispiel:
Die flexible Darstellung von IDML-Reporting-Dokumenten 18
4.1 IDML Allgemein 18
4.2 IDML Reporting 18
4.3 Formatierung eines IDML-Reporting-Dokuments 20
5 Schlussbemerkung 23
6 Anhang 24
A.1 Projektreport 24
A.2 Stylesheet 1. 25
A.3 Stylesheet 2. 28
7 Literatur und Quellen 29
I
Abkürzungsverzeichnis
CSS: Cascading Style Sheet DTD: Dokumenttyp-Deklaration engl.: englisch IDML: International Development Language IT: Informationstechnologie HTML: Hypertext Markup Language MATHML: Mathematical Markup Language PCDATA: Parsed Character Data PDF: Portable Document Format RDF: Resource Description Framework SGML: Standard Generalized Markup Language URL: Uniform Resource Locator W3C: World Wide Web Consortium XHTML: Extensible Hypertext Markup Language XML: Extensible Markup Language XSL: Extensible Stylesheet Language XSL-FO: Extensible Stylesheet Language Formatting Objects XSLT: Extensible Stylesheet Language Transformations Abbildungsverzeichnis
Abbildung 1: Beispieldokument gliederung.xml
Abbildung 2: Beispiel einer DTD Abbildung 3: Beispiel eines Schemas Abbildung 4: Beispiel eines CSS-Stylesheets Abbildung 5: Darstellung im Browser Abbildung 6: Beispiel eines XSL-Stylesheets Abbildung 7: HTML-Output
Abbildung 8: Stylesheet zur Umwandlung eine XML-Dokuments in ein XSL-FO-Dokument Abbildung 9: Das erzeugte XSL-FO-Dokument Abbildung 10: Überblick IDML-Reporting Schema Abbildung 11: Beispielstylesheet 1 Abbildung 12: Beispielstylesheet 2 Abbildung 13 : Darstellung im Browser
II
XML - Extensible Markup Language -4-
1.Einleitung
Seit der Empfehlung des XML 1.0 Standards durch das W3C hat sich XML mit grosser Geschwindigkeit in der IT-Welt verbreitet. XML wird heute in Gebieten der IT eingesetzt, an die niemand bei der Entwicklung des Standards gedacht hätte. XML entwickelt sich immer mehr zum Format der Wahl für den Austausch und die Speicherung von Informationen im Internet [Harold/Means 2001, S. 243]. In dieser Arbeit soll dargestellt werden wie XML-Dokumente mit Hilfe von XSL fexibel präsentiert werden können.
In einem ersten Schritt sollen dazu zunächst die Grundlagen von XML erarbeitet werden. Als erstes wird die Entwicklungsgeschichte von XML betrachtet. Danach der grundlegende Unterschied zwischen XML und HTML kurz dargestellt. Im weiteren wird die Syntax und der Aufbau von XML-Dokumenten erläutert. Anschliessend werden die zwei grundlegenden Mechanismen zur Definition von Dokument-Strukturen vorgestellt (DTD und XMLSchema).
Im dritten Kapitel werden drei verschiedene Möglichkeiten der Präsentation von XML-Dokumenten kurz vorgestellt. Es wird sich dabei herausstellen, dass nur eine dieser drei Möglichkeiten zur Zeit für die Präsentation von XML-Dokumenten auf dem Web praktikabel ist.
Die so erarbeiteten Grundlagen von XML und der Präsentation von XML-Dokumenten werden in einem letzten Schritt mit einem konkreten Anwendungsbeispiel noch weiter verdeutlicht. Dazu werden zu einem IDML-Reporting-Dokument (IDML-Reporting ist eine XML-Applikation) einige Beispielstylesheets entworfen.
Diese Arbeit kann und soll keine vollständige Einführung in XML sein. Die vorgestellten Möglichkeiten zur flexiblen Formatierung von XML-Dokumenten sind nur ein kleiner Ausschnitt aus der Vielzahl von Darstellungsmitteln die XSL bietet. Für weitergehende Informationen zu XML selbst oder zur Darstellung von XML-Dokumenten sei auf die im Quellenverzeichnis angegebenen Titel und Webseiten verwiesen.
II
XML - Extensible Markup Language -5-
2.XML - Extensible Markup Language
Dieses Kapitel gibt eine kurzen Einblick in XML.
2.1 XML Grundlagen
Zunächst wird kurz die Entwicklungsgeschichte dargestellt. Im weiteren wird kurz besprochen was XML eigentlich ist. Es folgt ein Abschnitt, der den Unterschied zwischen XML und HTML erläutert. Schliesslich wird ein Blick auf die Syntax von XML geworfen.
2.1.1 Entwicklungsgeschichte
XML ist eine Untermenge der Standard Generalized Markup Language (SGML).
„SGML ist der Standard zur Beschreibung von Dokumenten festgelegt von der International Standardization Organization (ISO), der unter der Nummer ISO 8879 im Jahr 1986 veröffentlicht wurde. Das Ziel und die Idee dieses Standards ist es, die Struktur des Inhalts eines Dokuments von seiner layoutorientierten Erscheinungsform zu trennen.“ [Hofmann/Raitelhuber 1998, S. 2]
SGML ist gut geeignet für grosse Organisationen, die anspruchsvolle Standards für ihre Dokumente benötigen. Aufgrund seiner Komplexität (die Spezifikation von SGML umfasst 155 Seiten) fand es aber ausserhalb von grossen Organisationen kaum Verbreitung. Mit dem Boom des Internet anfangs der Neunziger Jahre kam das Bedürfnis nach einer einfachen Auszeichnungssprache für Webseiten auf. Dies führte zur Entwicklung der Hypertext Markup Language (HTML). Der erste Standard von HTML (HTML 1.0 DTD) wurde 1993 publiziert [Günther 1997]. HTML ist auf die Präsentation von Webseiten ausgerichtet zu mehr ist es, als rein darstellungsorientierte Sprache, kaum in der Lage. Mit HTML wurde ein grundlegendes Konzept von SGML, die Trennung von Form und Inhalt eines Dokuments, aufgegeben. Mit der enormen Verbreitung von HTML fielen zunehmend auch die Unzulänglichkeiten der Sprache auf. HTML bietet bei weitem nicht mehr die Leistungsfähigkeit, die SGML besass. So begann 1996 die Entwicklung von XML, die
II
XML - Extensible Markup Language -6-
zumZiel hatte eine vereinfachte Version von SGML zu schaffen ohne dabei die Leistungsfähigkeit von SGML einzubüssen
[Harold/Means 2001, S. 8ff]. Die Version 1.0 von XML wurde am 10. Februar 1998 durch das World Wide Web Consortium (W3C) verabschiedet [W3CX 1998].
2.1.2 XML Allgemein
Die Extensible Markup Language (XML) ist eine Metasprache zur Definition von anwendungsspezifischen Dokumenttypen [Dünhölter 1998, S. 2]. Eine Metasprache ist eine Sprache mit der andere Sprachen definiert werden können. So bildet zum Beispiel die deutsche Grammatik zusammen mit dem deutschen Wörterbuch ein Metasprache für geschriebenes Deutsch [Astra 2002]. Dokumenttypen sind Dokumente die in ihrem Aufbau dem gleichen Grundmuster folgen (zum Beispiel HTML-Dokumente). HTML wurde vom W3C als Dokumenttyp in XML neu formuliert (vgl. dazu [W3CH 2000]).
2.1.3 XML versus HTML
Im Gegensatz zu HTML (Hypertext Markup Language) beschreiben Tags in XML die darin eingeschlossenen Daten und sind nicht nur Formatierungsanweisungen. Um diesen Unterschied deutlich zu machen folgt ein kurzes Beispiel.
In einem HTML-Dokument könnte folgendes stehen:
• Ist es der Preis eines Computersystems?
• Die Postleitzahl von Fribourg?
• Das Geburtsjahr von Daniel Bernoulli?
• Die Anzahl Studenten an der Rechtswissenschaftlichen Fakultät der Universität Zürich?
II
XML - Extensible Markup Language -7-
Eskönnte alles von dem oben genannten sein! Der Tag
Das primäre Ziel von HTML ist die Formatierung eines Dokuments. Inhalt und Form eines Dokuments werden bei HTML nicht getrennt. Doch genau diese Trennung von Inhalt und Form ist ein etabliertes Prinzip in der Druckindustrie [Tidwell 2001, S. 5]. Im Gegensatz zu einem HTML-Dokument enthält ein XML-Dokument keinerlei Formatierungsanweisungen. So könnte der Tag
in XML die Zahl 1700 als Postleitzahl kennzeichnen. Damit wird die Identifikation der inhaltlichen Bedeutung der Zahl 1700 möglich. Die Identifikation der inhaltlichen Bedeutung ist die Voraussetzung für eine maschinelle Weiterverarbeitung der Daten. Durch die Kennzeichnung von Inhalten wird es für Programme wesentlich einfacher Informationen in Dokumenten zu finden. So ist es zum Beispiel sehr einfach den Preis eines Produktes in einem XML-Dokument zu finden, wenn dieser beispielsweise mit einem Tag wie
2.1.4. Aufbau und Syntax eines XML-Dokuments
Im weiteren wird anhand eines Beispiel der Aufbau von XML-Dokumenten erläutert. Abbildung 1 zeigt wie ein XML-Dokument aussehen könnte.
XML - Extensible Markup Language -8-
DerProlog oder die XML-Deklaration hat die Attribute version, encoding und standalone. Version ist die XML Version, auf der das Dokument basiert (der bisher einzige mögliche Wert ist 1.0). Encoding gibt den Zeichensatz an, in dem das XML-Dokument kodiert ist. Die Angabe der Kodierung ist optional. Fehlt sie wird als Kodierung der Unicode-Zeichensatz 1 angenommen. Besitzt das Attribut standalone den Wert „no“, so beruht das XML-Dokument auf einer externen Dokumenttyp-Deklaration (DTD). Die XML-Deklaration muss als erstes im XML-Dokument stehen, es dürfe keine Kommentare oder Steueranweisungen vor ihr auftauchen. Die Dokumenttyp-Deklaration gibt an, dass „Gliederung“ das Wurzelelement des Dokuments ist und dass die Dokumenttyp-Deklaration unter der URL F:\idml\Beispiele\Gliederung2.dtd zu finden ist.
Die Steueranweisung gibt in diesem Fall ein Stylesheet an, mit dem das Dokument in einem Browser dargestellt werden soll.
Ein Element beginnt mit einem Start-Tag (
keinen End-Tag).
1 Unicode ist ein Zeichensatz, der gross genug ist um sämtliche Schriftzeichen aller Sprachen aufzunehmen. Eine genauere Beschreibung findet sich in [Unicode 2002].
II
XML - Extensible Markup Language -9-
EinXML Dokument kann mit Kommentaren versehen werden. Kommentare beginnen mit
. Kommentare dürfen nicht verschachtelt werden und nicht innerhalb eines Tags auftauchen [Harold/Means 2001, S. 14ff]. Entspricht ein XML-Dokument vollständig der Syntax von XML so spricht man von einem wohlgeformten (wellformed) Dokument. 2 XML-Dokumente müssen zwingend wohlgeformt sein.
Ein XML-Dokument mag zwar für einen Menschen lesbar sein, hat aber alleine keine Aussagekraft (für eine Maschine). Eine Maschine benötigt weitere Informationen über die Elemente die in einem XML-Dokument vorkommen. Diese Informationen werden der Maschine durch DTDs geliefert [Schädler 2001]. Das Beispieldokument (gliederung.xml) beruht auf einer DTD, welche im folgenden genauer untersucht werden soll.
2.2 DTD und XMLSchema
In diesem Kapitel sollen zwei grundlegende Mechanismen zur Definition von Dokument-Strukturen vorgestellt werden.
2.2.1 Dokumenttyp-Deklaration (DTD)
Die Dokumenttyp-Deklaration des Beispieldokuments (gliederung.xml) ist in Abbildung 2 dargestellt.
2 Die aufgezählten Syntax-Regeln sind bei weitem nicht vollständig. Eine vollständige Beschreibung der XML-Syntax findet sich in [W3CX 1998].
II
XML - Extensible Markup Language -10-
Ineiner DTD werden alle Elemente deklariert, die in einem XML-Dokument, das sich an diese DTD hält, vorkommen dürfen. Element-Deklartionen besitzen die folgende Grundform:
Das Inhaltsmodell beschreibt, welche Kinder ein Element in welcher Reihenfolge haben kann oder muss [Harold/Means 2001, S. 37]. Die zweite Zeile im Beispiel definiert ein Element mit dem Namen Gliederung, das als Kinderelemente ein oder mehrere Elemente vom Typ Kapitel enthalten kann. Die dritte Zeile gibt an, dass das Element Kapitel genau einen Kapiteltitel und ein oder mehrere Unterkapitel enthält. Die fünf letzten Zeilen definieren die Elemente Abschnittstitel, Kapiteltitel, Unterkapitel und Abschnittstext als "parsed character data" also reinen Text und ein Attribut "AnzahlSeiten" zum Element Kapitel, das optional (implied) ist. Eine ausführliche Beschreibung von DTDs findet sich in [Harold/Means 2001, S. 29ff] oder [W3CX 1998].
2.2.2 XMLSchema
Eine DTD sagt niemals etwas über die Bedeutung oder die erlaubten Werte des Inhalts eines Elements aus [Harold/Means 2001]. DTDs stellen lediglich einen Datentyp bereit (PCDATA, also Text). DTDs waren nur dazu gedacht Texte zu digitalisieren, wozu dieser eine Datentyp auch ausreichend war.
II
XML - Extensible Markup Language -11-
XMLhatte aber einen derartigen Zuspruch erlangt, dass weitaus höhere Anforderungen an die Sprache gestellt wurden als nur Texte zu digitalisieren [Hoven/Liebrecht 2001]. So braucht zum Beispiel eine grössere Datentypvielfalt um Daten zwischen zwei Datenbanken zu transferieren. XMLSchema ist eine Weiterentwicklung von DTDs. In XMLSchema können Datentypen und andere komplexe Strukturen beschrieben werden, die mit DTDs nur schwer oder gar nicht beschrieben werden könnten [Tidwell 2001]. XMLSchema bietet gegenüber DTDs folgende Vorteile: bessere Lesbarkeit (Schemas sind selber XML-Dokumente), Namensräume, die Möglichkeit der objektorientierten
Programmierung (Vererbung), über 40 vordefinierte Datentypen (DTDs besitzen lediglich einen Datenyp) und die Möglichkeit eigene Datentypen genau zu definieren [Schädler 2001].
Ein Schema für das Beispieldokument (gliederung.xml, Abbildung 1 auf Seite 7) könnte wie in Abbildung 3 aussehen.
II
XML - Extensible Markup Language -12-
Daserste Element des Beispielschemas (
In einem Schema werden im wesentlichen folgende Dinge deklariert:
• Die Typen der Elemente, die in einem Dokument vorkommen dürfen.
• Die Attribute, die ein Element haben kann, sowie deren Typen.
• Die Struktur eines auf dem Schema beruhenden Dokuments, d. h. wo und wie oft die einzelnen Elemente im Dokument vorkommen dürfen. In XMLSchema gibt es zwei Arten von Typen: Komplexe Typen (complexType) und einfache Typen (simpleType). Komplexe Typen können Sequenzen (sequence), Elemente, Attribute und einfache Typen enthalten. Einfache Typen können weder Attribute noch Elemente enthalten. Bei einfachen Typen handelt es sich entweder um durch den Standard vordefinierten Typen 3 oder um Erweiterungen (extension) dieser vordefinierten Typen.
Mit den im Rahmen des XMLSchema Standards vordefinierten Datentypen können Werte von Elementen eindeutig definiert werden. So wurde zum Beispiel im oben betrachteten Schema ein Attribut "AnzahlSeiten" zum Element Kapitel definiert, das nur eine Zahl (integer) sein kann.
Ein XML-Parser validiert ein XML-Dokument anhand der DTD oder des Schemas, das im Dokument referenziert ist. Ein XML-Dokument ist gültig (engl.: valid), wenn es keine anderen Elemente und Attribute enthält als in der DTD oder im Schema deklariert sind und wenn die Elemente und Attribute im richtigen, durch DTD/Schema vorgegebenen, Kontext benutzt werden (also zum Beispiel in der richtigen
3 eine Liste aller vordefinierten Typen findet sich in [W3CS 2001].
II
XML - Extensible Markup Language -13-
Reihenfolgeim Dokument auftauchen, richtig geschachtelt sind etc.). Gültigkeit ist im Gegensatz zu Wohlgeformtheit optional [Harold/Means 2001, S. 30].
2.2.3 Namensräume
Namensräume (engl.: namespace) wurden mit XMLSchema eingeführt. Das Konzept von Namensräumen stammt aus der objektorientierten Programmierung. "Ein Namensraum ist ein Mechanismus zum Ausdrücken logischer Gruppierungen." [Stroustrup 2000, S.179]
Namensräume haben in XML zwei Aufgaben: Zwischen Elementen und Attributen mit gleichem Namen zu unterscheiden und die Elemente und Attribute einer XML-Applikation zusammenzufassen [Harold/Means 2001, S. 63]. Eine XML-Applikation (z. B. XHTML oder MathML) ist eine Menge von Tags zur Auszeichnung von Dokumenten eines bestimmten Typs.
Wenn zwei XML-Applikationen Elemente definieren und beide den gleichen Namen für ein Element vergeben kann das zu einem Namenskonflikt führen (z. B. wenn in der einen XML-Applikation auch Elemente aus der anderen XML-Applikation benutzt werden sollen). Um in diesem Fall zwischen zwei Elementen unterscheiden zu können müssen sie unterschiedlichen Namensräumen zugeordnet werden. So enthält zum Beispiel die XML-Applikation RDF (Resource Description Framework, zur Beschreibung von Ressourcen mittels Metadaten) ein Element mit dem Namen "Description" [W3CR 1999]. Möchte man nun in einem XML-Dokument ein weiteres Element mit dem gleichen Namen benutzen (zum Beispiel zur Beschreibung eines Elementes "motorcycle") muss man diese zwei Elemente an zwei unterschiedliche Namensräume binden. Im Beispiel in Abbildung 3 werden die Namensräume mit
xmlns:gliederung="F:\idml\Beispiele\Gliederung.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
attributeFormDefault="unqualified">
gesetzt. targetNamespace ist der Namensraum für die im Schema deklarierten Elemente. Mit xmlns:xs wird die URL des Namensraums von XMLSchema an das Präfix xs gebunden.
II
XML - Extensible Markup Language -14-
EinemElement aus dem Namensraum von XMLSchema, das im Schema Gliederung.xsd verwendet werden soll, wird dann mit
Bisher wurde die Syntax eines XML-Dokuments erläutert und es wurden die zwei grundlegenden Möglichkeiten (DTD und XMLSchema) zur Beschreibung von XML-Applikationen kurz vorgestellt. Dieses Kapitel beschäftigte sich vor allem mit der Struktur eines XML-Dokuments. Das nun folgende Kapitel wird sich mit der Formatierung von XML-Dokumenten befassen.
3. Die Formatierung vom XML-Dokumenten
Im folgenden werden verschiedene Möglichkeiten der Präsentation von XML-Dokumenten beschrieben.
3.1 CSS - Cascading Stylesheet Language
Die bei weitem einfachste und direkteste Möglichkeit XML-Dokumente zu formatieren ist die direkte Darstellung eines mit CSS formatierten XML-Dokuments in einem Browser (z. B. Internet Explorer 6.0). Abbildung 4 zeigt wie ein CSS-Stylesheet für das XML-Dokument aus Abbildung 1 (S. 7) aussehen könnte.
In einem CSS-Stylesheet wird für einzelne Elemente in einem XML-Dokument angegeben, wie sie im Browser dargestellt werden sollen. Auf die einzelnen Stilemente soll nicht näher eingegangen werden. Die Stile gelten auch für die Abkömmlinge der Elemente für die sie vorgegeben wurden, sie bilden sozusagen eine
II
Formatierung vom XML-Dokumenten -15-
Kaskade(daher auch der Name Cascading Stylesheets) [Harold/Means 2001, S. 210]. So kann zum Beispiel die Standard-Schriftart für das darzustellende Dokument in der Stilregel des Wurzelelements (im Beispiel das Element "Gliederung") angegeben werden. Wenn ein Element in einer anderen Schriftart dargestellt werden soll, so wird in der Stilregel des betreffenden Elements diese Schriftart explizit angegeben. Mittels dem obigen Stylesheet formatiert, sieht das Beispieldokument aus Abbildung 1 (S. 7) folgendermassen aus (Internet Explorer 6.0):
Abbildung 5: Darstellung im Browser
Der grösste Nachteil der direkten Darstellung eines XML-Dokuments mittels CSS in einem Browser ist, dass ältere Browser (ohne eingebaute Unterstützung für XML) diese nicht beherrschen. (Internet Explorer beispielsweise erst ab der Version 5.0) Soll ein Dokument im WWW publiziert werden ist diese Lösung nicht praktikabel, da Anwender mit älteren Browserversionen ausgegrenzt würden. Eine Lösung dieses Problems bietet die serverseitige Transformation von XML-Dokumenten in HTML-Dokumente mittels XSLT und die anschliessende Formatierung mit CSS. Desweiteren bietet CSS nur einige Selektoren um Elemente auszuwählen. Diese Selektoren sind aber bei weitem nicht so leistungsfähig wie die XPath-Syntax aus XSLT (siehe weiter unten) [Harold/Means 2001, S. 213].
3.2 XSL - Extensible Stylesheet Language
Die Extensible Stylesheet Language besteht aus zwei XML-Applikationen. XSLT zur Transformation von XML-Dokumenten in eine andere Form (z. B. HTML) und XSL-FO zur eigentlichen Formatierung von XML-Dokmenten.
3.2.1 XSLT - XSL Transformations
II
Formatierung vom XML-Dokumenten -16-
Wiein Kapitel 2.1.4 bereits erwähnt wurde, lässt sich ein XML-Dokument auf eine Baumstruktur abbilden. Die Transformation eines XML-Dokuments ist die Umwandlung eines Quellbaums in einen Ergebnisbaum mittels eines XSLT-Stylesheets. Abbildung 6 zeigt wie ein XSLT-Stylesheet für das Beispieldokument aus Abbildung 1 (S. 7) aussehen könnte.
Ein XSL-Stylesheet ist wie ein Schema ein XML-Dokument. In der ersten Zeile des Beispiels wird der Namensraum für die Elemente von XSL gesetzt, die im weiteren verwendet werden. Das restliche Stylesheet besteht aus einer Reihe von Regeln. Diese Regeln geben an, wie das XML-Dokument, auf das das Stylesheet angewendet wird, in ein anderes Dokument transformiert werden soll. Zur Umwandlung eines XML-Dokuments mittels eines Stylesheets ist ein XSLT-Prozessor notwendig, der die Elemente des Ausgangsdokuments mit den im Stylsheet angegebenen Vorlagen (engl. Templates) vergleicht. Findet der XML-Prozessor ein Template, das auf ein Element passt (engl: match) schreibt er den Inhalt dieses Templates in den Ausgabebaum [Harold/Means 2001, S. 139]. Im Beispiel passt das erste Template (
II
Formatierung vom XML-Dokumenten -17-
ElementeUnterkapitel und Abschnitt wurden im Beispiel der Übersichtlichkeit halber weggelassen. Das vom XSLT-Prozessor ausgegebene HTML-Dokument ist in Abbildung 7 dargestellt.
Das Ergebnis der Transformation ist ein vollständiges HTML-Dokument. Im Stylsheet aus Abbildung 6 werden einige XPath-Ausdrücke verwendet. XPath-Ausdrücke werden in XSLT gebraucht um die jeweils gesuchten Elemente zu identifizieren [Harold/Means 2001, S.139]. Die in Stylesheets am häufigsten verwendeten XPath-Ausdrücke sind Lokalisierungspfade [Tidwell 2001, S. 47]. Der Lokalisierungspfad / wählt den Wurzelknoten des Dokuments (z.B.
II
Formatierung vom XML-Dokumenten -18-
Wurzelelementes"Gliederung" über seinen Namen deswegen, weil der Kontextknoten in diesem Fall der Wurzelknoten ist (der Wurzelknoten wird vom Parser zuerst bearbeitet) und das Wurzelelement "Gliederung" folglich ein Kindelement des Kontextknotens. Mit
[...]
XPath bietet viele weitere Lokalisierungspfade und andere Mechanismen zur Auswahl von Elementen (Prädikate, Wildcards, vgl. dazu [Tidwell 2001, S. 47ff ]).
3.2.2 XSL-FO - XSL Formatting Objects
Eine dritte Möglichkeit der Präsentation von XML-Dokumenten sind XSL Formatting Objects. Ein XML-Dokument wird mit einem XSL-Stylesheet in ein XSL-FO-Dokument umgewandelt und dieses wird anschliessend mit einem Formatierungsprogramm zum Beispiel in ein PDF-Dokument konvertiert [Harold/Means 2001, S. 223ff]. Folgendes Stylesheet (Abbildung 8) könnte benutzt werden um das XML-Dokument aus Abbildung 1 (S. 7) in ein XSL-FO-Dokument umzuwandeln:
II
Formatierung vom XML-Dokumenten -19-
Dasbeim Anwenden dieses Stylesheets erzeugte XSL-FO-Dokument zeigt Abbildung 9.
Ein XSL-FO-Dokument besteht aus zwei Teilen:
• einem Vorspann, der das Layout für die zu füllenden Seiten festlegt (fo:layoutmaster-set)
• dem Inhalt für die Seiten (fo:page-sequence)
Zunächst wird im Beispiel eine einfach Seite definiert (mit fo:layout-master-set), die nur einen Hauptbereich (region-body) enthält. Danach wird mit fo:page-sequence eine Seite erzeugt. Der Text dieser Seite ist alles, was zwischen den Tags
4. Anwendungsbeispiel: Die flexible Darstellung
von IDML-Reporting-Dokumenten
II
Anwendungsbeispiel -20-
Indiesem Kapitel soll (aufbauend auf die in den beiden vorangegangen Kapitel erarbeiteten Grundlagen) gezeigt werden wie IDML-Dokumente mit Hilfe verschiedener XSL-Stylsheets flexibel dargestellt werden können.
4.1 IDML Allgemein
IDML ist eine Initiative zur Schaffung eines Datenaustauschstandards (basierend auf XML) für humanitäre Organisationen. Das Ziel dieser Initiative ist die Schaffung einer Markup Sprache (IDML) zur Vereinfachung des Austausches von Informationen innerhalb humanitärer Organisationen und zwischen humanitären Organisationen, ihren verschiedenen Partnern und der Öffentlichkeit [Bellanet 2002]. Das Schema von IDML definiert eine Struktur für Informationen über humanitäre Projekte [Hüsemann 2001]. IDML stellt eine Menge von Tags bereit, die dazu dienen Dokumente, die Projekte von humantiären Organisationen beschreiben, auszuzeichnen. Auf das Schema und weitere Einzelheiten von IDML soll im Rahmen dieser Arbeit nicht eingegangen werden. Informationen zu IDML finden sich in [IDML 2002], das Schema von IDML ist in [IDMLS 2001] beschrieben.
4.2 IDML-Reporting
IDML-Reporting ist eine Erweiterung von IDML. IDML-Reporting stellt eine Menge von Tags zur Verfügung, die zur Auszeichnung von Projektreports dienen. Das Wurzelelement des Schemas ist reportsAndEvaluations, es ist im Schema wie folgt deklariert [IDMLR 2002]:
II
Anwendungsbeispiel -21-
reportsAndEvaluationsenthält eine Sequenz von reportAndEvaluation-Elementen. Abbildung 10 zeigt die für das weiter unten folgende Beispieldokument relevanten Teile dieses Elementes.
In dieser Abbildung ist nur das Element detailedDescription erweitert worden, sämtliche Elemente die in der Abbildung mit einem +-Symbol versehen sind enthalten selber wieder Elemente. Weiter ist aus der Abbildung ersichtlich wie oft die einzelnen Elemente vorkommen dürfen (beispielsweise steht beim Element relatedDocument in der rechten unteren Ecke "0..∞"). Alle in der Abbildung gestrichelt umrahmten Elemente sind optional, d.h. sie müssen nicht zwingend in einem Dokument vorkommen. Das IDML-Reporting Schema sowie eine Dokumentation dazu finden sich in [IDMLR 2002].
4.3 Formatierung eines IDML-Reporting-Dokuments
Das Beispieldokument, welches im weiteren mit Hilfe von Stylsheets unterschiedlich dargestellt werden soll, ist ein Projektreport über ein Projekt der Weltbank in Bankok. Es folgt ein Auszug aus dem Dokument, die eckigen Klammern kennzeichnen augelassenen Text (der mit den verschiedenen Stylesheets bearbeitete Teil des Dokuments findet sich im Anhang):
Mit einem ersten Beispielstylesheet (Abbildung 11) soll der Text, der im background-Element enthalten ist, in der Schriftart Arial dargestellt werden. Die übrigen Teile des
II
Anwendungsbeispiel -22-
Beispieldokumentswerden nicht in die HTML-Datei, die das Stylesheet erzeugt, aufgenommen.
Der Prolog und die Namensraumdeklarationen wurden im Stylesheet der Übersichtlichkeit halber weggelassen.
Das background-Element wird in dem vorgestellten Stylesheet mit xsl:for-each selektiert. Mit xsl:for-each kann ein Template auf jeden Knoten einer (mit dem select-Attribut) angegebenen Knotenmenge angewendet werden [Harold/Means 2001]. In diesem Fall bewegt sich der Parser durch die geschachtelten xsl:for-each-Anweisungen in der Baumstruktur des XML-Dokuments abwärts bis er auf das background-Element stösst. Auf dieses wird das Template angewendet, d. h. dass der Inhalt des background-Elements mit einen -Tag umschlossen wird, der die Schriftart (Arial) und die Schriftgrösse (small) vorgibt. (der -Tag ist ein CSS-Befehl). Das Stylesheet bewirkt also nichts weiter, als dass das background-Element des Reports formatiert wird. Interessant ist in diesem Fall allerdings auch, was das Stylesheet nicht tut: Das Stylesheet übernimmt nur den Text, der innerhalb der background-Tags steht, in die erzeugte HMTL-Datei. Die übrigen Teile des Reports werden nicht übernommen. Es ist also möglich Informationen, die im ursprünglichen XML-Dokument vorhanden waren, im erzeugten HTML-Dokument "auszublenden". HTML-Dokumente, die mittels eines XSLT-Stylesheets aus XML-
II
Anwendungsbeispiel -23-
Dokumentenerzeugt werden, können folglich nicht nur unterschiedlich formatiert werden, sondern auch unterschiedliche Inhalte haben.
Beispielstylesheet 2 (Abbildung 12) setzt den Inhalt des Namen-Elements als Titel für das erstellte HTML-Dokument, ausserdem setzt es einen Zwischentitel "Background" und unterlegt den Textinhalt des background-Elements mit einer Hintergrundfarbe (silber). Im weiteren werden Schriftarten und -grössen für die einzelnen Elemente vorgegeben.
Die beiden Beispielstylesheets wurden mit dem Tool XML SpyXSLT Designer aus der XML Spy Suite erstellt [XMLSpy 2002]. Abbildung 13 zeigt wie das Beispieldokument mittels Beispielstylesheet 2 in einem Browser dargestellt aussieht.
II
Anwendungsbeispiel -24-
Abbildung13 : Darstellung im Browser
Der "Umweg" über HTML-Dokumente ist zur Zeit für die Präsentation von XML-Dokumenten mit Sicherheit die beste Lösung. Sie erlaubt eine flexiblere Darstellung als die direkte Präsentation von XML-Dokumenten in Browsern mittels CSS. Dabei sei insbesondere auf die Möglichkeit der "Ausblendung" von bestimmten Teilen eines XML-Dokuments (die weiter oben beschrieben wurde) verwiesen. Desweiteren gibt es bei der direkten Präsentation im Browser keine Möglichkeit die Reihenfolge der einzelnen Textelemente zu verändern. Im Gegensatz dazu erlaubt die vorgestellte Lösung eine beliebige Zusammenstellung der im XML-Dokument enthaltenen Informationen. Zwei weitere im Anhang aufgeführte Stylesheets zeigen andere Möglichkeiten zur Formatierung des Beispieldokuments.
II
Schlussbemerkung -25-
5.Schlussbemerkung
Auf den ersten Blick scheint die Umwandlung von XML-Dokumenten in HTML-Dokumente ein Widerspruch zu sein. Das ist aber nicht der Fall. HTML wird in diesem Fall nur als Präsentationsformat gewählt, weil es durch gängige Browser besser unterstütz wird als die direkte Darstellung von XML-Dokumenten. Die Präsentation mittels HTML-Dokumenten macht die Vorteile von XML-Dokumenten nicht zunichte, da die XML-Dokumente als Quelle für die erzeugten HTML-Dokumente dienen. So können die XML-Daten unabhängig davon wie sie präsentiert werden, einfach wiederverwendet und verändert werden. Ändert sich die XML-Quelle können die zur Präsentation erstellten HTML-Dokumente sehr einfach angepasst werden (erneute Erzeugung mittels den dafür geschriebenen Stylesheets). Auch das Aussehen der erzeugten HTML-Dokumente kann auf einfachste Art verändert werden, in dem die Stylesheets angepasst werden mittels derer die HTML-Dokumente erzeugt wurden. HTML-Seiten, die aus XML-Quellen erzeugt wurden, sind also wesentlich einfacher wartbar als direkt erzeugte HTML-Seiten.
XML ist ein mächtiges Instrument zur Präsentation von Informationen auf dem Web. XSLT und XSL-FO bieten eine Vielzahl von Möglichkeiten zur Darstellung von XML-Dokumenten.
Bereits heute setzen viel Software-Entwickler auf XML als offenes Datenaustauschformat (beispielsweise Microsoft mit der .Net-Strategie). XML entwickelt sich mit grosser Dynamik weiter, was an verschiedensten Standards für Erweiterungen der Sprache, die vom W3C verabschiedet wurden, erkennbar ist (XMLQuery, XMLKey Management, XMLEncryption u. a.). Auf die weitere Entwicklung und Verbreitung von XML darf man gespannt sein!
Literatur und Quellen
[Astra 2002] Astra Datentechnik GmbH, IT-Glossar
verfügbar: http://www.astra-gmbh.de/astrawebsite/glossar/glossar.html Zugriffsdatum: 25.03.2002
[Becker 2001] Becker, Oliver: XSL Formatting Objects
verfügbar: www.informatik.hu-berlin.de/~obecker/Lehre/XML-Kurs/xml6.html Zugriffsdatum: 27.03.2002-05-07
[Bellanet 2002] Bellanet: IDML Initiative
verfügbar: http://www.bellanet.org/xml/about.cfm Zugriffsdatum: 03.04.2002
[Bosak/Bray 1999] Bosak, Jon; Bray, Tim: Mehr Tempo auf der Datenautobahn, Spektrum der Wissenschaft, Ausgabe Juli 1999, Seite 74.
[Dünhölter 1998] Dünhölter, Kuno: Das Web automatisieren mit XML. verfügbar: http://members.aol.com/xmldoku/ Zugriffsdatum: 26.03.2002
[FOP 2002] Formating Objects Processor Version 0.20.3, Apache XML Project verfügbar: http://xml.apache.org/fop/index.html Zugriffsdatum: 03.04.2002
[Günther 1997] Günther, Richard: Historische Entwicklung des HTML-Standards verfügbar: http://www.tat.physik.uni-tuebingen.de/~rguenth/html/node9.html Zugriffsdatum: 27.03.2002
[Harold/Means 2001] Harold, Elliott R.; Means, W. Scott: XML in a nutshell, O’Reilly, 1. Aufl., Köln 2001
[Hofmann/Raitelhuber 1998] Hofmann, Thomas; Raitelhuber, Ursula: SGML/XML. verfügbar : http://th-o.de/sgml/sgmlv.htm Zugriffsdatum: 20.03.2002
[Hoven/Liebrecht 2001] Hoven, Philipp; Liebrecht, Mike: DTD & XML-Schema verfügbar: www.uni-paderborn.de/cs/ag-taentzer/Dtdschema.pp Zugriffsdatum: 01.04.2002
[Hüsemann 2001] Hüsemann, Stefan: Einführung in XML, Vorlesungsunterlagen der Vorlesung Informationssysteme A an der Universität Fribourg, 2001
[IDML 2002] IDML Initiative
verfügbar: http://www.idmlinitiative.org/index2.cfm Zugriffsdatum: 03.05.2002
[IDMLR 2002] Reporting Schema for humanitarian Projects
II
verfügbar: http://iiufpc06.unifr.ch/Huesemann/Diss Zugriffsdatum: 15.05.2002 [IDMLS 2001] AIDA IDML Schema version 0.9 - draft verfügbar: http://www.idmlinitiative.org/index2.cfm Zugriffsdatum: 03.05.2002
[Schädler 2001] Schädler, Thomas, XML als Datenaustauschformat, Vorlesungsunterlagen der Vorlesung Informationssysteme A an der Universität Fribourg, 2001
[Stroustrup 2000] Stroustrup, Bjarne: Die C++ Programmiersprache, Addison-Wesley,
4. Aufl., München 2000.
[St. Laurent 1998] St. Laurent, Simon: XML a primer, MIS Press, Foster City 1998
[Tidwell 2001] Tidwell, Doug: XSLT: Mastering XML Transformations, O’Reilly,
1. Aufl., Sebastopol 2001
[Unicode 2002] The Unicode Standard
verfügbar: http://www.unicode.org/ Zugriffsdatum: 09.05.2002
[W3CH 2000] World Wide Web Consortium, XHTML™ 1.0: The Extensible HyperText Markup Language verfügbar: http://www.w3.org/TR/xhtml1/ Zugriffsdatum: 27.03.2002
[W3CP 1999] World Wide Web Consortium, XML Path Language (XPath) verfügbar: http://www.w3.org/TR/xpath Zugriffsdatum: 07.04.2002
[W3CR 1999] World Wide Web Consortium, Resource Description Framework verfügbar: http://www.w3.org/RDF/ Zugriffsdatum: 04.04.2002
[W3CS 2001] World Wide Web Consortium, XML Schema
verfügbar: http://www.w3.org/TR/xmlschema-0 Zugriffsdatum: 30.03.2002
[W3CX 1998] World Wide Web Consortium, Extensible Markup Language 1.0 Recommendation.
verfügbar: http://www.w3.org/TR/1998/REC-xml-19980210 Zugriffsdatum: 26.03.2002
[XMLSpy 2002] XML Spy
verfügbar: http://www.xmlspy.com/ Zugriffsdatum: 15.05.2002
II
Arbeit zitieren:
Dominic Giger, 2002, XSL zur flexiblen Darstellung von XML-Dokumenten, München, GRIN Verlag GmbH
Dieser Text kann über folgende URL aufgerufen und zitiert werden:
Einbetten
DOI
Formatvorlage (Microsoft Word) für eine Diplomarbeit, Masterarbeit, Ha...
Für MS Word 2003 - Update 2010
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 25 Seiten
Formatvorlage (OpenOffice) für eine Diplomarbeit, Masterarbeit, Hausar...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 35 Seiten
Formatvorlage / Vorlage zur Erstellung einer Diplomarbeit, Bachelorarb...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 15 Seiten
Formatvorlage / Vorlage für eine Diplomarbeit / Hausarbeit
Für MS Word 2007 - dotx
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 25 Seiten
Anleitung zum Erstellen schriftlicher Arbeiten: Der Aufbau einer wisse...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 20 Seiten
Erstellen einer schriftlichen Hausarbeit
Vorlagen, Muster, Formulare, Infobroschüren
Hausarbeit, 14 Seiten
Grundtechniken wissenschaftlichen Arbeitens
Bibliografieren - Reden - Schr...
Vorlagen, Muster, Formulare, Infobroschüren
Skript, 46 Seiten
Ratgeber zur Erstellung wissenschaftlicher Arbeiten. Diplomarbeiten - ...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 39 Seiten
Dominic Giger hat den Text XSL zur flexiblen Darstellung von XML-Dokumenten veröffentlicht
Dominic Giger hat einen neuen Text hochgeladen
Design and build complex, data...
Chris Von See, Nitin Kesar, Chris Von See
Essential XML Quick Reference: A Programmer's Reference to XML, Xpath,...
Aaron Skonnard, Martin Gudgin
Beginning XSLT and Xpath: Transforming XML Documents and Data
Transforming XML Documents and...
Ian Williams
0 Kommentare