• Keine Ergebnisse gefunden

([WHQVLEOH6W\OH/DQJXDJH

Im Dokument Dynamische elektronische Bücher (Seite 185-194)

7UDQVIRUPDWLRQXQG3UlVHQWDWLRQYRQ'RNXPHQWHQ

([WHQVLEOH6W\OH/DQJXDJH

HOHPHQW.$3,7(/

OHWNDSLWHOW\SDWWULEXWHVWULQJ´W\S§

LIDQG NDSLWHOW\S

VWULQJ "NDSLWHOW\S´YRUZRUW§

$QZHLVXQJHQIUGLH9HUDUEHLWXQJGHV9RUZRUWV

$QZHLVXQJHQIUGLH9HUDUEHLWXQJDQGHUHU.DSLWHOW\SHQ

&RGHEHLVSLHO %HLVSLHOHLQHU9HUDUEHLWXQJVSUR]HGXULQ'666/

DSSSL ist ein sehr mächtiger Standard, für den bisher nur wenige Softwarewerkzeuge existieren, z. B. die DSSSL-Engine Jade von James CLARK, vgl. http://www.jclark.com/

Jade. Für die Anwendung im Referenzprojekt Multimediales Physikalisches Praktikum kam er aus diesem Grund nicht in Betracht. DSSSL hat aber eine große konzeptuelle Be-deutung als Ausgangspunkt für die Entwicklung von Transformations- und Layoutspra-chen, die im Zusammenhang mit HTML und XML unmittelbar anwendbar sind.

([WHQVLEOH6W\OH/DQJXDJH

Die Ergänzung der logischen Struktur durch Formatierungsanweisungen erreicht man in XML durch die Extensible Style Language (XSL; vgl. ADLER et al. 1997) – im wesentli-chen eine Weiterentwicklung der für HTML gebräuchliwesentli-chen Cascading Style Sheets und damit ein Standard, der es erlaubt, für jedes Element einer XML-DTD Formatierungsan-gaben zu definieren (Schrift; Farbe; Ränder; Einbettung der Funktionalität von Skript-sprachen etc.).

Die Extensible Style Language dient der Definition von style sheets für die Verarbei-tung von XML-Dokumenten und hat wie DSSSL eine Doppelfunktion, wie die Definition von XSL zeigt:

XSL is a Language for expressing stylesheets. It consists of two parts:

a Language for transforming XML documents, and an XML vocabulary for specifying formatting semantics.

An XSL stylesheet specifies the presentation of a class of XML documents by describing how an instance of the class is transformed into an XML document that uses the formatting vocabulary. [DEACH 1999: Abstract].

Um sowohl Dokumenttransformationen (tree transformations) als auch die Doku-mentausgabe (formatting) zu realisieren, verwendet XSL in Anlehnung an DSSSL ein Verarbeitungsmodell, in dem ein Ausgangsbaum (Repräsentation eines XML-Dokuments) unter Anwendung eines XSL-style sheet in einen result tree umgewandelt wird; der result tree wird anschließend formatiert ausgegeben. Die Steuerung des Trans-formationsprozesses erfordert wie bei DSSSL eine Dokumentmanipulationssprache, die für XSL als XSL Transformations (XSL/T, CLARK 1999) definiert ist.

7UDQVIRUPDWLRQHQLQ;6/

XSLT definiert die Generierung des Ausgabebaums als Grundlage der formatierten Aus-gabe. Neben Anweisungen für den Import und die Inklusion von style sheets ([VOLPSRUW KUHI §§!, [VOLQFOXGH §§!) ist für die Festlegung der Dokumentverarbeitung die Defi-nition von templates das wesentliche Element: Ein template enthält eine Musterbeschrei-bung, die bestimmte Teile des Eingabebaums selektiert und gibt für sie Verarbeitungsvor-schriften an. Für den aktuell zu verarbeitenden Knoten (current node) wählt der XSL-Prozessor die passenden templates aus und verarbeitet sie. Für den Abgleich von

tem-.DSLWHO¥7UDQVIRUPDWLRQXQG3UlVHQWDWLRQYRQ'RNXPHQWHQ

plates und Dokumentinhalten werden Muster definiert, die sich der Syntax und der ex-pression language von XPath bedienen (vgl. oben Kap. 5.2.5). Dies zeigen die folgenden Beispiele:

Muster Interpretation

WLWOH Element vom Typ WLWOH

Wurzelelement

>SRVLWLRQ DQG VHOIDEVDW]@

Jedes Element, das den Typ DEVDW] hat und das erste Kindelement seines Elter-nelements ist (der erste DEVDW] innerhalb einer Folge von Absätzen, deren Elter-nelement z. B. NDSLWHO ist)

&RGHEHLVSLHO %HLVSLHOHIU6HOHNWLRQVPXVWHULQ;6/7HPSODWHV

Die so definierten Muster lassen sich mit Pfadangaben bzw. /RFDWLRQ3DWKV kombinieren.

Der Aufbau eines template hat folgende Struktur:

[VOWHPSODWHPDWFK §¨!

9HUDUEHLWXQJVYRUVFKULIWHQ

]%)RUPDWLHUXQJVDQZHLVXQJHQXQWHU9HUZHQGXQJYRQ;6/IRUPDWWLQJREMHFWVVXRGHU H[SOL]LWH'HILQLWLRQGHU$XVJDEH$QZHLVXQJHQ]XU9HUDUEHLWXQJYRQ.LQGHOHPHQWHQ [VOWHPSODWH!!

&RGHEHLVSLHO $XIEDXHLQHV;6/7HPSODWHV

Das nachfolgende Beispiel zeigt die Anwendung eines solchen template. Vorausgesetzt ist ein XML-Text, in dem Zitate durch ein Element ]LWDW! hervorgehoben sind, z. B. IKUW GD]XDXV]LWDW!,QGLHVHU+LQVLFKW]XEHPHUNHQ]LWDW!:LHDXVGHP Um eine geeignete Schriftformatierung für alle Zitate zu erreichen, könnte man folgendes template verwen-den:

