Docbook: Textverarbeitung mit XML

30
DocBook Textverarbeitung mit XML Peter Eisentraut 5.3.2005

description

originally presented at Chemnitzer Linux-Tage 2005

Transcript of Docbook: Textverarbeitung mit XML

Page 1: Docbook: Textverarbeitung mit XML

DocBookTextverarbeitung mit XML

Peter Eisentraut

5.3.2005

Page 2: Docbook: Textverarbeitung mit XML

Personlich

• PostgreSQL-Entwickler

• Maintainer PostgreSQL-Dokumentation

• Debian-Entwickler

• Debian XML/SGML Group

• Maintainer DocBook DSSSL Stylesheets

• Buchautor

DocBook 1

Page 3: Docbook: Textverarbeitung mit XML

Was ist DocBook?

• XML-Vokabular fur technische Dokumente

• Stylesheets und viele Tools

• OASIS-Standard

DocBook 2

Page 4: Docbook: Textverarbeitung mit XML

Ein einfaches Beispiel

<?xml version="1.0"?><!DOCTYPE book

PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN""http://www.oasis-open.org/xml/4.3/docbookx.dtd">

<book lang="de"><title>Ein sehr einfaches Buch</title><chapter>

<title>Einf&uuml;hrung</title><para>Hallo Welt!</para>

</chapter></book>

DocBook 3

Page 5: Docbook: Textverarbeitung mit XML

Verarbeitungsbeispiel

$ xsltproc /usr/share/xml/docbook/stylesheet/nwalsh/html/docbook.xsl \beispiel.xml > beispiel.html

DocBook 4

Page 6: Docbook: Textverarbeitung mit XML

Vorteile von DocBook

• Inhalt und Format getrennt

• mehrere Ausgabeformate

• XML als standardisiertes Format

• erweiterbar, anpassbar

• lauft auf vielen Plattformen

DocBook 5

Page 7: Docbook: Textverarbeitung mit XML

Ausgabeformate

• HTML, XHTML

• PDF, PostScript

• HTML Help, JavaHelp

• RTF

• Manpages

• Plain Text

• . . .

DocBook 6

Page 8: Docbook: Textverarbeitung mit XML

Nachteile von DocBook

• kein WYSIWYG

• kein DTP-Ersatz

• nicht einfach

– viele Tags (HTML: 90, DocBook: 400)– strikte Struktur– viele kooperierende Tools

• perfekte Druckergebnisse schwierig

DocBook 7

Page 9: Docbook: Textverarbeitung mit XML

Einsatzbereiche

• wiederholte Releases

• verteilte Autorenschaft

• große, komplexe Dokumente

• mehrere Ausgabeformate

• automatische Verarbeitung

DocBook 8

Page 10: Docbook: Textverarbeitung mit XML

Aktuelle Anwender

GNOME, KDE, FreeBSD, Linux-Kernel, LDP, PostgreSQL, Debian, OpenLDAP,PHP, SuSE, Red Hat, Sun, O’Reilly, . . .

DocBook 9

Page 11: Docbook: Textverarbeitung mit XML

Verarbeitung

Umwandlung von DocBook in Zielformat

Dokument Prozessor HTML, RTF, ...

StylesheetDTD

DocBook 10

Page 12: Docbook: Textverarbeitung mit XML

Verarbeitung

Umwandlung von DocBook ber Zwischenformat in Zielformat

Dokument Prozessor XSL-FO, TeX

StylesheetDTD

Prozessor

PDF, PS

DocBook 11

Page 13: Docbook: Textverarbeitung mit XML

Die DocBook DTDs

Document Type Definition — legt die Dokumentstruktur fest

• fur XML und SGML

• Aktuell Version 4.4

• Veroffentlicht von OASIS

Zukunftig (Version 5):

• Relax NG Schemas

• XML Schemas (experimentell)

DocBook 12

Page 14: Docbook: Textverarbeitung mit XML

DTD-Beispiel

<!ELEMENT Chapter((DocInfo?, Title, Subtitle?, TitleAbbrev?), ToCchap?,(((CalloutList | GlossList | ItemizedList | OrderedList | SegmentedList |

SimpleList | VariableList | Caution | Important | Note | Tip | Warning |LiteralLayout | ProgramListing | ProgramListingCO | Screen | ScreenCO |ScreenShot | Synopsis | CmdSynopsis | FuncSynopsis | FormalPara | Para |SimPara | Address | BlockQuote | Graphic | GraphicCO | MediaObject |MediaObjectCO | InformalEquation | InformalExample | InformalFigure |InformalTable | Equation | Example | Figure | Table | MsgSet | Procedure |Sidebar | QandASet | Anchor | BridgeHead | Comment | Highlights |Abstract | AuthorBlurb | Epigraph | IndexTerm)+,

(Sect1* |(RefEntry)* |SimpleSect* | Section*))|

(Sect1+ |(RefEntry)+ |SimpleSect+ | Section+)),

(Index | Glossary | Bibliography)*)>

DocBook 13

Page 15: Docbook: Textverarbeitung mit XML

Stylesheets

• XSLT-Stylesheets

– W3C-Standard– nur fur XML DTD– Ausgabe: HTML, XHTML, HTML Help, XSL-FO, . . .

