XSL-FO in der Praxis XML-Verarbeitung für PDF und Druck

Größe: px
Ab Seite anzeigen:

Download "XSL-FO in der Praxis XML-Verarbeitung für PDF und Druck"

Transkript

1 Manuel Montero Pineda Manfred Krüger XSL-FO in der Praxis XML-Verarbeitung für PDF und Druck

2 Manuel Montero Pineda MID/Information Logistics Schulstraße St. Leon-Rot manuel.montero@mid-heidelberg.de Manfred Krüger MID/Information Logistics Schulstraße St. Leon-Rot manfred.krueger@mid-heidelberg.de Lektorat: René Schönfeldt Copy-Editing: Annette Schwarz, Ditzingen Herstellung: Birgit Dinter Umschlaggestaltung: Helmut Kraus, Düsseldorf Satz und Umbruch: Durch die Autoren mit dem XSL-Formatter von Antenna House Druck und Bindung: Koninklijke Wöhrmann B.V., Zutphen, Niederlande Bibliografische Information Der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über < abrufbar. ISBN Auflage 2004 Copyright 2004 dpunkt.verlag GmbH Ringstraße 19 B Heidelberg Die vorliegende Publikation ist urheberrechtlich geschützt. Alle Rechte vorbehalten. Die Verwendung der Texte und Abbildungen, auch auszugsweise, ist ohne die schriftliche Zustimmung des Verlags urheberrechtswidrig und daher strafbar. Dies gilt insbesondere für die Vervielfältigung, Übersetzung oder die Verwendung in elektronischen Systemen. Es wird darauf hingewiesen, dass die im Buch verwendeten Soft- und Hardware-Bezeichnungen sowie Markennamen und Produktbezeichnungen der jeweiligen Firmen im Allgemeinen warenzeichen-, marken- oder patentrechtlichem Schutz unterliegen. Alle Angaben und Programme in diesem Buch wurden mit größter Sorgfalt kontrolliert. Weder Autoren noch Verlag können jedoch für Schäden haftbar gemacht werden, die in Zusammenhang mit der Verwendung dieses Buches stehen

3 xi Inhaltsverzeichnis Vorwort I. Grundlagen 1 XSL Was? Wozu? Warum? XSL Was verbirgt sich dahinter? XSL Wozu eignet es sich? XSL Warum sollte man es anderen Konzepten vorziehen? XSL-FO Der Verarbeitungsprozess Das XML-Ausgangsdokument und das XSL-Stylesheet Die Verarbeitung mit einem XSLT-Prozessor und das XSL-FO- Dokument Die Verarbeitung mit dem XSL-Formatierer und das gestaltete Ergebnis Mögliche Nachverarbeitungen und Ausgaben Die Verarbeitung mit anderen Mitteln als einem XSL- Formatierer XSLT Einführung in die Transformationssprache XSLT-Prozessoren und Hilfsmittel Schnellstart Das Output-Element Template-Regeln Auf Knotenwerte zugreifen Schleifen Bedingungen Sortierung

4 xii Inhaltsverzeichnis 3.9 Nummerierung Variablen und Parameter Modularisierung XPath Einführung in die Technik des Zugriffs auf die XML-Strukturen Die Knotentypen Die Achsen Die Adressierung Die XPath-Prädikate und -Funktionen XSL-Funktionen generate-id() unparsed-entity-uri() count() position() last() number() sum() not() XSL-FO Einführung in die Sprache für Seitengestaltung und Umbruch Schnellstart Das Seiten-Layout Blöcke Rahmen, Ränder, Abstände und Co Inzeilige Formatierung Typografische Mittel Listen, Aufzählungen und Beschreibungslisten Fußnoten Grafiken Tabellen Das Float-Konzept Querverweise/Hyperlinks

5 Inhaltsverzeichnis xiii II. Anwendungen 7 Das Konzept für die Dokumenttypdefinition (DTD) Die Struktur für Beiträge Die Struktur für zeitschriftenartige Publikationen Die Struktur für buchartige Publikationen Die Struktur für Teil-Aktualisierungen von buchartigen Publikationen Die Struktur für die Titeleien Die Struktur für die Teile von Publikationen Die Struktur von Anhängen Arbeiten mit dem XSL-Formatter von Antenna House Herunterladen der Software und Installation Die Benutzeroberfläche des XSL-Formatter Ein XSL-FO-Stylesheet für den Beginn Anwendungsbeispiele Attribute-Bündelungen Einsatz von typografischen Mitteln Textblöcke Silbentrennung Einfache Überschriften Überschriften mit einfachen Nummerierungen Überschriften mit komplexen Nummerierungen Zwischenüberschriften Lebende Kolumnentitel Kopf- und Fußbereich Fußnoten Listen und Aufzählungen Tabellenkonzepte Einfache Tabellen Komplexe Tabellen Grafiken und Bilder

6 xiv Inhaltsverzeichnis Wasserzeichen und Hintergrundbilder Externe Verweise Interne Verweise als Hyperlinks Interne Verweise im Druck Inhaltsverzeichnisse Lesezeichen in PDF-Dokumenten Register Seiten- und einfache Seitenfolgen-Vorlagen Komplexe Seitenfolgen-Vorlagen Mehrspaltige Seiten mit Spaltenlinien III. Referenz 11 XSLT-Elemente und XSLT-Funktionen XSLT-Elemente XSLT-Funktionen XPath XPath-Achsen Knotentests XPath-Funktionen XSL-FO-Elemente und -Attribute XSL-FO-Elemente XSL-FO-Attribute DTD-Dokumentationen *** 14.1 Verlag-eXPeD-Beitrag.DTD... *** 14.2 Verlag-eXPeD-LB-Werk.DTD... *** 15 Unterstützung von XSL-FO in Produkten *** 16 Weitere Literatur und Materalien *** Stichwortverzeichnis ***

7 9 2. XSL-FO Der Verarbeitungsprozess Wie läuft die Verarbeitung von XML-strukturierten Dokumenten mit dem Konzept von XSL ab? Dies soll im Folgenden beschrieben, anhand der folgenden Grafik veranschaulicht und mit einem Beispiel demonstriert werden. Dieses Beispiel soll die charakteristischen Merkmale der Verarbeitung mit XSL-FO zeigen. Es ist deshalb auch etwas umfangreicher als das übliche Hallo Welt -Beispiel. Abb. 2-1 Der Verarbeitungsprozess Grundsätzlich: Die Verarbeitung erfolgt für ein ganzes XML-Dokument in mehreren Stufen ohne jede Rückkopplungsmöglichkeit, also partielle Autor: Manfred Krüger

8 10 2. XSL-FO Der Verarbeitungsprozess Wiederholung einzelner Prozessschritte oder interaktive, korrigierende Eingriffe, eben vollständig automatisiert. 2.1 Das XML-Ausgangsdokument und das XSL- Stylesheet XML-Ausgangsdokumente können DTD- oder Schema-kontrolliert, aber auch einfach wohlgeformt sein. Das wohlgeformte Demonstrations-XML-Dokument: <?xml version="1.0" encoding="utf-8"?> <Werk> <Titelei> <Titelseite>XSL-FO in der Praxis</Titelseite> <Beitrag> <Titel>Vorwort</Titel> <A>Dies ist der Inhalt des Vorwortes.</A> </Beitrag> </Titelei> <Teil> <Titel>Grundlagen</Titel> <Beitrag> <Titel>Einführung in XSL-FO</Titel> <A>Dies ist der Inhalt der Einführung.</A> </Beitrag> <Beitrag> <Titel>Die Sprache von XSL-FO</Titel> <A>Dies ist die Beschreibung der Sprache.</A> </Beitrag> </Teil> <Teil> <Titel>Anwendung</Titel> <Beitrag> <Titel>Seitenaufbau und -folge</titel> <A>So beschreibt man den Seitenaufbau und die Seitenfolge.</A> </Beitrag> </Teil> </Werk> Die Spezifikationen für die Verarbeitung dieses XML-Dokuments werden in einem weiteren XML-Dokument (wohlgeformt), einem XSL-Stylesheet, formuliert. Das folgende Demonstrations-Stylesheet soll die Potenziale von XSL-FO in einer vereinfachten Form beinhalten. Sie sind so weit ausgeführt, wie es für die Verständlichkeit des Ablaufs der Verarbeitung notwendig ist. Die technischen Einzelheiten der Spezifikationen werden in den Anwendungskapiteln behandelt, sie brauchen also nicht aus diesem Beispiel gelernt zu werden.

9 2.1 Das XML-Ausgangsdokument und das XSL-Stylesheet 11 Das XSL-Stylesheet für die Verarbeitung des Demonstrations-XML- Dokuments (Erläuterungen s. u.): <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:fo=" Format" xmlns:xsl=" <xsl:output method="xml" version="1.0"/> <xsl:template match="werk"> <fo:root> <fo:layout-master-set> <fo:simple-page-master margin="5mm 5mm 10mm 5mm" pageheight="170mm" page-width="120mm" master-name="seiteallgemein"> <fo:region-body margin="10mm 0mm 10mm 0mm" /> <fo:region-before border-after-style="solid" borderwidth="1pt" extent="5mm" display-align="before" /> <fo:region-after border-before-style="solid" borderwidth="1pt" extent="5mm" display-align="after" /> </fo:simple-page-master> </fo:layout-master-set> <fo:page-sequence master-reference="seite-allgemein"> <fo:static-content flow-name="xsl-region-before"> <fo:block font-size="8pt">kopfbereich:</fo:block> </fo:static-content> <fo:static-content flow-name="xsl-region-after"> <fo:block font-size="8pt">fußbereich:</fo:block> </fo:static-content> <fo:flow flow-name="xsl-region-body"> <xsl:apply-templates select="titelei"/> <fo:block font-size="10pt" font-weight="bold" marginleft="35mm" space-before="4mm">inhaltsverzeichnis </fo:block> <xsl:for-each select="teil/beitrag"> <fo:block margin-left="35mm"><xsl:value-of select="titel"/> </fo:block> </xsl:for-each> <xsl:apply-templates select="teil"/> ➐ </fo:flow> </fo:page-sequence> </fo:root> </xsl:template> <xsl:template match="titelei"> ➒ <xsl:apply-templates/> ➓ </xsl:template> <xsl:template match="titelseite"> ➒ <fo:block font-size="8pt">werktitel:</fo:block> <fo:block font-size="16pt" font-weight="bold" text-align="left" margin-left="35mm" space-after="10mm"> <xsl:apply-templates/> ➓ </fo:block> <fo:block>vorwort - Inhaltsverzeichnis:</fo:block> ➊ ➋ ➌ ➍ ➎ ➏ ➐ ➑