[VOWHPSODWHPDWFK §]LWDW§!

IRLQOLQHVHTXHQFHIRQWVW\OH §LWDOLF§!

[VO$SSO\WHPSODWHV!

IRLQOLQHVHTXHQFH!

[VOWHPSODWH!

&RGHEHLVSLHO %HLVSLHOHLQHV;6/7HPSODWHIUGLH6FKULIWIRUPDWLHUXQJ

Das template kennzeichnet alle Elemente des Typs Zitat als ein formatting object des Typs LQOLQHVHTXHQFH mit kursiver Schrift und verarbeitet rekursiv alle Kinder dieser Ele-mente (d. h. alle Knoten, die unterhalb eines ]LWDW-Elements im Eingabebaum hängen).

Die Weiterverarbeitung der Kindelemente durch die XSL-Anweisung DSSO\WHPSODWHV kann mit Auswahlanweisungen (VHOHFW) präzisiert werden. Im folgenden Beispiel werden von einem template alle Elemente vom Typ NDSLWHO verarbeitet, wobei die Weiterverar-beitung der Kindelemente durch ein VHOHFW-Attribut auf Elemente vom Typ DEVDW] einge-schränkt ist:

[VOWHPSODWHPDWFK §NDSLWHO§!

IREORFN!

;VO$SSO\WHPSODWHVVHOHFW §DEVDW]§!

IREORFN!