• DSSSL-Stylesheets

– ISO-Standard– fur XML und SGML DTDs– Ausgabe: HTML, TEX, RTF

DocBook 14

Page 16: Docbook: Textverarbeitung mit XML

XSLT-Beispiel

DocBook: Schreiben Sie an <email>[email protected]</email>.

<xsl:template match="email"><xsl:call-template name="inline.monoseq">

<xsl:with-param name="content"><xsl:text>&lt;</xsl:text><a><xsl:attribute name="href">mailto:<xsl:value-of select="."/></xsl:attribute><xsl:apply-templates/>

</a><xsl:text>&gt;</xsl:text>

</xsl:with-param></xsl:call-template>

</xsl:template>

HTML: Schreiben Sie an <tt>&lt;<a

href="mailto:[email protected]">[email protected]</a>&gt;</tt>.

DocBook 15

Page 17: Docbook: Textverarbeitung mit XML

DSSSL-Beispiel

DocBook: Schreiben Sie an <email>[email protected]</email>.

(element email($code-seq$

(make sequence(literal "&#60;")(make element gi: "A"

attributes:(list (list "HREF"

(string-append "mailto:"(data (current-node)))))

(process-children))(literal "&#62;"))))

HTML: Schreiben Sie an <tt>&#60;<a

href="mailto:[email protected]">[email protected]</a>&#62;</tt>.

DocBook 16

Page 18: Docbook: Textverarbeitung mit XML

XSLT-Prozessoren

• xsltproc

• Saxon

• Xalan

• . . .

DocBook 17

Page 19: Docbook: Textverarbeitung mit XML

XSL-FO-Prozessoren

Frei:

• FOP

• PassiveTEX

Nicht frei:

• Antenna House XSL Formatter

• RenderX XEP

• Unicorn Formatting Objects

DocBook 18

Page 20: Docbook: Textverarbeitung mit XML

DSSSL-Toolchain

• Umwandlung DSSSL: Jade, OpenJade

• Umwandlung TEX in PDF: JadeTEX

DocBook 19

Page 21: Docbook: Textverarbeitung mit XML

Schreibwerkzeuge

• Texteditor

• Editor mit SGML/XML-Modus

• XML-Editor

DocBook 20

Page 22: Docbook: Textverarbeitung mit XML

Beispiele: Inline-Markup

<para>Auf <trademark class="registered">UNIX</trademark>-Systemensteuert die Datei <filename>/etc/crontab</filename> die von<command>cron</command> ausgef&uuml;hrten Befehle.</para>

<para><symbol>UINTMAX</symbol> ist gleich2<superscript>32</superscript>-1.</para>

DocBook 21

Page 23: Docbook: Textverarbeitung mit XML

Beispiele: Listen

<itemizedlist><listitem><para>Erster Punkt</para>

</listitem><listitem><para>Zweiter Punkt</para>

</listitem><listitem><para>Dritter Punkt</para>

</listitem></itemizedlist>

DocBook 22

Page 24: Docbook: Textverarbeitung mit XML

Beispiele: Formale Objekte

Abbildungen, Beispiele, Gleichungen, Tabellen

• automatisch nummeriert

• automatisches Abbildungsverzeichnis usw.

DocBook 23

Page 25: Docbook: Textverarbeitung mit XML

Beispiele: Code

<para>Dies ist ein sehr einfaches Shell-Skript:

<programlisting>#!/bin/sh

exit 0</programlisting>

</para>

DocBook 24

Page 26: Docbook: Textverarbeitung mit XML

Beispiele: Querverweise

<chapter id="maus"><title>Verwendung einer Maus</title>...Siehe <xref linkend="maus"/>.

HTML-Ausgabe:

Siehe <a href="#maus">Kapitel 3, Verwendung einer Maus</a>.

DocBook 25

Page 27: Docbook: Textverarbeitung mit XML

Beispiele: Grafiken

Unterstutzte Formate hangen von der Toolchain ab.

<mediaobject><imageobject><imagedata fileref="figures/eiffeltower.eps" format="eps">

</imageobject><imageobject><imagedata fileref="figures/eiffeltower.gif" format="gif">

</imageobject><textobject><phrase>The Eiffel Tower</phrase>

</textobject></mediaobject>

DocBook 26

Page 28: Docbook: Textverarbeitung mit XML

Customization

DocBook DTD anpassbar:

• Elemente hinzufugen

• Elemente entfernen

DocBook Stylesheets anpassbar:

• neue Formatierungsregeln

HTML-Ausgabe anpassbar:

• CSS

DocBook 27

Page 29: Docbook: Textverarbeitung mit XML

Alternative Anwendungen

• Simplified DocBook DTD

• Module: EBNF, HTML Forms, MathML, SVG

• Website DTD

• Slides DTD

• angepasste Rechtschreibprufung

• Gettext-Integration

DocBook 28

Page 30: Docbook: Textverarbeitung mit XML

Zusammenfassung

DocBook . . .

• ist eine XML DTD fur technische Dokumente

• unterstutzt viele Ausgabeformate

• ist geeignet fur wiederholte und verteilte Bearbeitung

• ist nicht immer ganz einfach

Weitere Informationen:

• http://docbook.sourceforge.net/

DocBook 29