10 12 2. XSL-FO Der Verarbeitungsprozess </xsl:template> <xsl:template match="teil/titel"> <fo:block font-size="8pt">teil:</fo:block> <fo:block font-size="12pt" font-weight="bold" margin-left="35mm"> <xsl:apply-templates /> </fo:block> </xsl:template> <xsl:template match="beitrag/titel"> <fo:block font-size="10pt" font-weight="bold" margin-left="35mm" space-before="4mm"> <xsl:apply-templates /> </fo:block> </xsl:template> <xsl:template match="a"> <fo:block text-align="left" margin-left="35mm" space-after="4pt"> <xsl:apply-templates/> </fo:block> </xsl:template> </xsl:stylesheet> ➒ ➓ ➒ ➓ ➒ ➓ ➊ Oberstes Element (root) eines XSL-Stylesheets mit den Spezifikationen der Namensräume (name spaces) für die Elemente aus dem XSL- Standard (fo = XSL-FO) und die aus dem XSLT-Standard (xsl = XSLT). Das heißt, alle Markierungen (Tags), die mit fo: beginnen, betreffen die Satzgestaltung, alle xsl:-tags beziehen sich auf die Transformation des Ausgangsdokuments. ➋ Hier wird festgelegt, dass das transformierte Ausgangsdokument wiederum ein XML-strukturiertes Dokument sein soll. ➌ Es folgen die Vorlagen (Templates) für die im Ausgangsdokument auftretenden Strukturelemente, hier das Template für das Element, das das Ausgangsdokument insgesamt umschließt (<Werk>). In diesem <Werk>-Template werden die Seitenvorgaben (<fo:layout-master-set>) spezifiziert sowie die Folge der Seiten (<fo:page-sequence>) festgelegt. ➍ Das oberste Element <Werk> wird zu <fo:root> transformiert. ➎ Hierin werden die Vorgabeseiten (<fo:simple-page-master>) mit ihren Seitenmaßen, den statischen Teilen (Kopf- und Fußbereich) und dem fließenden Bereich (<fo:region-body>) spezifiziert. ➏ Hier wird die Seitenfolge mit ihren entsprechenden Vorgabeseiten bestimmt. In diesem einfachen Beispiel wird lediglich die einzige Vorgabeseite (Seite-allgemein) herangezogen. ➐ Hier wird aus dem Ausgangsdokument das direkte Unterelement <Titelei> von <Werk> (das gegebene Template bezieht sich auf <Werk> (s. Rd.-Nr. 3) ausgewählt und in das Ergebnisdokument übernommen. Entsprechend weiter unten der Inhalt des Elements <Teil> (so oft es im Ausgangsdokument auftritt).

11 2.2 Die Verarbeitung mit einem XSLT-Prozessor und das XSL-FO-Dokument 13 ➑ Dies bewirkt die Generierung des (einfachen) Inhaltsverzeichnisses direkt unterhalb der generierten Überschrift Inhaltsverzeichnis. Für jeden <Beitrag> innerhalb von <Teil> wird das direkte Unterelement <Titel> ausgewählt und innerhalb eines eigenen Blocks (einer eigenen Zeile) in der gegebenen Reihenfolge ausgegeben. ➒ Hier weitere Templates, entweder mit Gestaltungsspezifikationen (<fo:block>) oder ohne. Zu beachten: Die Elemente, auf die sich die Templates beziehen, sind auf höherer Strukturierungsebene mit <xsl:apply-templates> für die Verarbeitung herangezogen. ➓ An Stelle spezifizierter Unter-Elemente (mit select="elementname") werden hier einfach alle hierarchisch untergeordneten Inhalte in der gegebenen Reihenfolge herangezogen und verarbeitet. 2.2 Die Verarbeitung mit einem XSLT-Prozessor und das XSL-FO-Dokument Das XML-Dokument und das XSL-Stylesheet werden einem XSLT- Prozessor übergeben, der aus den beiden Eingaben ein einziges Ergebnisdokument produziert, das XSL-FO-Dokument. Bei Benutzung bestimmter XSL-Formatierer tritt dieser erste Verarbeitungsschritt nicht in Erscheinung. Die Formatierer-Software ruft selbst diesen XSLT-Prozessor im Hintergrund auf und nimmt das Ergebnis zur Weiterverarbeitung entgegen. Treten Fehler in diesem Verarbeitungsschritt auf, so gibt der XSLT- Prozessor eine Fehlermeldung aus, nicht der XSL-Formatierer! Fehlermeldungen in diesem Prozessschritt weisen typischerweise auf bestimmte Zeilen innerhalb des XML-Dokuments und/oder des Stylesheets hin und geben damit eine Hilfe für die Fehlerbereinigung. Das Ergebnis dieser Verarbeitung mit unserem Beispiel wird unten wiedergegeben. Es zeigt sich, dass der XSLT-Prozessor alle Elemente, die im Stylesheet die Namensraumbezeichnung xsl: hatten, für die Reorganisation/Transformation des Ausgangsdokuments genutzt hat und an Stelle der XML-Strukturen des Ausgangsdokuments jetzt die Strukturen und Spezifikationen von XSL-FO (Namensraum fo:) getreten sind. Das Inhaltsverzeichnis ist generiert und an der im Stylesheet angegebenen Stelle eingefügt worden. An die Stelle der tiefer verschachtelten ursprünglichen XML-Struktur ist nun eine flache Block-Struktur getreten. Für jeden Block werden die entsprechend spezifizierten typografischen Attribute wiederholt. <?xml version="1.0" encoding="utf-8"?> <fo:root xmlns:fo=" <fo:layout-master-set> Vgl. Abschnitt 3.1 Vgl. Kapitel 8

12 14 2. XSL-FO Der Verarbeitungsprozess <fo:simple-page-master margin="5mm 5mm 10mm 5mm" page-height="170mm" page-width="120mm" master-name="seite-allgemein"> <fo:region-body margin="10mm 0mm 10mm 0mm"/> <fo:region-before border-after-style="solid" border-width="1pt" extent="5mm" display-align="before"/> <fo:region-after border-before-style="solid" border-width="1pt" extent="5mm" display-align="after"/> </fo:simple-page-master> </fo:layout-master-set> <fo:page-sequence master-reference="seite-allgemein"> <fo:static-content flow-name="xsl-region-before"> <fo:block font-size="8pt">kopfbereich:</fo:block> </fo:static-content> <fo:static-content flow-name="xsl-region-after"> <fo:block font-size="8pt">fußbereich:</fo:block> </fo:static-content> <fo:flow flow-name="xsl-region-body"> <fo:block font-size="8pt">werktitel:</fo:block> <fo:block font-size="16pt" font-weight="bold" text-align="left" margin-left="35mm" space-after="10mm">xsl-fo in der Praxis </fo:block> <fo:block font-size="8pt">vorwort - Inhaltsverzeichnis:</ fo:block> <fo:block font-size="10pt" font-weight="bold" margin-left="35mm" space-before="4mm">vorwort</fo:block> <fo:block text-align="left" margin-left="35mm" spaceafter="4pt">dies ist der Inhalt des Vorwortes.</fo:block> <fo:block font-size="10pt" font-weight="bold" margin-left="35mm" space-before="4mm">inhaltsverzeichnis</fo:block> <fo:block font-size="8pt" margin-left="35mm">einführung in XSL- FO</fo:block> <fo:block font-size="8pt" margin-left="35mm">die Sprache von XSL-FO</fo:block> <fo:block font-size="8pt" margin-left="35mm">seitenaufbau und - folge</fo:block> <fo:block font-size="8pt">teil:</fo:block> <fo:block font-size="12pt" font-weight="bold" marginleft="35mm">grundlagen</fo:block> <fo:block font-size="10pt" font-weight="bold" margin-left="35mm" space-before="4mm">einführung in XSL-FO</fo:block> <fo:block text-align="left" margin-left="35mm" spaceafter="4pt">dies ist der Inhalt der Einführung.</fo:block> <fo:block font-size="10pt" font-weight="bold" margin-left="35mm" space-before="4mm">die Sprache von XSL-FO</fo:block> <fo:block text-align="left" margin-left="35mm" spaceafter="4pt">dies ist die Beschreibung der Sprache.</fo:block> <fo:block font-size="8pt">teil:</fo:block> <fo:block font-size="12pt" font-weight="bold" marginleft="35mm">anwendung</fo:block> <fo:block font-size="10pt" font-weight="bold" margin-left="35mm" space-before="4mm">seitenaufbau und -folge</fo:block>

13 2.3 Die Verarbeitung mit dem XSL-Formatierer und das gestaltete Ergebnis 15 <fo:block text-align="left" margin-left="35mm" spaceafter="4pt">so beschreibt man den Seitenaufbau und die Seitenfolge.</fo:block> </fo:flow> </fo:page-sequence> </fo:root> Zu beachten ist, dass bestimmte typografische Instruktionen wie z.b. die Grundschriftgröße nicht im Stylesheet enthalten sind und auch im XSL-FO-Dokument nicht erscheinen. Diese Default-Werte (deutsch nach DIN: Fehlwerte) werden teils durch Ini-Dateien, teils durch feste Einstellungen des XSL-Formatierers, teils durch Festlegung im XSL-Standard in den folgenden Verarbeitungsschritt einbezogen. 2.3 Die Verarbeitung mit dem XSL-Formatierer und das gestaltete Ergebnis Es leuchtet wohl ein, dass mit dieser XSL-FO-Version des XML- Ausgangsdokuments die Verarbeitung in einem Seitengestaltungs- und Umbruchsystem erheblich einfacher geworden ist. Die Reorganisation/ Transformation des Ausgangsdokuments ist bereits abgeschlossen. Der Formatierer kann die Daten in der gegebenen Reihenfolge verarbeiten und typografisch aufbereiten. Gegebenenfalls im Dokument referenzierte Grafik-Dateien werden vom Formatierer in den Verarbeitungsprozess einbezogen und an der Stelle der Referenz im Fluss der Blöcke platziert. Das Verarbeitungssystem, der XSL-Formatierer, ist eine Software, die die im XSL-Standard vorgegebene Funktionalität standardkonform umsetzt (umsetzen sollte!). Heute marktgängige Produkte werden im Kapitel Unterstützung von XSL-FO in Produkten gegenübergestellt. Das Ergebnis der Formatierung des Demonstrations-Dokuments zeigt die folgende Abbildung. Die Blockstruktur ist zum besseren Verständnis des Konzepts explizit dargestellt. Vgl. Kapitel 16

14 16 2. XSL-FO Der Verarbeitungsprozess Abb. 2-2 Dokument mit Blockstrukturansicht 2.4 Mögliche Nachverarbeitungen und Ausgaben Mit der Generierung der Seiten ist der auf den Standards XML und XSL beruhende Verarbeitungsprozess abgeschlossen. Die Sichtbarmachung des Ergebnisses geschieht mit proprietären Technologien. Die heute wohl populärste und am weitesten verbreitete Technologie der Nachverarbeitung zur Visualisierung des Satz- und Umbruchergebnisses ist die Generierung des PDF-Formats der Firma Adobe und die

15 2.5 Die Verarbeitung mit anderen Mitteln als einem XSL-Formatierer 17 Anzeige in einem PDF-Viewer (typischerweise im Acrobat Reader von Adobe). Für die PDF-Generierung muss nicht unbedingt auch das Distiller-Produkt von Adobe eingesetzt werden. Es gibt durchaus Alternativen, die häufig in die Software des XSL-Formatierers so integriert sind, dass die PDF-Generierung im Hintergrund abläuft und wie ein Teil des Formatier-Prozesses erscheint. In solchen Produkten, die die PDF-Generierung selbst einschließen, werden u. U. bestimmte PDF-bezogene Zusatzfunktionen, wie z. B. die Erzeugung von Lesezeichen (bookmarks) für die computergestützte Navigation im PDF, in der Form eines interaktiven Inhaltsverzeichnisses bereits im XSL-Stylesheet mit normalen XML-Mitteln und der Kennzeichnung durch einen eigenen XML-Namensraum integriert. Deshalb zeigt das Schema für den Verarbeitungsprozess auch keine spezifischen Eingaben für die Steuerung der PDF-Generierung. Vgl. Abb Die Verarbeitung mit anderen Mitteln als einem XSL-Formatierer Bei Einsatz eines XSL-Formatierers nimmt man in Kauf, dass man auf die Funktionsmerkmale von XSL-FO beschränkt ist der Aspekt proprietärer Erweiterungen zu XSL-FO durch die Hersteller von XSL- Formatierern sei einmal vernachlässigt und die Ergebnisse des automatisierten Satz-und-Umbruch-Prozesses keine interaktiven Korrekturen mehr erlauben. Um diese Einschränkungen zu umgehen und dennoch die offensichtlichen Vorteile des XSL-FO-Konzepts zu nutzen, suchen viele Anwender nach alternativen Produkten, die diese Einschränkungen nicht aufweisen. Solche Produkte werden angeboten oder sind zumindest in Entwicklung. Derartige Alternativ-Systeme verfolgen zwei unterschiedliche Zielrichtungen. Einmal bieten herkömmliche und in der Praxis etablierte Satzsysteme eine XSL-FO-Schnittstelle an, über die sie die XSL-FO-Daten einlesen, in das eigene Systemformat transformieren und in der systemüblichen Weise verarbeiten. Das Satzsystem 3B2 ist dafür ein gutes Beispiel. Zum anderen beschränken sich Systemanbieter darauf, lediglich die Transformation in ein beschriebenes (standardisiertes) System mit ihrem Produkt zu unterstützen und das Eingangsformat für das eigentliche Satzsystem zu produzieren. Ein Beispiel für ein derartiges Produkt ist zur Zeit bei der deutschen Firma infinity-loop in Entwicklung, das aus XSL-FO-strukturierten Dokumenten eine RTF-Ausgabe erzeugt, die dann mit dem populären Microsoft Word bearbeitet und verarbeitet werden kann. Wie weit man sich mit den Alternativ-Anwendungen erweiterte Nutzungsmöglichkeiten von XSL-FO erschließt oder ob dadurch ledig-

16 18 2. XSL-FO Der Verarbeitungsprozess lich die Schwierigkeiten in der standardkonformen Verarbeitung wachsen, muss die zukünftige Praxis zeigen.

17 53 5. XSL-Funktionen Dieses Kapitel beschäftigt sich mit den wichtigsten XSL-Funktionen, ungeachtet, ob es sich dabei um XSLT- oder XPath-Funktionen handelt. Im Referenz-Teil befinden sich jeweils kurze Beschreibungen zu sämtlichen XSL-Funktionen. Hier werden wir lediglich auf die Funktionen näher und mit beispielhaften Anwendungen eingehen, die in XSL-FO- Stylesheets typischerweise und häufig benutzt werden. Um einen ersten Überblick zu geben, welche Funktionen welcher Recommendation zuzuordnen sind, folgt hier eine Liste sämtlicher Funktionen: Zu XSLT gehören: current() document() element-available() format-number() function-available() generate-id() key() unparsed-entity-uri() Zu XPath gehören thematisch geordnet: Knotenmengen-Funktionen Vgl. Abschnitt 11.2, 12.3 count() id() last() name() namespace-uri() position() Zeichenketten-Funktionen concat() Autor: Manuel Montero Pineda

18 54 5. XSL-Funktionen contains() normalize-space() starts-with() string() string-length() substring() substring-after() substring-before() translate() Zahlen-Funktionen ceiling() floor() number() round() sum() Boolesche Funktionen boolean() false() lang() not() true() 5.1 generate-id() Vgl. Abschnitt Die XSLT-Funktion generate-id() weist einem Knoten eine eindeutige Kennung in Form einer Zeichenfolge (string) zu. string generate-id(node) Die Funktion wird im Zusammenhang mit dokumentinternen Links benötigt. Dabei wird dem Zielknoten ein Anker gegeben, der mit Hilfe der Funktion generiert wird, und dieser wird an anderer Stelle als Ziel angegeben. Da der automatisch generierte Anker für jeden Knoten eindeutig ist, ist es nicht notwendig, diese Kennung zu kennen, sondern es ist ausreichend, ebenfalls mittels der Funktion diese zu referenzieren. Ein kleines HTML-Beispiel: <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl=" Transform"> <xsl:template match="europa"> <html> <title></title>

19 5.2 unparsed-entity-uri() 55 <body> <xsl:for-each select="//name"> <h3> <a href="#{generate-id()}"> <xsl:value-of select="."/> </a> </h3> </xsl:for-each> <xsl:apply-templates select="//name"/> </body> </html> </xsl:template> <xsl:template match="name"> <p> <a name="{generate-id(.)}"> <xsl:value-of select="."/> </a> </p> </xsl:template> </xsl:stylesheet> ➊ ➋ ➊ An dieser Stelle werden die internen Verweise generiert, der XSLT- Prozessor weist dabei jedem Knoten eine eindeutige Kennung zu. ➋ Zum Vergleich sieht man hier die Anker, die die entsprechende Knoten-Kennung haben. Als Ergebnis erhalten wir folgenden HTML-Code: <html> <title></title> <body> <h3><a href="#d0e6">deutschland</a></h3> <h3><a href="#d0e24">frankreich</a></h3> <h3><a href="#d0e42">spanien</a></h3> <p><a name="d0e6">deutschland</a></p> <p><a name="d0e24">frankreich</a></p> <p><a name="d0e42">spanien</a></p> </body> </html> ➊ ➊ ➊ ➋ ➋ ➋ 5.2 unparsed-entity-uri() Die XSLT-Funktion unparsed-entity-uri() erlaubt es, auf ungeparste Entitäten einer DTD meist Binärdaten, wie Bilder zuzugreifen. Auch hier ein kleines HTML-Beispiel: Hierzu muss die Instanz um eine Doctype-Deklaration und die Entity-Deklarationen für die Bilder darin ergänzt werden. Die DTD selbst ist als existierend vorausgesetzt. Vgl. Abschnitt 10.16

20 56 5. XSL-Funktionen <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE EUROPA SYSTEM "europa.dtd"[ <!ENTITY Beispiel1 SYSTEM "Bilder\Beispiel1.tif" NDATA TIF> <!ENTITY Beispiel2 SYSTEM "Bilder\Beispiel2.tif" NDATA TIF> <!NOTATION TIF SYSTEM "image/tif"> ]> <EUROPA> <LAND> <NAME BILD="Beispiel1">Deutschland</NAME> <EINWOHNERZAHL EINHEIT="Millionen">82.4</EINWOHNERZAHL> <HAUPTSTADT>Berlin</HAUPTSTADT> <KFZ-KENNZEICHEN>D</KFZ-KENNZEICHEN> <TEL-VORWAHL>0049</TEL-VORWAHL> </LAND> <LAND> <NAME BILD="Beispiel2">Frankreich</NAME> <EINWOHNERZAHL EINHEIT="Millionen">58.5</EINWOHNERZAHL> <HAUPTSTADT>Paris</HAUPTSTADT> <KFZ-KENNZEICHEN>F</KFZ-KENNZEICHEN> <TEL-VORWAHL>0033</TEL-VORWAHL> </LAND> <LAND> <NAME>Spanien</NAME> <EINWOHNERZAHL EINHEIT="Millionen">39.4</EINWOHNERZAHL> <HAUPTSTADT>Madrid</HAUPTSTADT> <KFZ-KENNZEICHEN>E</KFZ-KENNZEICHEN> <TEL-VORWAHL>0034</TEL-VORWAHL> </LAND> </EUROPA> Das Stylesheet, in dem die Verarbeitung der Bild-Entitäten spezifiziert wird, sieht wie folgt aus: <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl=" Transform"> <xsl:template match="europa"> <html> <title></title> <body> <xsl:for-each select="//name"> <img </xsl:for-each> </body> </html> </xsl:template> </xsl:stylesheet> ➊ Als Ergebnis erhalten wir folgenden HTML-Code: <html> <title></title>

21 5.3 count() 57 <body> <img src="bilder\beispiel1.tif"/> <img src="bilder\beispiel2.tif"/> </body> </html> ➊ ➊ 5.3 count() Die XPath-Funktion count() erwartet eine Knotenmenge, zählt die Anzahl der Knoten und gibt sie als Zahl zurück: number count(node-set) <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl=" Transform"> <xsl:template match="/"> <html> <title></title> <body> <h3> Wie viele Länder werden hier vorgestellt?<br/> Antwort: <xsl:value-of select="count(//land)"/> <br/> ➊ Wie viele Eigenschaften eines Landes werden vorgestellt? <br/> Antwort: <xsl:value-of select="count(//land/*)div(count(// ➋ LAND))"/> </h3> </body> </html> </xsl:template> </xsl:stylesheet> ➊ Die Funktion count() hat hier alle vorkommenden <LAND>-Elemente gezählt, als Zahlenwert dem Element <xsl:value-of> übergeben und als arabische Zahl dargestellt. ➋ An dieser Stelle wird eine kleine Rechnung durchgeführt und die Gesamtzahl der Kindelemente aller <LAND>-Elemente durch die Anzahl der <LAND>-Elemente dividiert. Als Ergebnis erhalten wir folgenden HTML-Code: <html> <title></title> <body> <h3> Wie viele Länder werden hier vorgestellt?<br> Antwort: 3 <br><h3> Wie viele Eigenschaften eines Landes werden hier vorgestellt?<br> ➊

22 58 5. XSL-Funktionen Antwort: 5 </body> </html> ➋ 5.4 position() Die XPath-Funktion position() gibt die Position des Kontextknotens in einer Knotenmenge zurück. number position() Meist wird dies eingesetzt, um bestimmte Knoten in einer Folge gleicher Knoten (Elemente) unterschiedlich zu behandeln. Sehr oft wird auch die Kurzschreibweise verwendet. So entspricht Europa[position()=3] der Abkürzung Europa[3]. Auch hier ein kleines HTML-Beispiel für die Verwendung: <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl=" Transform"> <xsl:template match="/"> <html> <title></title> <body> <xsl:apply-templates select="//land"/> </body> </html> </xsl:template> <xsl:template match="land"> <xsl:if test="position()=1"> <h1> <xsl:value-of select="position()"/>. <xsl:value-of select="."/> </h1> </xsl:if> <xsl:if test="position()=2"> <h2> <xsl:value-of select="position()"/>. <xsl:value-of select="."/> </h2> </xsl:if> <xsl:if test="position()=3"> <h3> <xsl:value-of select="position()"/>. <xsl:value-of select="."/> </h3> </xsl:if> </xsl:template> </xsl:stylesheet> ➊ ➋ ➊ ➋ ➊ ➋

23 5.5 last() 59 ➊ An dieser Stelle wird geprüft, in welcher Position sich der Kontextknoten innerhalb aller für das Template zutreffenden <Land>-Elemente befindet. ➋ Trifft der Test zu, wird der Wert der Position als Zahl ausgegeben und der Inhalt des Elements eingefügt. Dieser Code führt zu folgendem Ergebnis: <html> <title></title> <body> <h1>1. Deutschland 82.4 Berlin D 0049</h1> <h2>2. Frankreich 58.5 Paris F 0033</h2> <h3>3. Spanien 39.4 Madrid E 0034</h3> </body> </html> ➊ ➊ ➊ Im Browser stellt sich das Ergebnis wie folgt dar: Abb. 5-1 Browser-Ansicht 5.5 last() Die XPath-Funktion last() ermittelt aus einer Knotenmenge den letzten Knoten und gibt dessen Position als Zahl zurück. number last() Beispiel: <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl=" Transform"> <xsl:template match="/"> <html> <title></title> <body> <xsl:apply-templates select="//land"/> </body> </html> </xsl:template> <xsl:template match="land"> <xsl:if test="position() < last()"> <h1> ➊

24 60 5. XSL-Funktionen <xsl:value-of select="position()"/>. <xsl:value-of select="."/> </h1> </xsl:if> <xsl:if test="position() = last()"> ➋ <h3> <xsl:value-of select="position()"/>. <xsl:value-of select="."/> </h3> </xsl:if> </xsl:template> </xsl:stylesheet> ➊ Die Abfrage prüft, ob der Kontextknoten eine kleinere Position einnimmt als der letzte Knoten, d. h. ob der Knoten nicht das letzte <LAND>- Element ist. Dabei muss das <-Zeichen durch seine Entity-Referenz < ersetzt werden, da sonst der XSLT-Prozessor das Zeichen als eine Beginnbegrenzung für einen XML-Starttag halten würde, d. h., dass die Verwendung von <- und >-Zeichen als Vergleichsoperatoren nur mit Hilfe von deren Entity-Referenzen möglich ist. ➋ Hier wird mit Hilfe der last()-funktion das letzte <LAND>-Element gesucht. Dieser Code führt zu folgendem Ergebnis: <html> <title></title> <body> <h1>1. Deutschland 82.4 Berlin D 0049 </h1> <h1>2. Frankreich 58.5 Paris F 0033 </h1> <h3>3. Spanien 39.4 Madrid E 0034 </h3> </body> </html> ➊ ➊ ➋ 5.6 number() Die XPath-Funktion number() wandelt eine Zeichenfolge in eine Zahl um und ermöglicht so das Rechnen mit dieser. number number(string) Bei Zeichenfolgen, die nicht in eine Zahl umgewandelt werden können, wird der Wert NaN (Not a Number) zurückgegeben. 5.7 sum() Die XPath-Funktion sum() addiert Zahlen einer Knotenmenge und gibt diese als Zahl zurück. number sum(node-set)

25 5.7 sum() 61 Beispiel: <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl=" Transform"> <xsl:template match="/"> <html> <title></title> <body> <h1>die Gesamteinwohnerzahl der Staaten Spanien, Frankreich und Deutschland ist: <xsl:value-of select="sum(//land/einwohnerzahl)"/> Millionen </h1> <h1>der Durchschnitt der Einwohnerzahlen der Staaten Spanien, Frankreich und Deutschland ist: <xsl:value-of select="sum(//land/einwohnerzahl) div count(//land)"/> Millionen </h1> <h1>dies kann nicht gehen: <xsl:value-of select="sum(//land/hauptstadt)"/></h1> </body> </html> </xsl:template> </xsl:stylesheet> ➊ Hier wird die Funktion sum() dazu genutzt, die Summe aller Inhalte des Elements <EINWOHNERZAHL> zu ermitteln. ➋ An dieser Stelle wird eine Weiterverarbeitung vorgenommen und der Durchschnitt aller Einwohnerzahlen ermittelt, wozu die Anzahl aller Einwohner durch die Anzahl der beteiligten Länder dividiert wird. ➌ Hier soll lediglich demonstriert werden, dass bei einer nichtadäquaten Verwendung der Funktion sum() das Ergebnis NaN erscheint. Als Ergebnis erhalten wir folgenden Code: ➊ ➊ ➋ ➌ <html> <title></title> <body> <h1>die Gesamteinwohnerzahl der Staaten Spanien, Frankreich und Deutschland ist: Millionen </h1> <h1>der Durchschnitt der Einwohnerzahlen der Staaten Spanien, Frankreich und Deutschland ist: 60.1 Millionen </h1> <h1>dies kann nicht gehen: NaN</h1> </body> </html> ➊ ➋ ➌

26 62 5. XSL-Funktionen Abb. 5-2 Browser-Ansicht 5.8 not() Die XPath-Funktion not() negiert den in der Klammer enthaltenen Ausdruck. boolean not(boolean) Folgendes Beispiel demonstriert die Arbeitsweise dieser Funktion: <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl=" Transform"> <xsl:template match="/"> <html> <title></title> <body> <xsl:apply-templates select="//einwohnerzahl"/> </body> </html> </xsl:template> <xsl:template match="einwohnerzahl"> <xsl:if test=". < 75"> ➊ Die Einwohnerzahl <xsl:value-of select="."/> Millionen aus <xsl:value-of select="preceding-sibling::name"/> ist kleiner als 75 Millionen.<br/> </xsl:if> <xsl:if test="not(. < 75)"> ➋ Die Einwohnerzahl <xsl:value-of select="."/> Millionen aus <xsl:value-of select="preceding-sibling::name"/> ist größer als 75 Millionen.<br/> </xsl:if> <xsl:if test=". = not(preceding-sibling::name='deutschland')"> ➌ <xsl:value-of select="preceding-sibling::name"/> ist nicht Deutschland.<br/> </xsl:if> </xsl:template> </xsl:stylesheet> ➊ Durch das test-attribut wird geprüft, ob der Inhalt des Kontextknotens <EINWOHNERZAHL> kleiner 75 ist.

27 5.8 not() 63 ➋ Der XPath-Ausdruck der vorangehenden <xsl:if>-anweisung wird durch die Funktion not() negiert, also wird hier nach Werten größer oder gleich 75 gesucht. ➌ Es wird ein <EINWOHNERZAHL>-Element gesucht, das kein vorangegangenes Geschwisterelement <NAME> hat, dessen Wert Deutschland ist. Als Ergebnis erhält man folgenden Code: <html> <title></title> <body> <h1> Die Einwohnerzahl 82.4 Millionen aus Deutschland ist größer als 75 Millionen.<br> Die Einwohnerzahl 58.5 Millionen aus Frankreich ist kleiner als 75 Millionen.<br> Frankreich ist nicht Deutschland.<br> Die Einwohnerzahl 39.4 Millionen aus Spanien ist kleiner als 75 Millionen.<br> Spanien ist nicht Deutschland.<br> </h1> </body> </html> ➋ ➊ ➌ ➊ ➌

28

29 Anwendungsbeispiele 10.1 Attribute-Bündelungen Es werden mehrere Attribute zusammengefasst, so dass diese gemeinsam einem Element zugewiesen werden und mehrfach wiederverwendet werden können. Das Element <xsl:attribute-set> dient zur Bündelung von Attributen, die an späterer Stelle aufgerufen werden. Der Einsatz hat mehrere Vorteile, zum einen können diese, wenn sie am Anfang eines Stylesheets sind, den Überblick erleichtern, zum anderen lassen sich Eigenschaften zentral bearbeiten. Quellcode <xsl:attribute-set name="ueberschrift-titel1"> <xsl:attribute name="font-family">arial Unicode MS</ xsl:attribute> <xsl:attribute name="font-size">18pt</xsl:attribute> <xsl:attribute name="font-weight">bold</xsl:attribute> <xsl:attribute name="space-after">99pt</xsl:attribute> <xsl:attribute name="space-before.conditionality">discard</ xsl:attribute> <xsl:attribute name="keep-with-next">always</xsl:attribute> </xsl:attribute-set> <xsl:attribute-set name="table.data" > <xsl:attribute name="table-layout">fixed</xsl:attribute> <xsl:attribute name="start-indent">2mm </xsl:attribute> <xsl:attribute name="end-indent">2mm </xsl:attribute> <xsl:attribute name="space-before">10pt</xsl:attribute> <xsl:attribute name="space-after">10pt</xsl:attribute> ➊ ➋

30 Anwendungsbeispiele <xsl:attribute name="keep-with-next.within-page">always</ xsl:attribute> </xsl:attribute-set> <fo:block xsl:use-attribute-sets="ueberschrift-titel1" axf:outlinelevel="2" axf:outline-expand="false" keep-with-next="always"> <fo:table width="110mm"> <fo:table-column column-number="1" column-width="15mm"/> ➌ ➊ Um einem Element mehrere Attribute zusammen zuzuweisen, wird das Element <xsl:attribute-set> verwendet: Zunächst wird dem <attribute-set>-element mit dem Attribut name ein Name zugewiesen. Danach folgen die im Element enthaltenen Attribute und deren Werte. Der erste Attribute-Satz zeigt ein Beispiel für eine mögliche Formatierung einer Überschrift. ➋ Der zweite Attribute-Satz demonstriert beispielhaft zusammengefasste Eigenschaften einer Tabelle. ➌ Um auf die im <attribute-set>-element enthaltenen Attribute gesammelt zuzugreifen, wird das Attribut use-attribute-sets verwendet. Der Wert dieses Elements muss mit dem Wert des name-attributs eines der <attribute-set>-elemente übereinstimmen.

31 10.2 Einsatz von typografischen Mitteln Einsatz von typografischen Mitteln Elemente, die zur Formatierung von Text dienen und vielseitig einsetzbar sind. Es soll demonstriert werden, wie die typografischen Mittel zum Erzeugen einer neuen Zeile, zur Hervorhebung fett und kursiv, sowie zum Hochund Tiefstellen und Unterstreichen von Text angewendet werden. Vgl. Abschnitt 6.6 Auszug aus der DTD: <!ELEMENT nz EMPTY><!-- Neue Zeile --> <!ELEMENT f (#PCDATA)><!-- fett --> <!ELEMENT k (#PCDATA)><!-- kursiv --> <!ELEMENT h (#PCDATA)><!-- hochgestellt --> <!ELEMENT t (#PCDATA)><!-- tiefgestellt --> <!ELEMENT u (#PCDATA)><!-- unterstrichen --> Stylesheet: <xsl:template match="nz"> <fo:block/> </xsl:template> <xsl:template match="f"> <fo:inline font-weight="bold"> <xsl:apply-templates/> </fo:inline> </xsl:template> <xsl:template match="k"> <fo:inline font-style="italic"> <xsl:apply-templates/> </fo:inline> </xsl:template> <xsl:template match="h"> <fo:inline baseline-shift="super" font-size="70%"> <xsl:apply-templates/> </fo:inline> </xsl:template> <xsl:template match="t"> <fo:inline baseline-shift="sub" font-size="70%"> <xsl:apply-templates/> </fo:inline> </xsl:template> <xsl:template match="u"> ➊ ➋ ➌ ➍ ➎

32 Anwendungsbeispiele <fo:inline text-decoration="underline"> <xsl:apply-templates/> </fo:inline> </xsl:template> ➏ Vgl. Abschnitt Vgl. Abschnitt Vgl. Abschnitt 13.2 ➊ Das Template für <nz> zeigt, wie durch die Verwendung eines leeren Blocks ein Zeilenumbruch erzeugt werden kann. ➋ Der Inhalt des Elements f soll fett dargestellt werden. Fett wird mit dem Attribut font-weight und dem Wert bold erzeugt. ➌ Der Inhalt des Elements k soll kursiv dargestellt werden. Kursiv wird mit dem Attribut font-style und dem Wert italic erzeugt. ➍ Das Hochstellen von Text wird mit dem Attribut baseline-shift und dem Wert super bewirkt. Aus typografischen Gründen wird man den hochgestellten Text um ein bestimmtes relatives Maß gegenüber dem umgebenden Text verkleinern. Hier wird die Schriftgröße auf 70% verkleinert. ➎ Für das Tiefstellen von Text gilt das für Hochstellen Gesagte entsprechend. ➏ Unterstrichen wird ein Text mit dem Attribut text-decoration und dem Wert underline. Zu beachten: auch Leerzeichen werden mit unterstrichen! Mehr Typografie Das obige Beispiel gibt einen sehr eingeschränkten Einblick in die typografischen Möglichkeiten von XSL-FO. Für anspruchsvolle typografische Aufgabenstellungen ist meist eine Kombination mehrerer XSL-FO- Attribute erforderlich. In Abschnitt 13.2 werden detaillierte Hinweise zu den Attributen gegeben. Auf typografische Attribute insbesondere verweisen die folgenden Stichworte im Stichwortverzeichnis: Abstände Ausrichtung Durchstreichung, Unterstreichung, Überstreichung Font, Fontausprägung Führungslinien Innenabstände Inzeilige Formatierung Rahmen, Ränder Schriftart, Schriftgröße, Schriftschnitt Seitenumbruch, Zeilenumbruch Silbentrennung Text-Dekoration Wortabstände, Zeichenabstände Zeilenhöhe

33 10.3 Textblöcke Textblöcke Es werden Textblöcke erstellt, deren Eigenschaften von der Instanz gesteuert werden. Es wird ein Template zur Erstellung von Textblöcken demonstriert. Diese Blöcke können von der Instanz mit Hilfe von Attributen formatiert werden. In diesem Beispiel lassen sich so die Eigenschaften wie Schriftgröße, Alliniierung, Einzug, fett, kursiv u. a. festlegen. Auszug aus der DTD: <!ELEMENT TB (#PCDATA...)*> <!ATTLIST TB Groesse (normal gross klein) "normal" Schrift (normal fett kursiv) "normal" Aliniierung (links rechts mittig block) "block" EinzugLinks (ohne mit Zeile1 haengend) "ohne"> Stylesheet: <xsl:template match="tb"> <fo:block text-align="justify" hyphenate="true" xml:lang="de" margin-left="10mm"> <xsl:choose> <xsl:when <xsl:attribute name="font-size">14pt</xsl:attribute> </xsl:when> <xsl:when <xsl:attribute name="font-size">10pt</xsl:attribute> </xsl:when> <xsl:otherwise> <xsl:attribute name="font-size">12pt</xsl:attribute> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when <xsl:attribute name="font-weight">bold</xsl:attribute> </xsl:when> <xsl:when <xsl:attribute name="font-style">italic</xsl:attribute> </xsl:when> <xsl:otherwise/> ➊ ➋ ➌ ➍ ➎ ➏

34 Anwendungsbeispiele </xsl:choose> <xsl:choose> <xsl:when <xsl:attribute name="text-align">left</xsl:attribute> </xsl:when> <xsl:when <xsl:attribute name="text-align">right</xsl:attribute> </xsl:when> <xsl:when <xsl:attribute name="text-align">center</xsl:attribute> </xsl:when> <xsl:otherwise> <xsl:attribute name="text-align">justify</xsl:attribute> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when <xsl:attribute name="margin-left">15mm</xsl:attribute> </xsl:when> <xsl:when <xsl:attribute name="text-indent">10mm</xsl:attribute> </xsl:when> <xsl:when <xsl:attribute name="text-indent">-10mm</xsl:attribute> </xsl:when> <xsl:otherwise/> </xsl:choose> <xsl:apply-templates/> </fo:block> </xsl:template> Vgl. Abschnitt 3.7 ➊ Für den Block werden allgemeingültige Attribute spezifiziert: Blocksatz, deutsche Silbentrennung, linker Einzug. ➋ Die weitergehendere Spezifikation wird von den Attributen und ihren Werten abhängig gemacht. Das Ganze wird in das XSLT-Konzept <xsl:choose> eingekleidet. ➌ Unter der Bedingung für die Schriftgröße gross soll die Schriftgröße 14pt gesetzt werden. ➍ Für die Bedingung Schriftgröße normal oder wenn in der Instanz das Attribut nicht gesetzt ist (weil Vorgabewert) gilt die Schriftgröße 12pt. ➎ Es gilt das für die Schriftgröße Gesagte entsprechend. ➏ Es gilt das für den Vorgabewert der Schriftgröße Gesagte entsprechend. Hier wird allerdings kein Attribut spezifiziert. Deshalb bleibt <xsl:otherwise> leer.

35 10.4 Silbentrennung Silbentrennung Die Silbentrennung wird für Blöcke in verschiedenen Sprachen automatisch erzeugt. Es soll im vorliegenden Abschnitt die Verwendung der Attribute hyphenate und xml:lang anhand eines kurzen Beispiels gezeigt werden. Die Attribute steuern die automatische Silbentrennung in Textblöcken. Vgl. Abschnitt Auszug aus der DTD: <!ELEMENT A (#PCDATA...)*><!-- Textabsatz --> Stylesheet: <xsl:template match="a"> <fo:block text-align="justify" hyphenate="true" xml:lang="de"> <xsl:apply-templates/> </fo:block> </xsl:template> ➊ ➊ Die Einstellung, ob die Silbentrennung bei einem Zeilenumbruch durchgeführt werden soll oder nicht, wird mit dem Attribut hyphenate und dessen Einstellung auf false oder true bestimmt. Bei Setzen des Werts true wird die Silbentrennung aktiviert. Da sich diese auf ggf. vorhandene Unterstrukturen vererbt, kann sie, wenn sie in unterer Ebene nicht gewünscht ist, mit dem Wert false wieder abgestellt werden. Mit xml:lang wird angegeben, welchen Regeln oder Mustern die Silbentrennung entsprechen soll. Hier ist für die Anwendung der deutschen Trennregeln de gesetzt.

36 Anwendungsbeispiele 10.5 Einfache Überschriften Einfache Überschriften sind typografisch betonte Textblöcke. Es soll gezeigt werden, wie Überschriften innerhalb des fortlaufenden Inhalts hervorgehoben und als solche behandelt werden können. Auszug aus der DTD: <!ELEMENT Beitrag (Titel,...)> <!ELEMENT Titel (#PCDATA...)*> ➊ Für das Titelelement <Titel> wird angenommen, dass es auf den unterschiedlichen Gliederungsebenen immer gleich heißt (und gleich modelliert ist). Um die Titel entsprechend der Gliederungsebene typografisch unterscheiden zu können, müssen im Stylesheet Templates für jede Gliederungsebene erstellt werden. ➋ Es wird angenommen, dass die Inhalte von <Titel> neben einfachen Zeichendaten auch Unterstrukturen (z. B. Fußnotenreferenzen) enthalten dürfen. Dies beeinflusst die Methode der Inhaltseinbeziehung in die XSL-FO-Struktur (s. Stylesheet). ➊ ➋ Stylesheet: <xsl:attribute-set name="ueberschrift-titel1"> <xsl:attribute name="font-family">arial Unicode MS</xsl:attribute> <xsl:attribute name="font-size">18pt</xsl:attribute> <xsl:attribute name="font-weight">bold</xsl:attribute> <xsl:attribute name="text-align">center</xsl:attribute> <xsl:attribute name="space-before">30mm</xsl:attribute> <xsl:attribute name="space-after">10mm</xsl:attribute> <xsl:attribute name="keep-with-next">always</xsl:attribute> </xsl:attribute-set>... <xsl:template match="beitrag/titel"> <fo:block xsl:use-attribute-sets="ueberschrift-titel1" hyphenate="false"> <xsl:apply-templates/> </fo:block> </xsl:template> ➊ ➋ ➌ ➍ ➎

37 10.5 Einfache Überschriften 149 ➊ Die Bündelung typografischer Merkmale in der Struktur von <xsl:attribute-set> empfiehlt sich dann, wenn man die Bündelung innerhalb des Stylesheets mehrfach gebrauchen, Änderungen in den typografischen Merkmalen aber lediglich einmal durchführen möchte. ➋ Das Attribut keep-with-next mit seinem Attributwert always sorgt dafür, dass die Überschrift niemals ohne einen nachfolgenden Block (in der Regel ein erster Textabsatz) am unteren Spalten- oder Seitenrand platziert wird. ➌ Das Template bezieht sich ausschließlich auf <Titel> innerhalb des Elternelements <Beitrag>. Das Auftreten und die Gestaltung von <Titel> in anderen Umgebungen wird in weiteren Templates spezifiziert. ➍ Für den Block, in dem der Inhalt von <Titel> erscheinen soll, werden die in <xsl:attribute-set> spezifizierten typografischen Merkmale durch das Attribut xsl:use-attribute-sets einbezogen. Zusätzlich wird die Silbentrennung, die in Überschriften unerwünscht ist, ausgeschaltet. ➎ Durch <xsl:apply-templates> wird der gesamte Inhalt von <Titel> einschließlich ggf. auftretender Unterstrukturen in den Block kopiert. Möchte man lediglich die in <Titel> enthaltenen Zeichendaten einbeziehen und die Unterstrukturen eliminieren, dann wird dies durch <xsl:value-of select="."/> bewirkt. Vgl. Abschnitt 10.1 Vgl. Abschnitt

38 Anwendungsbeispiele 10.6 Überschriften mit einfachen Nummerierungen Überschriften mit generierten Nummerierungen lassen sich mit Hilfe von Tabellen befriedigend typografieren. Vgl. Abschnitt 3.9 Es soll gezeigt werden, wie sich Überschriften mit Hilfe von Tabellenstrukturen gestalten lassen. In diesem Zusammenhang wird die Methode der Nummerierung (<xsl:number>) von Überschriften erläutert. In diesem Abschnitt wird lediglich die Nummerierung in einer Ebene gezeigt. Auszug aus der DTD: <!ELEMENT Werk (Titel, Teil+)> <!ELEMENT Teil (Titel, Beitrag+)> <!ELEMENT Titel (#PCDATA)...)*> ➊ Teile <Teil> haben immer als erstes Unterelement eine Überschrift <Titel>. ➋ Eine Überschrift kann neben einfachen Zeichendaten auch Unterstrukturen enthalten. ➊ ➋ Stylesheet: <xsl:template match="werk/teil/titel"> <fo:block xsl:use-attribute-sets="ueberschrift-titel1" hyphenate="false"> <fo:table width="110mm"> <fo:table-column column-number="1" column-width="15mm"/> <fo:table-column column-number="2" column-width="95mm"/> <fo:table-body> <fo:table-row> <fo:table-cell column-number="1"> <fo:block> <xsl:number level="single" count="teil" format="i." /> </fo:block> </fo:table-cell> <fo:table-cell column-number="2"> <fo:block> <xsl:apply-templates/> </fo:block> </fo:table-cell> </fo:table-row> </fo:table-body> </fo:table> ➊ ➋ ➌ ➌ ➌ ➌ ➌ ➍ ➎ ➏ ➍ ➎ ➐

39 10.6 Überschriften mit einfachen Nummerierungen 151 </fo:block> </xsl:template> ➊ Das Template bezieht sich ausschließlich auf <Titel> in der Umgebung <Teil>. ➋ Die Überschrift wird in einen Block eingekleidet. Für diesen Block werden die an anderer Stelle im Stylesheet spezifizierten typografischen Attribute gesetzt, außerdem Attribute, die lediglich für Überschriften dieser Ebene gelten sollen. Diese Attribute vererben sich auf die folgende Unterstruktur der Tabelle. ➌ In diese Tabelle sollen die zwei Komponenten der Überschrift in zwei Spalten geordnet werden. Die Spalte mit der Nummer 1 nimmt die Nummerierung auf, die Spalte mit der Nummer 2 den textlichen Inhalt. Mit dieser Spaltenanordnung wird sichergestellt, dass bei unterschiedlich breit laufenden Nummern der textliche Inhalt immer gleich links angeschlagen ist und auch beim Umbruch in mehrere Zeilen die Nummerierung freigestellt bleibt. Für die Tabelle sind keine Rahmenlinien spezifiziert, sie bleibt also in der Seitendarstellung als Tabelle unsichtbar. Die gezeigte Tabellenstruktur zeigt die einfachste Form für eine Tabelle, die lediglich eine Zeile und darin zwei Zellen hat. Für die vertikale Ausrichtung der Zelleninhalte ist display-align="before" gesetzt. Dies bewirkt, dass die Zelleninhalte am oberen Zellenrand angeschlagen werden. ➍ Durch die Referenzierung der Spaltennummer werden die entsprechenden Spalten-Spezifikationen in <fo:table-column> übernommen. Die Zelleninhalte werden am oberen Zellenrand angeschlagen, weil dies dem Vorgabewert des Attributs display-align entspricht. ➎ Innerhalb der Tabellenzelle muss der textliche Inhalt in einen Block eingekleidet werden, weil der Inhalt sonst nicht horizontal ausgerichtet werden kann. Ohne jedes Attribut gilt die Voreinstellung start für text-align, d. h. bei der üblichen Schreibrichtung links-aliniiert. ➏ Innerhalb der linken Tabellenzelle wird die Nummerierung dargestellt. Für die Generierung besagt das Attribut level die Nummerierung in einer Ebene, das Attribut count, was nummeriert werden soll, nämlich die Teile nicht die Teil-Überschriften!, und das Attribut format, wie die Nummerierung gestaltet werden soll. Der Attributwert I. gibt das Gestaltungsmuster vor: Große römische Ziffern gefolgt von einem Punkt. ➐ Der gesamte Inhalt einschließlich ggf. auftretender Unterstrukturen von <Titel> in der Umgebung von <Teil> wird in die rechte Tabellenzelle eingeordnet (am oberen Zellenrand angeschlagen und links aliniiert). Vgl. Abschnitt Vgl. Abschnitt 3.9

XSL-FO verstehen und anwenden

XSL-FO verstehen und anwenden xml.bibliothek XSL-FO verstehen und anwenden XML-Verarbeitung für PDF und Druck Bearbeitet von Manfred Krüger 1. Auflage 2006. Taschenbuch. 488 S. Paperback ISBN 978 3 89864 394 8 Weitere Fachgebiete >

Mehr

XSL-FO verstehen und anwenden

XSL-FO verstehen und anwenden Manfred Krüger XSL-FO verstehen und anwenden XML-Verarbeitung für PDF und Druck 2., überarbeitete und veränderte Ausgabe Vorwort zur zweiten Ausgabe ix I. Grundlagen 1 XSL Was? Wozu? Warum? 3 1.1 XSL Was

Mehr

Transformation von XML-Dokumenten. IDE SummerSchool 2013, Chemnitz

Transformation von XML-Dokumenten. IDE SummerSchool 2013, Chemnitz Transformation von XML-Dokumenten Folie 1 Was ist XSL politisch? XSL ist eine eigene Technik. Zum Publizieren (Transformieren) von Dokumenten. Früher gab es dafür Verlage und Schriftsetzer, um gute Inhalte

Mehr

Projektseminar "Texttechnologische Informationsmodellierung"

Projektseminar Texttechnologische Informationsmodellierung Projektseminar "Texttechnologische Informationsmodellierung" Formatierung und Transformation http://www.text-technology.de/projects/sekimo.html Ziel dieser Sitzung Nach dieser Sitzung sollten Sie: XPath

Mehr

Auszug aus: Helmut Vonhoegen: Einstieg in XML, 3. Auflage, Galileo Press 2005

Auszug aus: Helmut Vonhoegen: Einstieg in XML, 3. Auflage, Galileo Press 2005 Kurzreferenz zu XSLT Auszug aus: Helmut Vonhoegen: Einstieg in XML, 3. Auflage, Galileo Press 2005 Diese Anweisung sorgt dafür, dass auf den aktuellen Knoten nur die in das Stylesheet

Mehr

Verwaltungsaufgaben lösen mit XML und L A T E X

Verwaltungsaufgaben lösen mit XML und L A T E X Verwaltungsaufgaben lösen mit XML und L A T E X Uwe Siart T E X-Stammtisch München tutorien@siart.de Erstellt: 11. März 2003 Zuletzt geändert: 7. November 2008 Beispiele für Verwaltungsaufgaben 1 Listen

Mehr

Erstellen von PDF-Dokumenten für Business-Anwendungen mit XSL-FO

Erstellen von PDF-Dokumenten für Business-Anwendungen mit XSL-FO Erstellen von PDF-Dokumenten für Business-Anwendungen mit XSL-FO Ich über mich Rudi Gast (rgast@ghs-software.de) seit 2000 angestellt bei der GHS Tätigkeiten: Projektleitung Softwareentwicklung F&E ca.

Mehr

XML-Verarbeitung. XPath XSL die extensible Stylesheet Language. Torsten Schaßan SCRIPTO Modul 4: EDV Wolfenbüttel 25.-29.6.2012.

XML-Verarbeitung. XPath XSL die extensible Stylesheet Language. Torsten Schaßan SCRIPTO Modul 4: EDV Wolfenbüttel 25.-29.6.2012. XML-Verarbeitung XPath XSL die extensible Stylesheet Language Folie 1 Was ist XSL? - Mehrere Komponenten: - XSLT Transformations - XSL-FO Formatting Objects - XPath - (XML-Schema) - Ausgabeformate: - XML,

Mehr

XSL-FO. XSL-Formatting Objects.

XSL-FO. XSL-Formatting Objects. XSL-FO XSL-Formatting Objects http://www.w3.org/tr/xsl11/ Das Umfeld XSL-FO... bildet zusammen mit XSLT und XPath die XSL (extensible Stylesheet Language)... ist eine XML Applikation... definiert das visuelle

Mehr

Gradle. Ein kompakter Einstieg in modernes Build-Management. Joachim Baumann. Joachim Baumann, Gradle, dpunkt.verlag, ISBN

Gradle. Ein kompakter Einstieg in modernes Build-Management. Joachim Baumann. Joachim Baumann, Gradle, dpunkt.verlag, ISBN D3kjd3Di38lk323nnm Joachim Baumann Gradle Ein kompakter Einstieg in modernes Build-Management Joachim Baumann joachim.baumann@codecentric.de Lektorat: René Schönfeldt Copy Editing: Sandra Gottmann, Münster-Nienberge

Mehr

Hinweise für die Nutzung von XSLTs beim PDF Export der BlueBridge Wiki Extensions

Hinweise für die Nutzung von XSLTs beim PDF Export der BlueBridge Wiki Extensions Hinweise für die Nutzung von XSLTs beim PDF Export der BlueBridge Wiki Extensions Dieses Dokument beschreibt die Einbindung von XSLTs, um die Format von PDF Exporten zu definieren. Wichtiger Hinweis: Mit

Mehr

XSL und XSLT. Inhalt. Mathias Heilig email: mathias.heilig@gmx.de. XSL Übersicht. Formatierungsprozess. Sprachbeschreibung. Vorführung Resümee

XSL und XSLT. Inhalt. Mathias Heilig email: mathias.heilig@gmx.de. XSL Übersicht. Formatierungsprozess. Sprachbeschreibung. Vorführung Resümee Mathias Heilig email: mathias.heilig@gmx.de Inhalt XSL Übersicht XSL im XML- Umfeld XSLT XPath XSL- FO Was können wir mit XSLT heute machen? Formatierungsprozess XSLT im XML- Formatierungsprozess Transformation

Mehr

Betriebssysteme. Grundlagen, Konzepte, Systemprogrammierung. von Eduard Glatz. 1. Auflage

Betriebssysteme. Grundlagen, Konzepte, Systemprogrammierung. von Eduard Glatz. 1. Auflage Betriebssysteme Grundlagen, Konzepte, Systemprogrammierung von Eduard Glatz 1. Auflage Betriebssysteme Glatz schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG dpunkt.verlag 2005 Verlag

Mehr

Generierung von PDF-Dokumenten mittels XSL-FO

Generierung von PDF-Dokumenten mittels XSL-FO Generierung von PDF-Dokumenten mittels XSL-FO Bernd Hort bernd.hort@hort-net.de Agenda Vorstellung Motivation XSL-FO Zusammenspiel mit Notes / Domino Zusammenfassung & Erfahrungen Web-Ressourcen und Literatur-Empfehlungen

Mehr

Grundlagen der Extensible Stylesheet Language

Grundlagen der Extensible Stylesheet Language Grundlagen der Extensible Stylesheet Language Transformations (XSLT) Marc Monecke monecke@informatik.uni-siegen.de Praktische Informatik Fachbereich Elektrotechnik und Informatik Universität Siegen, D-57068

Mehr

Transformation von XML-Dokumenten mit XSLT

Transformation von XML-Dokumenten mit XSLT Transformation von XML-Dokumenten mit XSLT Fabian Holzer Proseminar XML - Grundlagen, Verarbeitung und Anwendungen Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl für Systeme der

Mehr

http://www.therealgang.de/ Titel : Einführung in XML (Teil 2/2) Author : Dr. Pascal Rheinert Kategorie : Programmierung-Sonstige Teil II: XML (Dokument 2/2) Wichtiger Hinweis: Das folgende Dokument basiert

Mehr

Konfigurationsmanagement mit Subversion, Maven und Redmine

Konfigurationsmanagement mit Subversion, Maven und Redmine Gunther Popp Konfigurationsmanagement mit Subversion, Maven und Redmine Grundlagen für Softwarearchitekten und Entwickler 4., aktualisierte und erweiterte Auflage Gunther Popp gpopp@km-buch.de Lektorat:

Mehr

Software entwickeln mit Verstand

Software entwickeln mit Verstand D3kjd3Di38lk323nnm Jörg Dirbach Markus Flückiger Steffen Lentz Software entwickeln mit Verstand Was Sie über Wissensarbeit wissen müssen, um Projekte produktiver zu machen Jörg Dirbach jdi@zuehlke.com

Mehr

Abenteuer Softwarequalität

Abenteuer Softwarequalität Abenteuer Softwarequalität Grundlagen und Verfahren für Qualitätssicherung und Qualitätsmanagement Bearbeitet von Kurt Schneider erweitert, überarbeitet 2012. Taschenbuch. 264 S. Paperback ISBN 978 3 89864

Mehr

Extensible Stylesheet Language Transformations XSLT

Extensible Stylesheet Language Transformations XSLT Extensible Stylesheet Language Transformations XSLT 13.06.2007 Grundlagen der Stylesheets XSLT Extensible Stylesheet Language Transformation Transformation Überführt XML-Daten in ein neues Format wieder

Mehr

Templat-Regeln: XSLT Transformation: XML-Dokumente als Bäume: sieben Arten von Knoten. XSLT Verarbeitungsmodell für Templat-Regeln.

Templat-Regeln: XSLT Transformation: XML-Dokumente als Bäume: sieben Arten von Knoten. XSLT Verarbeitungsmodell für Templat-Regeln. XSLT Transformation: Templat-Regeln: XSLT Stylesheets: ausgedrückt in einem wohlgeformten XML-Dokument Muster zum Abgleich gegen Knoten im Ursprungsbaum Templat, dessen Körper instantiiert wird, liefert

Mehr

Abenteuer Softwarequalität

Abenteuer Softwarequalität Kurt Schneider Abenteuer Softwarequalität Grundlagen und Verfahren für Qualitätssicherung und Qualitätsmanagement 2., überarbeitete und erweiterte Auflage Prof. Dr. Kurt Schneider Kurt.Schneider@inf.uni-hannover.de

Mehr

XML. extensible Markup Language. Dr. Beatrice Amrhein. www.w3.org/xml

XML. extensible Markup Language. Dr. Beatrice Amrhein. www.w3.org/xml XML extensible Markup Language www.w3.org/xml Dr. Beatrice Amrhein 2 Inhaltsverzeichnis 1 XML Grundlagen...5 1.1 Die wichtigsten Punkte...5 1.2 XML Sprachen und Anwendungen...7 1.3 Der Aufbau eines XML

Mehr

Scrum in der Praxis. Erfahrungen, Problemfelder und Erfolgsfaktoren. Bearbeitet von Dipl.-Inform. Sven Röpstorff, Dipl.-Kaufm.

Scrum in der Praxis. Erfahrungen, Problemfelder und Erfolgsfaktoren. Bearbeitet von Dipl.-Inform. Sven Röpstorff, Dipl.-Kaufm. Scrum in der Praxis Erfahrungen, Problemfelder und Erfolgsfaktoren Bearbeitet von Dipl.-Inform. Sven Röpstorff, Dipl.-Kaufm. Robert Wiechmann 1. Auflage 2012. Buch. 348 S. Hardcover ISBN 978 3 89864 792

Mehr

XSL Templates. Mit Templates arbeiten. XSL Templates

XSL Templates. Mit Templates arbeiten. XSL Templates XSL Templates Mit Templates arbeiten Innerhalb von XSLT werden Templates verwendet. Ein Template ist eine Vorlage für die Transformation bestimmter Knoten. Diese Knoten können Elemente, Attribute oder

Mehr

IT-Zertifikat: Daten- und Metadatenstandards. Transformation von XML-Dokumenten mit XSLT (und XPATH) XSLT kurz und knackig. XSLT und die Praxis

IT-Zertifikat: Daten- und Metadatenstandards. Transformation von XML-Dokumenten mit XSLT (und XPATH) XSLT kurz und knackig. XSLT und die Praxis IT-Zertifikat: Daten- und Metadatenstandards Transformation von XML-Dokumenten mit XSLT (und XPATH) XSLT kurz und knackig I. Was ist XSLT? XSL Transformation (XSLT) ist eine Programmiersprache zur Transformation

Mehr

verstehen und anwenden

verstehen und anwenden XSL-FO verstehen und anwenden Manfred Krüger Innovatives Publishingwissen für die Praxis Innovatives Publishingwissen für die Praxis Die XML-Schule bietet Seminare und Weiterbildung im Bereich Elektronisches

Mehr

Einführung. Hallo-Welt in XSLT

Einführung. Hallo-Welt in XSLT 2. Vorlagen-Technik Inhalt 1. Einführung 2. Vorlagen 3. XPath 4. Kontrollstrukturen 5. Sortierung, Gruppierung und Nummerierung 6. Parameter und Variablen 7. Vorgaben für Ein- und Ausgabeformate 8. Auslagerung

Mehr

Dipl.-Inform. Arno Becker Dipl.-Inform. Marcus Pant

Dipl.-Inform. Arno Becker Dipl.-Inform. Marcus Pant Dipl.-Inform. Arno Becker ist bei der visionera GmbH verantwortlich für den Bereich»Mobile Lösungen«. Nach langjähriger Erfahrung mit Java ME beschäftigte er sich von Beginn an intensiv mit Android. Als

Mehr

Einführung in XSL-FO

Einführung in XSL-FO Einführung in XSL-FO Druckvorlagen erzeugen Martina Semlak martina.semlak@uni-graz.at Überblick XSL-FO Grundlagen Seitenvorlagen und Seitenaufbau definieren Inhalte einfügen Seitenfolgenvorlagen XSLT +

Mehr

Konfigurationsmanagement mit Subversion, Ant und Maven

Konfigurationsmanagement mit Subversion, Ant und Maven Gunther Popp Konfigurationsmanagement mit Subversion, Ant und Maven Grundlagen für Softwarearchitekten und Entwickler 2., aktualisierte Auflage Gunther Popp gpopp@km-buch.de Lektorat: René Schönfeldt Copy-Editing:

Mehr

Management von IT-Produkten

Management von IT-Produkten Management von IT-Produkten Geschäftsmodelle, Leitlinien und Werkzeugkasten für softwareintensive Systeme und Dienstleistungen Bearbeitet von Georg Herzwurm, Wolfram Pietsch 1. Auflage 2008. Buch. 388

Mehr

Duale Zustellung. Standardprofile. Version 1.0.0, 14.08.2007. DI Arne Tauber arne.tauber@egiz.gv.at

Duale Zustellung. Standardprofile. Version 1.0.0, 14.08.2007. DI Arne Tauber arne.tauber@egiz.gv.at www.egiz.gv.at E-Mail: post@egiz.gv.at Telefon: ++43 (316) 873 5514 Fax: ++43 (316) 873 5520 Inffeldgasse 16a / 8010 Graz / Austria Duale Zustellung Version 1.0.0, 14.08.2007 DI Arne Tauber arne.tauber@egiz.gv.at

Mehr

Seminar Dokumentenverarbeitung

Seminar Dokumentenverarbeitung XPath und XSL/XSLT Seminar Dokumentenverarbeitung Juni 2002 Jan-Gerrit Drexhage jdrexhag@techfak.uni-bielefeld.de Garvin Gripp ggripp@techfak.uni-bielefeld.de 1 XSLT extensible Stylesheet Language (for

Mehr

und -implementierungstechniken, Datenbanken & Java.

und -implementierungstechniken, Datenbanken & Java. Gunter Saake ist Professor für Datenbanken und Informationssysteme an der Uni Magdeburg und forscht unter anderem auf den Gebieten Datenbankintegration, digitale Bibliotheken, objektorientierte Informationssysteme

Mehr

Dipl.-Inform. Arno Becker ist bei der visionera GmbH verantwortlich für den Bereich»Mobile Lösungen«. Nach langjähriger Erfahrung mit Java ME

Dipl.-Inform. Arno Becker ist bei der visionera GmbH verantwortlich für den Bereich»Mobile Lösungen«. Nach langjähriger Erfahrung mit Java ME Dipl.-Inform. Arno Becker ist bei der visionera GmbH verantwortlich für den Bereich»Mobile Lösungen«. Nach langjähriger Erfahrung mit Java ME beschäftigte er sich von Beginn an intensiv mit Android. Als

Mehr

Inhaltsverzeichnis. Daniel Koch. XML für Webentwickler. Ein praktischer Einstieg ISBN:

Inhaltsverzeichnis. Daniel Koch. XML für Webentwickler. Ein praktischer Einstieg ISBN: sverzeichnis Daniel Koch XML für Webentwickler Ein praktischer Einstieg ISBN: 978-3-446-42256-8 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-42256-8 sowie im Buchhandel.

Mehr

Agile Softwareentwicklung in großen Projekten

Agile Softwareentwicklung in großen Projekten D3kjd3Di38lk323nnm Jutta Eckstein Agile Softwareentwicklung in großen Projekten Teams, Prozesse und Technologien Strategien für den Wandel im Unternehmen 2., überarbeitete u. aktualisierte Auflage Jutta

Mehr

Tilo Linz ist Vorstand und Mitgründer der imbus AG, einem führenden Lösungsanbieter für Softwaretest und seit mehr als 20 Jahren

Tilo Linz ist Vorstand und Mitgründer der imbus AG, einem führenden Lösungsanbieter für Softwaretest und seit mehr als 20 Jahren Tilo Linz ist Vorstand und Mitgründer der imbus AG, einem führenden Lösungsanbieter für Softwaretest und seit mehr als 20 Jahren im Themengebiet Softwarequalitätssicherung und Softwaretest tätig. Als Gründer

Mehr

XSL-FO. Dienstag, 16. Mai Manuel Montero Pineda data2type GmbH

XSL-FO. Dienstag, 16. Mai Manuel Montero Pineda data2type GmbH XSL-FO Dienstag, 16. Mai 2017 Zu meiner Person: Manuel Montero Pineda > Dipl.-Wirtschaftsinformatiker (FH), M.A. > XML-Entwickler und Berater im Bereich XML Schema, OOXML, XSLT, XSL-FO, u.v.m. > Veröffentlichungen

Mehr

Andreas Spillner / Ulrich Breymann, Lean Testing für C++-Programmierer, dpunkt.verlag, ISBN

Andreas Spillner / Ulrich Breymann, Lean Testing für C++-Programmierer, dpunkt.verlag, ISBN Andreas Spillner ist Professor für Informatik an der Hochschule Bremen. Er war über 10 Jahre Sprecher der Fachgruppe TAV»Test, Analyse und Verifikation von Software«der Gesellschaft für Informatik e.v.

Mehr

Eine Schnelleinführung in XSL

Eine Schnelleinführung in XSL Eine Schnelleinführung in XSL Michael Dienert 8. Juli 2014 1 Was ist XSL? XSL ist die Abkürzung von Extensible Stylesheet Language. XSL ist selbst wieder eine XML-Anwendung, d.h. XSL-Dokumente müssen immer

Mehr

Bereits während seines Studiums der Humanmedizin übte Bertram Solcher fotojournalistische Tätigkeiten für regionale

Bereits während seines Studiums der Humanmedizin übte Bertram Solcher fotojournalistische Tätigkeiten für regionale D3kjd3Di38lk323nnm Foto: Katja Solcher Bereits während seines Studiums der Humanmedizin übte Bertram Solcher fotojournalistische Tätigkeiten für regionale und überregionale Tageszeitungen sowie nationale

Mehr

XSL Transformation. Eine praxisorientierte Einführung Philip Heck

XSL Transformation. Eine praxisorientierte Einführung Philip Heck XSL Transformation Eine praxisorientierte Einführung Philip Heck Agenda Motivation Hello World - Getting Started with XSLT XSLT Verarbeitung im Detail XPath 2 Motivation datenzentriertes XML als Standard

Mehr

Das Fuji X100 Handbuch

Das Fuji X100 Handbuch Michael Diechtierow Das Fuji X100 Handbuch Fotografieren mit der Fujifilm FinePix X100 Dr. Michael Diechtierow michi@dpunkt.de Lektorat: Gerhard Rossbach, Rudolf Krahm Technische Redaktion: Rudolf Krahm

Mehr

Formvorgaben für Seminar- und Abschlussarbeiten

Formvorgaben für Seminar- und Abschlussarbeiten Formvorgaben für Seminar- und Abschlussarbeiten Hinweis: Die Formatierung sollte zu Beginn vorgenommen werden. Weiterhin sollten die Automatisierungsmöglichkeiten des Textverarbeitungsprogramms genutzt

Mehr

Konzept und Realisierung Extensible Stylesheet Language

Konzept und Realisierung Extensible Stylesheet Language Konzept und Realisierung Extensible Stylesheet Language Hauptseminar Telematik SS2002 Kai Weber XSL/XSLT 1 Inhalt des Vortrages Wozu dienen Stylesheets Vorstellung der XSL-Sprachfamilie Transformationen

Mehr

3 XSLT Einführung in die Transformationssprache

3 XSLT Einführung in die Transformationssprache 19 3 XSLT Einführung in die Transformationssprache Dieses Kapitel soll als Einstieg in die Transformationssprache XSLT dienen. Wie bereits in den vorangegangenen Kapiteln gezeigt wurde, ist XSLT für die

Mehr

Panoramafotografie: Theorie und Praxis

Panoramafotografie: Theorie und Praxis D3kjd3Di38lk323nnm Harald Woeste Panoramafotografie: Theorie und Praxis 2., aktualisierte und erweiterte Auflage Harald Woeste hgw@woeste.biz Lektorat: Barbara Lauer, Bonn Copy-Editing: Alexander Reischert

Mehr

WIKI IN EWS Grundlegende Syntaxelemente zur Bearbeitung von Wiki-Artikeln

WIKI IN EWS Grundlegende Syntaxelemente zur Bearbeitung von Wiki-Artikeln WIKI IN EWS Grundlegende Syntaxelemente zur Bearbeitung von Wiki-Artikeln Jede EWS-Veranstaltung umfasst ein Wiki auf Grundlage der Software MediaWiki, auf welcher auch die Online-Ezyklopädie Wikipedia

Mehr

ios-apps programmieren mit Swift

ios-apps programmieren mit Swift Christian Bleske ios-apps programmieren mit Swift Der leichte Einstieg in die Entwicklung für iphone, ipad und Co. inkl. Apple Watch und Apple TV 2., aktualisierte und erweiterte Auflage Christian Bleske

Mehr

Wir studieren HTML-Tags

Wir studieren HTML-Tags Abb. 1: Word-Dokument Abb. 2: Das Dokument aus Abb. 1 mit einem Editor betrachtet Wir studieren HTML-Tags Wenn man ein Word-Dokument wie in Abb. 1 mit einem Editor anschaut, erkennt man den Quelltext des

Mehr

3.1 Sinn und Zweck von Namensräumen

3.1 Sinn und Zweck von Namensräumen 3 3 Die Erstellung eigener Auszeichnungssprachen und somit die Erschaffung eigener Dokumenttypen, in denen die Elemente ihre eigene Bedeutung haben, ist mit XML leicht gemacht. Natürlich können solche

Mehr

Kennen, können, beherrschen lernen was gebraucht wird

Kennen, können, beherrschen lernen was gebraucht wird Inhaltsverzeichnis Inhaltsverzeichnis... 1 Tags (Befehle)... 1 Erste Texte im Browser... 2 Das HTML Grundgerüst... 2 Ihre erste echte Webseite... 2 Texte... 3 Textabsatz und Zeilenumbruch... 3 Einen Zeilenumbruch

Mehr

Erste Hilfe für Social Media Manager

Erste Hilfe für Social Media Manager Erste Hilfe für Social Media Manager Rezepte & Best Practices für mehr Erfolg im Unternehmensalltag von Meike Leopold, Andreas H. Bock, Björn Eichstädt, Anett Gläsel-Maslov, Malina Kruse-Wiegand, Thomas

Mehr

TCP/IP Grundlagen und Praxis

TCP/IP Grundlagen und Praxis D3kjd3Di38lk323nnm Gerhard Lienemann Dirk Larisch TCP/IP Grundlagen und Praxis Protokolle, Routing, Dienste, Sicherheit 2., aktualisierte Auflage Heise Gerhard Lienemann / Dirk Larisch, TCP/IP Grundlagen

Mehr

Psychologie der Fotografie: Kopf oder Bauch?

Psychologie der Fotografie: Kopf oder Bauch? Psychologie der Fotografie: Kopf oder Bauch? Über die Kunst Menschen zu fotografieren Bearbeitet von Sven Barnow 1. Auflage 2015. Taschenbuch. VIII, 136 S. Paperback ISBN 978 3 86490 270 3 Format (B x

Mehr

ww unk w t.. e p / un plu k s t.de/plus

ww unk w t.. e p / un plu k s t.de/plus Torsten Andreas Hoffmann ist Fotograf, Buchautor und leitet Fotoworkshops. Er studierte Kunstpädagogik mit Schwerpunkt Fotografie an der Hochschule für Bildende Künste in Braunschweig. Fotoreisen führten

Mehr

Praxiswissen Softwaretest

Praxiswissen Softwaretest D3kjd3Di38lk323nnm Praxiswissen Softwaretest Testmanagement Andreas Spillner ist Professor für Informatik an der Hochschule Bremen, Fakultät für Elektrotechnik und Informatik. Er war über 10 Jahre Sprecher

Mehr

XSL-FO XSL Formatting Objects

XSL-FO XSL Formatting Objects XML-Praxis XSL-FO XSL Formatting Objects Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht Funktionsweise von XSL-FO Seitendefinitionen Areas block- und inline-elemente Fonts XSLT und XSL-FO XML-Praxis

Mehr

Das LEGO -MINDSTORMS-EV3-Ideenbuch

Das LEGO -MINDSTORMS-EV3-Ideenbuch Das LEGO -MINDSTORMS-EV3-Ideenbuch 181 einfache Maschinen und clevere Konstruktionen Bearbeitet von Yoshihito Isogawa 1. Auflage 2015. Taschenbuch. VIII, 223 S. Paperback ISBN 978 3 86490 272 7 Format

Mehr

Praktikum zu XML: Übung 11

Praktikum zu XML: Übung 11 Fachhochschule Wiesbaden - Fachbereich Informatik Praktikum zu XML: Übung 11 XSLT Eine HTML-Tabelle 10.06.2003 H. Werntges, FB Informatik, FH Wiesbaden 1 Organisatorisches Arbeitsverzeichnis: ~/kurse/xml/11/

Mehr

XSL. extended Stylesheet Language. Die Stylesheet Sprache für XML

XSL. extended Stylesheet Language. Die Stylesheet Sprache für XML XSL extended Stylesheet Language Die Stylesheet Sprache für XML XPath www.w3.org/tr/xpath Adressierung Die Templates im Stylesheet können nur dann richtig (an der richtigen Stelle) angewandt werden, wenn

Mehr

Barrierefreiheit verstehen und umsetzen

Barrierefreiheit verstehen und umsetzen D3kjd3Di38lk323nnm Jan Eric Hellbusch Kerstin Probiesch Barrierefreiheit verstehen und umsetzen Webstandards für ein zugängliches und nutzbares Internet Jan Eric Hellbusch / Kerstin Probiesch, Barrierefreiheit

Mehr

Klaus Schild, XML Clearinghouse 2003. Transformation von XML-Dokumenten

Klaus Schild, XML Clearinghouse 2003. Transformation von XML-Dokumenten Transformation von XML-Dokumenten Lernziele Warum kann es sinnvoll sein XML-Dokumente zu transformieren? Wie funktioniert XSLT (Extensible Stylesheet Language Transformations)? Was ist XPath? Was sind

Mehr

Dr. Michael Diechtierow

Dr. Michael Diechtierow Dr. Michael Diechtierow michi@dpunkt.de Lektorat: Gerhard Rossbach, Rudolf Krahm Technische Redaktion: Rudolf Krahm Korrektorat: Sandra Gottmann Satz: Anna Diechtierow Herstellung: Birgit Bäuerlein Umschlaggestaltung:

Mehr

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN 184.705 2. 12. 2013 Kennnr. Matrikelnr. Familienname Vorname

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN 184.705 2. 12. 2013 Kennnr. Matrikelnr. Familienname Vorname Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN 184.705 2. 12. 2013 Kennnr. Matrikelnr. Familienname Vorname Arbeitszeit: 100 Minuten. Aufgaben sind auf den Angabeblättern zu lösen; Zusatzblätter werden nicht

Mehr

Nicolai Josuttis. SOA in der Praxis. System-Design für verteilte Geschäftsprozesse

Nicolai Josuttis. SOA in der Praxis. System-Design für verteilte Geschäftsprozesse Nicolai Josuttis SOA in der Praxis System-Design für verteilte Geschäftsprozesse Nicolai Josuttis Website zum Buch http://www.soa-in-der-praxis.de Die englische Ausgabe erschien unter dem Titel»SOA in

Mehr

APEX und Apache FOP Freie PDF-Erstellung mit APEX 3.0.1

APEX und Apache FOP Freie PDF-Erstellung mit APEX 3.0.1 APEX und Apache FOP Freie PDF-Erstellung mit APEX 3.0.1 Dr. Gudrun Pabst Basel Baden Bern Lausanne Zürich Düsseldorf Frankfurt/M. Freiburg i. Br. Hamburg München Stuttgart Agenda Kürzel: XML, XSL, XSLT,

Mehr

Praktikum zur Veranstaltung XML-Technologie: Übung 09

Praktikum zur Veranstaltung XML-Technologie: Übung 09 Fachhochschule Wiesbaden - Fachbereich Informatik Praktikum zur Veranstaltung XML-Technologie: Übung 09 XSLT Eine HTML-Tabelle 06.01.2005 (c) 2004 H. Werntges, FB Informatik, FH Wiesbaden 1 Organisatorisches

Mehr

XML-Praxis. Mit XSLT arbeiten. Jörn Clausen

XML-Praxis. Mit XSLT arbeiten. Jörn Clausen XML-Praxis Mit XSLT arbeiten Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht Kontrollstrukturen Bedingungen Schleifen named templates Variablen und Parameter Rekursion XML-Praxis Mit XSLT arbeiten

Mehr

Verteilte Anwendungen. Teil 8: XSL II (XSLT)

Verteilte Anwendungen. Teil 8: XSL II (XSLT) Verteilte Anwendungen Teil 8: XSL II (XSLT) 27.10.16 1 Literatur [8-1] Bongers, Frank: XSLT 2.0. Galileo, 2004 [8-2] Skulschus, Marco; Wiederstein, Marcus: XSLT 2.0. mitp, 2005 [8-3] Lenz,Evan: XSLT 1.0

Mehr

Copyright icomedias GmbH icomedias Group

Copyright icomedias GmbH icomedias Group Version 1.0 September 2016 Copyright icomedias GmbH icomedias Group www.icomedias.com CMS Land Steiermark CMS Editor Seite 2 von 8 Inhalt 1 Der Textblock-Editor... 3 1.1 Tabellen einfügen... 5 1.1 Tabellenzusatzleiste...

Mehr

XML mit Java OpenSource. (c) Mark Egloff 2004 FOP. << Apache s FOP >>

XML mit Java OpenSource. (c) Mark Egloff 2004 FOP. << Apache s FOP >> FOP > 1 Was ist FOP? FOP FOP = Formatting Object Processor Ein FOP Prozessor setzt die XML FO Dateien gemäss den Anweisungen in das jeweilige binäre Format um Apache besitzt eine Opensource

Mehr

Neuronale Netze selbst programmieren

Neuronale Netze selbst programmieren D3kjd3Di38lk323nnm Neuronale Netze selbst programmieren Ein verständlicher Einstieg mit Python Tariq Rashid Deutsche Übersetzung von Frank Langenau Tariq Rashid Lektorat: Alexandra Follenius Übersetzung:

Mehr

Präsentationstexte formatieren

Präsentationstexte formatieren 3 Präsentationstexte formatieren und gliedern 54 aufzählungen formatieren A B C Wählen Sie auf der Registerkarte Start aus den Formen das Textfeld aus. Zeichnen Sie das Textfeld in der gewünschten Größe

Mehr

Digitales Publizieren für Tablets

Digitales Publizieren für Tablets D3kjd3Di38lk323nnm Michaela Lehr Richard Brammer Digitales Publizieren für Tablets Magazin-Apps mit InDesign für ipad, Android & Co. Michaela Lehr / Richard Brammer, Digitales Publizieren für Tablets,

Mehr

CARL HANSER VERLAG. Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis 3-446-22562-5. www.hanser.de

CARL HANSER VERLAG. Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis 3-446-22562-5. www.hanser.de CARL HANSER VERLAG Dirk Ammelburger XML Grundlagen der Sprache und Anwendungen in der Praxis 3-446-22562-5 www.hanser.de 1 1.1 Einleitung... 2 Über dieses Buch... 3 1.2 Für wen ist das Buch gedacht?...

Mehr

Entwicklung eines Tutorials für XQuery

Entwicklung eines Tutorials für XQuery Informatik Dimitar Menkov Entwicklung eines Tutorials für XQuery Development of a Tutorial for XQuery Masterarbeit Bibliografische Information der Deutschen Nationalbibliothek: Die Deutsche Bibliothek

Mehr

Projektseminar "Texttechnologische Informationsmodellierung"

Projektseminar Texttechnologische Informationsmodellierung Projektseminar "Texttechnologische Informationsmodellierung" Analyse mit XSLT Ziel diese Sitzung Nach dieser Sitzung sollten Sie: Einen ersten Überblick über Funktionen in XPath haben Stylesheets und Templates

Mehr

Inhaltsverzeichnis. Teil 1 Grundlagen 5. Teil 2 Formatierung 31 INHALTSVERZEICHNIS

Inhaltsverzeichnis. Teil 1 Grundlagen 5. Teil 2 Formatierung 31 INHALTSVERZEICHNIS Inhaltsverzeichnis Vorwort 1 Was hat XML, das HTML nicht hat?......................................... 1 Zu diesem Buch.......................................................... 3 Die Website zum Buch....................................................

Mehr

Wichtiger Hinweis: Deaktivieren Sie bei allen Formatvorlagen folgendes Kontrollkästchen: Zur Liste der Schnellformatvorlagen hinzufügen

Wichtiger Hinweis: Deaktivieren Sie bei allen Formatvorlagen folgendes Kontrollkästchen: Zur Liste der Schnellformatvorlagen hinzufügen - 1 - Aufgabe 4 Word 2016 1. Starten Sie Word und öffnen die Datei Aufgabe 4.doc die sich im aktuellen Verzeichnis auf der Festplatte befindet. 2. Das Dokument stellt einen Teil eines umfangreichen Buches

Mehr

IN A NUTSHELL. Elliotte Rusty Harold & W, Scott Means. Deutsche Übersetzung von Kathrin Lichtenberg & Jochen Wiedmann O'REILLY*

IN A NUTSHELL. Elliotte Rusty Harold & W, Scott Means. Deutsche Übersetzung von Kathrin Lichtenberg & Jochen Wiedmann O'REILLY* 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. IN A NUTSHELL Elliotte Rusty Harold & W, Scott Means Deutsche Übersetzung

Mehr

XSLT XSL Transformations

XSLT XSL Transformations XML-Praxis XSLT XSL Transformations Teil 2 Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht weitere XSLT-Techniken: Bedingungen, Verzweigungen Schleifen templates aufrufen Variablen, Parameter Anwendungsbeispiel

Mehr

Vorwort. Unterschiede zu XSL-FO in der Praxis. Eine Einführung. dpunkt.verlag 2004

Vorwort. Unterschiede zu XSL-FO in der Praxis. Eine Einführung. dpunkt.verlag 2004 ix Das Konzept des ersten Buches zur praktischen Nutzung der XSL-FO- Technologie in deutscher Sprache, XSL-FO in der Praxis 1, hat sich bewährt das zeigen die übereinstimmenden Reaktionen der Leser und

Mehr

Einführung: Installation und Anpassung der Site zum Buch 15

Einführung: Installation und Anpassung der Site zum Buch 15 XML, XSLT, VB und ASP Praktisches XML-Wissen für Webprojekte Elmar Geese, Markus Heiliger, Matthias Lohrer Galileo Computing 350 S., 2001, geb., mit CD 34,90 Euro, ISBN 3-89842-109-0 Inhalt Vorwort 11

Mehr

Druckvorlage mit XSL FO

Druckvorlage mit XSL FO Druckvorlagen mit XSL FO Schulung ist als Spezialisierung des Themas Transformation konzipiert Schulung ist als Einführung in das Thema Formatting Objects konzipiert Übungsmaterialien für die Schulung

Mehr

<Trainingsinhalt> XML umsetzen und nutzen

<Trainingsinhalt> XML umsetzen und nutzen XML umsetzen und nutzen i Inhaltsverzeichnis Einführung 11 Das Problem mit HTML 12 Die Stärke von XML 13 Die XML-Helfer 14 XML im wirklichen Leben 15 Zu diesem Buch 16 Was Sie hier nicht

Mehr

Inhaltsverzeichnis. Teil 1 - XM L Einleitung Motivation...15

Inhaltsverzeichnis. Teil 1 - XM L Einleitung Motivation...15 Inhaltsverzeichnis 1 Einleitung...11 2 Motivation...15 Teil 1 - XM L......17 3 Geschichte von X M L...17 3.1 Markupsprachen...17 3.1.1 Auszeichnungsarten...17 3.1.2 Markupsprachen...20 4 Zeichensatz...

Mehr

Inhalte. Stylesheet-Wurzel Vorlagen Ausgabe Leerraum Funktionen Kontrollanweisungen & Techniken Sortierung Nummerierung

Inhalte. Stylesheet-Wurzel Vorlagen Ausgabe Leerraum Funktionen Kontrollanweisungen & Techniken Sortierung Nummerierung XSLT Inhalte Stylesheet-Wurzel Vorlagen Ausgabe Leerraum Funktionen Kontrollanweisungen & Techniken Sortierung Nummerierung Gruppierung XML-Erstellung Variablen und Parameter Module kombinieren Reguläre

Mehr

Leitlinie zur Erstellung von wissenschaftlichen Arbeiten im Universitätslehrgang Kunsttherapie an der SFU Wien

Leitlinie zur Erstellung von wissenschaftlichen Arbeiten im Universitätslehrgang Kunsttherapie an der SFU Wien Leitlinie zur Erstellung von wissenschaftlichen Arbeiten im Universitätslehrgang Kunsttherapie an der SFU Wien Die Leitlinien zur formalen Gestaltung sind als Empfehlung zu verstehen und bauen auf gängigen

Mehr

Alle Schularten. Layout schriftliche Dokumentation

Alle Schularten. Layout schriftliche Dokumentation schriftliche Dokumentation schriftliche Dokumentation Berufliches Gymnasium Berufskollegs Berufsfachschulen Berufsschulen Thema Fach: Lehrer(in): Verfasser(in)/Schülername: Schulart: Klasse: Schuljahr:

Mehr

Makrofotografie. Gestaltung, Licht und Technik in Natur und Studio. Cyrill Harnischmacher

Makrofotografie. Gestaltung, Licht und Technik in Natur und Studio. Cyrill Harnischmacher D3kjd3Di38lk323nnm Cyrill Harnischmacher Makrofotografie Gestaltung, Licht und Technik in Natur und Studio Cyrill Harnischmacher www.makrofotografie.com Lektorat: Rudolf Krahm Copy-Editing: Marita Böhm,

Mehr

XML-Praxis XSL-FO. Jörn Clausen.

XML-Praxis XSL-FO. Jörn Clausen. XML-Praxis XSL-FO Jörn Clausen joern@techfak.uni-bielefeld.de 1 Übersicht XSL Formatting Objects Seitendefinitionen Blöcke und Inlines 2 Eigenschaften von XSL-FO zweiter Teil von XSL (neben XSLT) XML-Sprache

Mehr

Formale Anforderungen an die Projektarbeit schriftlicher Teil

Formale Anforderungen an die Projektarbeit schriftlicher Teil Regelschule Am Hermsdorfer Kreuz Formale Anforderungen an die Projektarbeit schriftlicher Teil Abschnittsnummerierung Hauptbausteine des Textes (Vorwort, Kapitel, Zusammenfassung) sind fett zu setzen.

Mehr

XSLT XSL Transformations

XSLT XSL Transformations XML-Praxis XSLT XSL Transformations Teil 2 Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht weitere XSLT-Techniken: Bedingungen, Verzweigungen Schleifen templates aufrufen Variablen, Parameter Anwendungsbeispiel

Mehr

Fotokurs Straßenfotografie Szenen, Menschen und Orte im urbanen Raum fotografieren

Fotokurs Straßenfotografie Szenen, Menschen und Orte im urbanen Raum fotografieren Meike Fischer Rudolf Krahm Fotokurs Straßenfotografie Szenen, Menschen und Orte im urbanen Raum fotografieren Meike Fischer meike.fischer@fotokurs-frankfurt.de Rudolf Krahm krahm@dpunkt.de Lektorat: Rudolf

Mehr