[VOWHPSODWH!

&RGHEHLVSLHO 6HOHNWLYH9HUDUEHLWXQJYRQ.LQGHOHPHQWHQLQ;6/7HPSODWHV

Ein drittes Beispiel soll nicht die Anwendung von Formatierungsanweisungen, sondern die Umwandlung von Dokumentstrukturen zeigen; ein Anwendungsfall hierfür ist die

7UDQVIRUPDWLRQVXQG/D\RXWVSUDFKHQ

Abbildung einer beliebigen XML-DTD auf XHTML, da ein XHTML-Dokument leichter in einem Webbrowser angezeigt werden kann. Das Beispiel (vereinfacht nach CLARK

1999: Appendix C.1) besteht aus vier Teilen

• Eine DTD für einen einfach strukturierten Bericht,

ein XSL-style sheet zur Transformation dieser DTD,

• das Beispieldokument für die Bericht-DTD und

XHTML-Output nach den Vorgaben des style sheet.

(/(0(17EHULFKWWLWHONDSLWHO!

(/(0(17WLWHO3&'$7$!

(/(0(17NDSLWHOWLWHODEVDW]!

(/(0(17DEVDW]3&'$7$!

&RGHEHLVSLHO %HLVSLHO'7'IUGLH$QZHQGXQJHLQHV;6/VW\OHVKHHW

Die Umwandlung in XHTML soll mit dem nachfolgenden style sheet generiert werden.

Durch namespace-Anweisungen ist festgelegt, dass der default namespace der Namens-raum von XHTML ist; der XSL-NamensNamens-raum ist zusätzlich ([POQV[VO ) inkludiert:

[VOVW\OHVKHHW [POQV[VO ¨KWWSZZZZRUJ;6/7UDQVIRUP¨

[POQV ¨KWWSZZZZRUJ75[KWPO¨!

[VOVWULSVSDFHPHWKRG ¨[PO¨HOHPHQWV ¨EHULFKWNDSLWHODEVDW]¨!

[VORXWSXWPHWKRG ¨[PO¨LQGHQW ¨\HV¨!

[VOWHPSODWHPDWFK ¨EHULFKW¨!

KWPO!

KHDG!

WLWOH!

[VOYDOXHRIVHOHFW ¨WLWHO¨!

WLWOH!

KHDG!

ERG\!

[VO$SSO\WHPSODWHV!

ERG\!

KWPO!

[VOWHPSODWH!

[VOWHPSODWHPDWFK ¨EHULFKWWLWHO¨!

K![VO$SSO\WHPSODWHV!

[VOWHPSODWH!K!

[VOWHPSODWHPDWFK ¨NDSLWHOWLWHO¨!

K![VO$SSO\WHPSODWHV!

[VOWHPSODWH!K!

[VOWHPSODWHPDWFK ¨DEVDW]¨!

S![VO$SSO\WHPSODWHV!

[VOWHPSODWH!S!

&RGHEHLVSLHO ;6/VW\OHVKHHWIUGLHhEHUVHW]XQJHLQHU;0/'7'QDFK;+70/

.DSLWHO¥7UDQVIRUPDWLRQXQG3UlVHQWDWLRQYRQ'RNXPHQWHQ

Das style sheet gibt für die verschiedenen Elemente der DTD an, welche korrelierenden Elemente der Ziel-DTD zu erzeugen sind; die Inhalte (Kindelemente) der Elemente wer-den durch die DSSO\WHPSODWHV-Anweisung verarbeitet. Bei Überschriften (Ausgangs-DTD:

WLWHO) wird durch je ein template unterschieden, ob es sich um Überschriften erster oder zweiter Ordnung handelt; die entsprechende XHTML-Marke wird generiert. Das style sheet soll auf das nachfolgende Beispiel angewandt werden:

'2&7<3(EHULFKW6<67(0§EHULFKWGWG¨!

EHULFKW!

WLWHO!+XDSW XXPOEHUVFKULIWWLWHO!

NDSLWHO!

WLWHO!(UVWHV.DSLWHOWLWHO!

DEVDW]!(UVWHU$EVDW]DEVDW]!

DEVDW]!=ZHLWHU$EVDW]DEVDW]!

NDSLWHO!

NDSLWHO!

WLWHO!=ZHLWHV.DSLWHOWLWHO!

DEVDW]!(UVWHU$EVDW]DEVDW]!

DEVDW]!=ZHLWHU$EVDW]DEVDW]!

NDSLWHO!

EHULFKW!

&RGHEHLVSLHO $XVJDQJVGRNXPHQWIUGLHhEHUVHW]XQJQDFK;+70/

Als Ausgabe erzeugt der XSL-Prozessor folgendes XHTML-Dokument:

KWPO[POQV ¨KWWSZZZZRUJ75[KWPO¨!

KHDG!

WLWOH!+DXSW XXPOEHUVFKULIWWLWOH!

KHDG!

ERG\!

K!+DXSW XXPOEHUVFKULIWK!

K!(UVWHV.DSLWHOK!

S!(UVWHU$EVDW]S!

S!=ZHLWHU$EVDW]S!

K!=ZHLWHV.DSLWHOK!

S!(UVWHU$EVDW]S!

S!=ZHLWHU$EVDW]S!

ERG\!

KWPO!

&RGHEHLVSLHO $XVJDEHGRNXPHQWLQ;+70/

Im Beispiel wird dasjenige WLWHO-Element, das unmittelbarer Nachfolger des Wurzelele-ments EHULFKW ist, zweifach verarbeitet: Im ersten template, um als WLWOH-Element des Do-kumentkopfs ausgegeben zu werden, im zweiten template, wo es zur Generierung einer Überschrift erster Ordnung im Dokumentrumpf verarbeitet wird.

Das Beispiel zeigt die Semantik der Auswertung von templates: Ist in einem template ein Element enthalten, das nicht dem XSL-Namensraum angehört, so wird aus ihm ein gleichnamiges Element erzeugt, d. h. für die ERG\-Marke des ersten template in Codebeispiel 55 wird in der Ausgabe ebenfalls eine ERG\-Marke erzeugt (literal result element).91 In den templates können zusätzlich Variablen und Parameter eingesetzt wer-den: Variablenvereinbarungen lassen sich wie folgt treffen:

91 Strukturbestandteile eines XML-Dokuments (Elemente, Attribute etc.) können in einem tem-plate durch xsl-Anweisungen errechnet werden, vgl. CLARK 1999: Kap. 7.1.2 ff.

7UDQVIRUPDWLRQVXQG/D\RXWVSUDFKHQ

[VOYDULDEOHQDPH §QDPHBGHUBYDULDEOH§VHOHFW ¨ :HUWBGHUB9DULDEOH¨!

&RGHEHLVSLHO 9DULDEOHQYHUHLQEDUXQJLQ;6/

Den Einsatz von Variablen zeigt das folgende Beispiel, in dem Attributwerte für die Aus-gabe aus XSL-Variablen ermittelt werden. Die XSL-Variablen werden aus den Daten des Eingabedokuments errechnet:

(LQJDEHGRNXPHQW!

DEELOGXQJ!

KUHI!GLDJUDPPBIDGHQSHQGHOJLIKUHI!

JURHVVHKRHKH ¨¨EUHLWH ¨¨!

DEELOGXQJ!

VW\OHVKHHW!

[VOYDULDEOHQDPH ¨DELOGXQJHQ¨!PXPHGELOGHU[VOYDULDEOH!

[VOWHPSODWHPDWFK ¨DEELOGXQJ¨!

LPJVUF ¨^DEELOGXQJHQ`^KUHI`¨ZLGWK ¨^JURHVVH#EUHLWH`¨KHLJWK ¨^JURHVVH#KRHKH`¨!

[VOWHPSODWH!

$XVJDEHGRNXPHQW!

LPJVUF ¨PXPHGELOGHUGLDJUDPPBIDGHQSHQGHOJLI¨ZLGWK ¨¨KHLJWK ¨¨!

&RGHEHLVSLHO 9HUZHQGXQJYRQ9DULDEOHQXQG=XJULIIDXI$WWULEXWHXQG$WWULEXWZHUWHLQ;6/

Die Ausdrücke für den Zugriff auf Attribute sind in geschweifte Klammern gefasst, Attri-butnamen werden direkt verwendet, Attributwerte durch ein vorangestelltes # angespro-chen, Variablen durch vorangestelltes -Zeichen. Durch die Konstrukte [VOSDUDP ! bzw. [VOZLWKSDUDP! lassen sich Parameter definieren und an templates übergeben (z.

B. um ein Aufzählungsformat festzulegen).

)RUPDWLHUXQJLQ;6/

Hinsichtlich der Dokumentformatierung sind in XSL in Weiterführung von CSS Vorgaben für alle wesentlichen Aspekte der Präsentation vorgesehen (vgl. die Übersicht der XSL Requirements bei WALSH 1999):

• Allgemeine Formatierung (Positionierung, Ausrichtung, typographische Gestaltung, Seitenaufteilung, Paginierung, Animation/eingebettete Objekte, Tabellensatz, Seiten-umbruch und Spaltensatz etc.),

• Verwendung von Farben und Schriften,

• Verwendung unterschiedlicher Schrift- und Schreibsysteme,

• Einbettung ausführbarer Skripte und Interaktivität von Dokumenten (Ereignis- und Formularverarbeitung) und

• Erweiterbarkeit, Modularität und Einbettung von Metainformation zum Formatie-rungsprozess.

Die Semantik der Formatierung wird in einem style sheet durch die Verwendung vordefi-nierter formatting objects (FO) kodiert. Der umfangreiche Katalog von XSL-FOs ist weitgehend mit den in CSS definierten Formatierungskonstrukten identisch. Im zweiten Subprozess von XSL werden die Bestandteile des zunächst erstellten result trees als In-stanzen dieser formatting objects für die Ausgabe interpretiert. Die Repräsentation eines formatting object erfolgt als XML-Element mit assoziierter Attribut-Wert-Liste. Das Formatierungsmodell geht von rechteckigen Flächen zw. Abständen (spaces) aus, aus denen sich durch DUHDFRQWDLQHU, EORFNDUHD, OLQHDUHD und LQOLQHDUHD vier unterschiedliche

.DSLWHO¥7UDQVIRUPDWLRQXQG3UlVHQWDWLRQYRQ'RNXPHQWHQ

Subtypen von Ausgabeflächen beschreiben lassen. XSL definiert auf der Basis dieses Modells, wie ein bestimmtes formatting object dargestellt werden soll. Dazu ist für jedes formatting object festgelegt, wie es verwendet werden soll, welche Attribute für das for-matting object angewandt werden können (z. B. Farbe, Schrift) und welche Ausgabe ggf.

generiert wird.92 XSL unterscheidet folgende Typen von formatting objects:

Layout und Paginierung: formatting objects für die Definition des Seitenlayouts (IRSDJHPDVWHU) bzw. von Seitensequenzen93 (IRSDJHVHTXHQFH),

• FOs für die Definition von Regionen innerhalb einer Ausgabeeinheit (Seite), z. B.

IRUHJLRQVWDUW, IRUHJLRQEHIRUH und IRUHJLRQERG\,

‡ FOs für die Bindung von Folgen formatierter Inhalte auf Blockebene an Ausgabere-gionen (IRVWDWLFFRQWHQW, IRIORZ),

FOs für die Formatierung auf Absatzebene (block), z. B. IRGLVSOD\JUDSKLF,

FOs für inline-Elemente wie Graphiken im Fließtext, (Einzel-)Zeichen oder eingebet-tete Container (IRFKDUDFWHU, IRLQOLQHJUDSKLF, IRLQOLQHLQFOXGHGFRQWDLQHU).

FOs für Listen, Tabellen und Elemente ohne feste Positionierung (Fußnoten, floating graphics etc.) wie IRWDEOH, IRWDEOHURZ, IROLVWEORFN, IROLVWLWHP, IRIRRWQRWH, IRIORDW und

• FOs für die Formatierung von Hypertextverknüpfungen und interaktiven Auswahl-möglichkeiten wie IROLQN, IRPXOWLFDVH und IRPXOWLWRJJOH.

Für jedes Formatierungsobjekt ist festgelegt, welche Attribute es tragen kann, z. B. kann man einem IREORFN u. a. folgende Attribute zuweisen:

• Allgemeine Attribute zur Positionierung wie SRVLWLRQ, WRS, ULJKW, ERWWRP, OHIW,

• Eigenschaften bezüglich Rand- und Hintergrundformatierung wie EDFNJURXQG, ERUGHU und SDGGLQJ oder

• Schriftformatierung (IRQW, IRQWIDPLO\, IRQWZHLJKW etc.).

$QZHQGXQJXQG(LQRUGQXQJYRQ;6/

Im Rahmen einer XML-basierten Prozesskette für die Erstellung und Präsentation elek-tronischer Bücher spielt die Anwendung von XSL auf mehreren Ebenen eine Rolle:

• XML-Dokumente können nur präsentiert werden, wenn Präsentationsanweisungen – XSL-style sheets – definiert sind, die die XML-DTDs interpretieren können; abgese-hen von Anwendungen, die für genau eine XML-DTD entwickelt werden, ist XSL somit eine notwendige Voraussetzung für den Einsatz von XML.

Der tree transformation process von XSL eignet sich für die Zusammenführung und Präsentation von Dokumenten, die auf der Basis unterschiedlicher DTDs aufgebaut sind oder aus heterogenen Quellen zusammengeführt werden müssen.

• Eine Überführung in standardisierte Formate wie HTML oder XHTML ist mit XSL ohne weiteres möglich. Dies gilt nicht nur für textorientierte Datenformate: XML-kodierte Datensätze, die aus einer Datenbank selektiert oder durch eine Simulation

92 Bei „logischen“ formatting objects wie z. B. IRUHJLRQVWDUW wird lediglich der Beginn eines IRUHJLRQERG\-Bereichs definiert; daher sind mit einem UHJLRQVWDUW keine spezifischen Inhalte assoziiert.

93 Die Einführung seitenorientierter Layoutelemente ist ein wesentlicher Unterschied zwischen CSS und XSL, der für den im Referenzprojekt definierten Buchviewer anwendbar ist und „tra-ditionelle“ Konzepte des Buchsatzes verfügbar macht: Die vom Inhalt weitgehend unabhängige Aufteilung von Dokumenten in Präsentationseinheiten.

&DVFDGLQJ6W\OH6KHHWV

zeugt werden, können durch eine XSL-Transformation in deklarative Graphikformate umgewandelt werden, die dann ein entsprechender Viewer formatiert und anzeigt.94 Obwohl die Spezifikationen für XSL und XSLT jüngeren Datums sind,95 existiert anders als für DSSSL bereits eine recht vielfältige Auswahl von XSL-Prozessoren:

die Lotus XSL-Engine (http://www.alphaworks.ibm.com/tech/lotusxsl),

der XSLT-Prozessor XT von James Clark (http://www.jclark.xom/XT),

• der XSL:P-Prozessor, der im Rahmen der Apache-Serverwerweiterung Cocoon einge-setzt wird (vgl. http://www.clc-marketing.com/xslp/).

Dabei ist es für den Benutzer unwichtig, ob ein XSL-Prozessor auf der Serverseite inte-griert ist und einen XML-Datenstrom vor der Anzeige in einem Webbrowser in HTML/XHTML umwandelt, oder ob der XSL-Prozessor Bestandteil des Browsers ist.

&DVFDGLQJ6W\OH6KHHWV

Ein dritter Standard, der die Präsentationsspezifikation in HTML regelt, sind Cascading Style Sheets (CSS). Anders als XSL und DSSSL sind sie an eine bestimmte DTD gebun-den und enthalten keine Spezifikation eines Transformationsprozesses. Es handelt sich um einfache Stilspezifikationen, in denen für die verschiedenen Elemente der HTML-DTD Layoutattribute festgelegt werden können. Die style sheets sind kaskadierend, da mehr als nur ein style sheet für ein Dokument gültig sein kann und sich style sheets ge-genseitig überlagern können. Damit wird es dem Leser ermöglicht, durch eigene Layout-vorgaben style sheets der Autorenseite zu überschreiben. Gewichtungs- und Auswer-tungsregeln legen die endgültige Auswahl einer Stilvorgabe fest.

CSS definiert ein Formatierungsmodell, das von DSSSL abgeleitet ist und Grundlage für XSL ist; die Layoutattribute bilden eine Untermenge der in XSL verfügbaren format-ting objects. Der Kern der CSS-Funktionalität ist in der Spezifikation für CSS level 1 (LIE

& BOS 1999) definiert; CSS level 2 (BOS et al. 1998) erweitert und generalisiert die Mög-lichkeiten von CSS1 für zusätzliche Ausgabegeräte, z. B. die Sprachausgabe für in HTML und CSS kodierte Dokumente. Eine Erweiterung zu CSS level 3 ist in Vorberei-tung und wird CSS v. a. um die Spezifikation verschiedener Typen von Benutzerschnitt-stellen bzw. die Integration interaktiven Verhaltens (Ereignisverarbeitung; Einbettung von Skripten) in HTML-Dokumente durch CSS-Formatierungsanweisungen ergänzen (vgl.

APPARAO, GLAZMAN & WILSON 1999; ÇELIK, LINSS & KUWAMOTO 1999).

CSS unterscheidet sich von XSL nicht nur hinsichtlich des eingeschränkten Anwen-dungsbereichs, sondern auch in seiner mehr an DSSSL orientierten Syntax; die Zuwei-sungen von Stilspezifikationen zu Elementen der HTML-DTD erfolgt in einem cascading style sheet nach folgendem Muster:

(OHPHQWQDPHQ^ )RUPDWDWWULEXW$WWULEXWZHUW )RUPDWDWWULEXW$WWULEXWZHUW )RUPDWDWWULEXW1$WWULEXWZHUW1

`

&RGHEHLVSLHO 6FKHPDWLVFKHU$XIEDXHLQHVFDVFDGLQJVW\OHVKHHW

94 Dabei ist vor allem an die XML-basierte Spezifikation der scalable vector graphics (SVG) zu denken, vgl. Clark 1999: Appendix 3.2 und FERRAIOLO 1999.

95 Der erste Entwurf für XSL stammt aus dem Jahr 1997; die Aufteilung bzw. Ergänzung durch XSL/T von Mitte 1999, vgl. ADLER 1997, DEACH 1999, CLARK 1999.

.DSLWHO¥7UDQVIRUPDWLRQXQG3UlVHQWDWLRQYRQ'RNXPHQWHQ

Das nachfolgende Beispiel zeigt ein einfaches style sheet, das im Rahmen des Referenz-projekts für die Layoutkodierung eingesetzt wird:

ERG\ ^ IRQWIDPLO\$ULDO IRQWVW\OHQRUPDO FRORUEODFN IRQWVL]HSW S `^ IRQWVL]HSW`

K ^ FRORUEODFN IRQWVL]HSW K `^ FRORUUHG

IRQWVL]HSW K `^ IRQWVL]HSW`

K ^ IRQWVW\OHEROG FRORUEODFN IRQWVL]HSW`

K ^ FRORUUHG IRQWVL]HSW D `^ WH[WGHFRUDWLRQQRQH

FRORUJUHHQIRQWVL]HSW HP ^ FRORU ``

FRGH ^ FRORUEOXH IRQWVW\OHLWDOLF

`

&RGHEHLVSLHO %HLVSLHOHLQHV&DVFDGLQJ6W\OH6KHHW

Bei der Auswertung des style sheet gelten Vererbungsregeln, die bestimmen, dass Kinde-lemente Eigenschaften ihrer ElterneKinde-lemente übernehmen, soweit sie das jeweilige Attri-but nicht explizit überschreiben. Die Integration der Formatanweisungen bei der Darstel-lung eines HTML-Dokuments erfolgt auf eine der folgenden Arten:

durch eine separate style sheet-Datei, die über ein OLQN-Element im Kopf der HTML-Datei referenziert wird,

• über explizite VW\OH-Elemente im Dokumentkopf,

• durch eine CSS-#LPSRUW-Anweisung, die ebenfalls eine externe style sheet-Datei lädt oder

• elementweise als VW\OH-Attribut einzelner HTML-Marken.

Die Anwendung zeigt exemplarisch der nachfolgende Codeausschnitt aus einem HTML-Dokument:

KWPO!

KHDG!

(LQELQGXQJHLQHVVW\OHVKHHWGXUFKHLQOLQN(OHPHQW!

OLQNUHO VW\OHVKHHWW\SH WH[WFVVKUHI EDVLFFVVWLWOH VW\OH!

([SOL]LWHVW\OH(OHPHQWHXQG(LQELQGXQJGXUFK#LPSRUW$QZHLVXQJ!

VW\OHW\SH WH[WFVVWLWOH VW\OH!

(0^FRORUEOXH`

#LPSRUWXUOEDVLFFVV VW\OH!

KHDG!

&DVFDGLQJ6W\OH6KHHWV

ERG\!

K!&66(LQELQGXQJK!

S! 'HUHP!KHUYRUJHKREHQH7H[WLVWEODXJHI DXPOUEWHP!ZHQQQLFKWH[SOL]LW HPVW\OH FRORUSLQN!SLQNDOV6WLOLPHP(OHPHQWDQJHJHEHQZLUGHP!

ERG\!S!

KWPO!

&RGHEHLVSLHO (LQELQGXQJYRQ&666WLODQJDEHQLQ+70/'RNXPHQWHQ

Die Vorteile von CSS – einfache Syntax, zahlreiche Formatierungsmerkmale und weit verbreitete Implementierungen in HTML-Browsern – lassen diesen Standard in der Kom-bination mit XSL als einen sinnvollen Bestandteil einer Prozesskette für die Produktion dynamischer elektronischer Bücher erscheinen: Ausgehend von XML-Dokumenten kann XSL genutzt werden, um diese Dokumente nach HTML/CSS zu konvertieren und an-schließend zu präsentieren. Im einfachsten Fall erfordert dies, anders als eine rein XSL-basierte Lösung, keine Erweiterung der Funktionalität des WWW-Clients, da der Daten-strom, der vom Server geladen wird, bereits nach HTML/CSS umgewandelt ist. Andere Lösungen (s. o. Kap. 7.1.2.3 zu XSL-Werkzeugen) wie die Kombination von XML-Dokumenten mit CSS benötigen auf dem Client zusätzliche Module (einen XSL-Prozes-sor, vgl. LIE 1998).

Im Dokument Dynamische elektronische Bücher (Seite 185-194)