SlideShare ist ein Scribd-Unternehmen logo
DocBook
Textverarbeitung mit XML
       Peter Eisentraut

          5.3.2005
Pers¨nlich
                                 o



• PostgreSQL-Entwickler

• Maintainer PostgreSQL-Dokumentation

• Debian-Entwickler

• Debian XML/SGML Group

• Maintainer DocBook DSSSL Stylesheets

• Buchautor


DocBook                                   1
Was ist DocBook?



• XML-Vokabular f¨r technische Dokumente
                 u

• Stylesheets und viele Tools

• OASIS-Standard




DocBook                                       2
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
Verarbeitungsbeispiel

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




DocBook                                                        4
Vorteile von DocBook



• Inhalt und Format getrennt

• mehrere Ausgabeformate

• XML als standardisiertes Format

• erweiterbar, anpassbar

• l¨uft auf vielen Plattformen
   a




DocBook                                           5
Ausgabeformate


• HTML, XHTML

• PDF, PostScript

• HTML Help, JavaHelp

• RTF

• Manpages

• Plain Text

• ...

DocBook                                  6
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
Einsatzbereiche



• wiederholte Releases

• verteilte Autorenschaft

• große, komplexe Dokumente

• mehrere Ausgabeformate

• automatische Verarbeitung




DocBook                                         8
Aktuelle Anwender


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




DocBook                                                             9
Verarbeitung


          Umwandlung von DocBook in Zielformat




              Dokument         Prozessor    HTML, RTF, ...




                DTD            Stylesheet




DocBook                                                      10
Verarbeitung


          Umwandlung von DocBook ber Zwischenformat in Zielformat




                 Dokument       Prozessor    XSL-FO, TeX   Prozessor




                   DTD          Stylesheet                 PDF, PS




DocBook                                                                11
Die DocBook DTDs


Document Type Definition — legt die Dokumentstruktur fest

• f¨r XML und SGML
   u

• Aktuell Version 4.4

• Ver¨ffentlicht von OASIS
     o

Zuk¨nftig (Version 5):
   u

• Relax NG Schemas

• XML Schemas (experimentell)

DocBook                                                    12
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
Stylesheets



• XSLT-Stylesheets
   – W3C-Standard
   – nur f¨r XML DTD
          u
   – Ausgabe: HTML, XHTML, HTML Help, XSL-FO, . . .

• DSSSL-Stylesheets
   – ISO-Standard
   – f¨r XML und SGML DTDs
      u
   – Ausgabe: HTML, TEX, RTF




DocBook                                               14
XSLT-Beispiel


DocBook:     Schreiben Sie an <email>user@domain.com</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:user@domain.com">user@domain.com</a>&gt;</tt>.


DocBook                                                                               15
DSSSL-Beispiel


DocBook:     Schreiben Sie an <email>user@domain.com</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:user@domain.com">user@domain.com</a>&#62;</tt>.



DocBook                                                              16
XSLT-Prozessoren



• xsltproc

• Saxon

• Xalan

• ...




DocBook                         17
XSL-FO-Prozessoren


Frei:

• FOP

• PassiveTEX

Nicht frei:

• Antenna House XSL Formatter

• RenderX XEP

• Unicorn Formatting Objects

DocBook                                      18
DSSSL-Toolchain



• Umwandlung DSSSL: Jade, OpenJade

• Umwandlung TEX in PDF: JadeTEX




DocBook                                  19
Schreibwerkzeuge



• Texteditor

• Editor mit SGML/XML-Modus

• XML-Editor




DocBook                                  20
Beispiele: Inline-Markup


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

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




DocBook                                                        21
Beispiele: Listen


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



DocBook                                    22
Beispiele: Formale Objekte


Abbildungen, Beispiele, Gleichungen, Tabellen

• automatisch nummeriert

• automatisches Abbildungsverzeichnis usw.




DocBook                                            23
Beispiele: Code


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

<programlisting>
#!/bin/sh

exit 0
</programlisting>

</para>




DocBook                                           24
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
Beispiele: Grafiken


Unterst¨tzte Formate h¨ngen von der Toolchain ab.
       u              a

<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
Customization


DocBook DTD anpassbar:

• Elemente hinzuf¨gen
                 u

• Elemente entfernen

DocBook Stylesheets anpassbar:

• neue Formatierungsregeln

HTML-Ausgabe anpassbar:

• CSS

DocBook                                      27
Alternative Anwendungen



• Simplified DocBook DTD

• Module: EBNF, HTML Forms, MathML, SVG

• Website DTD

• Slides DTD

• angepasste Rechtschreibpr¨fung
                           u

• Gettext-Integration


DocBook                                           28
Zusammenfassung


DocBook . . .

• ist eine XML DTD f¨r technische Dokumente
                    u

• unterst¨tzt viele Ausgabeformate
         u

• ist geeignet f¨r wiederholte und verteilte Bearbeitung
                u

• ist nicht immer ganz einfach

Weitere Informationen:

• http://docbook.sourceforge.net/

DocBook                                                    29

Weitere ähnliche Inhalte

Andere mochten auch

Drurys Engineering Overview
Drurys Engineering OverviewDrurys Engineering Overview
Drurys Engineering Overview
Drurys
 
"PostgreSQL and Python" Lightning Talk @EuroPython2014
"PostgreSQL and Python" Lightning Talk @EuroPython2014"PostgreSQL and Python" Lightning Talk @EuroPython2014
"PostgreSQL and Python" Lightning Talk @EuroPython2014
Henning Jacobs
 
XML Support: Specifications and Development
XML Support: Specifications and DevelopmentXML Support: Specifications and Development
XML Support: Specifications and Development
Peter Eisentraut
 
Linux distribution for the cloud
Linux distribution for the cloudLinux distribution for the cloud
Linux distribution for the cloud
Peter Eisentraut
 
SQL/MED and PostgreSQL
SQL/MED and PostgreSQLSQL/MED and PostgreSQL
SQL/MED and PostgreSQL
Peter Eisentraut
 
The Common Debian Build System (CDBS)
The Common Debian Build System (CDBS)The Common Debian Build System (CDBS)
The Common Debian Build System (CDBS)
Peter Eisentraut
 
Psycopg2 - Connect to PostgreSQL using Python Script
Psycopg2 - Connect to PostgreSQL using Python ScriptPsycopg2 - Connect to PostgreSQL using Python Script
Psycopg2 - Connect to PostgreSQL using Python Script
Survey Department
 
The Road to the XML Type: Current and Future Developments
The Road to the XML Type: Current and Future DevelopmentsThe Road to the XML Type: Current and Future Developments
The Road to the XML Type: Current and Future Developments
Peter Eisentraut
 
Programming with Python and PostgreSQL
Programming with Python and PostgreSQLProgramming with Python and PostgreSQL
Programming with Python and PostgreSQL
Peter Eisentraut
 
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail S...
Collateral Damage:
Consequences of Spam and Virus Filtering for the E-Mail S...Collateral Damage:
Consequences of Spam and Virus Filtering for the E-Mail S...
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail S...
Peter Eisentraut
 

Andere mochten auch (10)

Drurys Engineering Overview
Drurys Engineering OverviewDrurys Engineering Overview
Drurys Engineering Overview
 
"PostgreSQL and Python" Lightning Talk @EuroPython2014
"PostgreSQL and Python" Lightning Talk @EuroPython2014"PostgreSQL and Python" Lightning Talk @EuroPython2014
"PostgreSQL and Python" Lightning Talk @EuroPython2014
 
XML Support: Specifications and Development
XML Support: Specifications and DevelopmentXML Support: Specifications and Development
XML Support: Specifications and Development
 
Linux distribution for the cloud
Linux distribution for the cloudLinux distribution for the cloud
Linux distribution for the cloud
 
SQL/MED and PostgreSQL
SQL/MED and PostgreSQLSQL/MED and PostgreSQL
SQL/MED and PostgreSQL
 
The Common Debian Build System (CDBS)
The Common Debian Build System (CDBS)The Common Debian Build System (CDBS)
The Common Debian Build System (CDBS)
 
Psycopg2 - Connect to PostgreSQL using Python Script
Psycopg2 - Connect to PostgreSQL using Python ScriptPsycopg2 - Connect to PostgreSQL using Python Script
Psycopg2 - Connect to PostgreSQL using Python Script
 
The Road to the XML Type: Current and Future Developments
The Road to the XML Type: Current and Future DevelopmentsThe Road to the XML Type: Current and Future Developments
The Road to the XML Type: Current and Future Developments
 
Programming with Python and PostgreSQL
Programming with Python and PostgreSQLProgramming with Python and PostgreSQL
Programming with Python and PostgreSQL
 
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail S...
Collateral Damage:
Consequences of Spam and Virus Filtering for the E-Mail S...Collateral Damage:
Consequences of Spam and Virus Filtering for the E-Mail S...
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail S...
 

Ähnlich wie Docbook: Textverarbeitung mit XML

Der gesamte Redaktionsprozess mit Open Source
Der gesamte Redaktionsprozess mit Open SourceDer gesamte Redaktionsprozess mit Open Source
Der gesamte Redaktionsprozess mit Open Source
yellowcow
 
Einführung XHTML CSS JS // MM 08-11
Einführung XHTML CSS JS // MM 08-11Einführung XHTML CSS JS // MM 08-11
Einführung XHTML CSS JS // MM 08-11
Noël Bossart
 
Fit für die digitale Bibliothek? (2007)
Fit für die digitale Bibliothek? (2007)Fit für die digitale Bibliothek? (2007)
Fit für die digitale Bibliothek? (2007)Ralf Stockmann
 
Produce & Publish Authoring Environment World Plone Day 2010 - Berlin
Produce & Publish Authoring Environment World Plone Day 2010 - BerlinProduce & Publish Authoring Environment World Plone Day 2010 - Berlin
Produce & Publish Authoring Environment World Plone Day 2010 - BerlinAndreas Jung
 
InDesign und XML in der Praxis
InDesign und XML in der PraxisInDesign und XML in der Praxis
InDesign und XML in der Praxis
StefanGoebel
 
InDesign Roboter @Swiss Publishing Week 2011
InDesign Roboter @Swiss Publishing Week 2011InDesign Roboter @Swiss Publishing Week 2011
InDesign Roboter @Swiss Publishing Week 2011
Gregor Fellenz
 
11. Kamingespräch | XML-Editoren | TERM CHECK
11. Kamingespräch | XML-Editoren | TERM CHECK11. Kamingespräch | XML-Editoren | TERM CHECK
11. Kamingespräch | XML-Editoren | TERM CHECK
Georg Eck
 
Dart (Teil II der Tour de Dart)
Dart (Teil II der Tour de Dart)Dart (Teil II der Tour de Dart)
Dart (Teil II der Tour de Dart)
Nane Kratzke
 
XML-basierte Dokumenterstellung in Adobe FrameMaker
XML-basierte Dokumenterstellung in Adobe FrameMakerXML-basierte Dokumenterstellung in Adobe FrameMaker
XML-basierte Dokumenterstellung in Adobe FrameMaker
Digicomp Academy AG
 
ALTO, PAGE & Co. Formate für Volltexte
ALTO, PAGE & Co. Formate für VolltexteALTO, PAGE & Co. Formate für Volltexte
ALTO, PAGE & Co. Formate für Volltexte
cneudecker
 
XHTML & CSS Workshop
XHTML & CSS WorkshopXHTML & CSS Workshop
XHTML & CSS Workshop
holgerrueprich
 
FMK2012: Perfekte Druckausgabe mit LaTeX und FileMaker von Adam Augustin
FMK2012: Perfekte Druckausgabe mit LaTeX und FileMaker von Adam AugustinFMK2012: Perfekte Druckausgabe mit LaTeX und FileMaker von Adam Augustin
FMK2012: Perfekte Druckausgabe mit LaTeX und FileMaker von Adam Augustin
Verein FM Konferenz
 
HTML5 - presentation at W3C-Tag 2009
HTML5 - presentation at W3C-Tag 2009HTML5 - presentation at W3C-Tag 2009
HTML5 - presentation at W3C-Tag 2009
Felix Sasaki
 
Language Workbench
Language WorkbenchLanguage Workbench
Language Workbench
zensor
 
FMK 2013 Konstrukte diverser Programmiersprachen in FileMaker nachgebaut, Tho...
FMK 2013 Konstrukte diverser Programmiersprachen in FileMaker nachgebaut, Tho...FMK 2013 Konstrukte diverser Programmiersprachen in FileMaker nachgebaut, Tho...
FMK 2013 Konstrukte diverser Programmiersprachen in FileMaker nachgebaut, Tho...Verein FM Konferenz
 
Einführung XHTML CSS JS // IT 07-10
Einführung XHTML CSS JS // IT 07-10Einführung XHTML CSS JS // IT 07-10
Einführung XHTML CSS JS // IT 07-10
Noël Bossart
 
2009 Vortrag digitales Depot
2009 Vortrag digitales Depot2009 Vortrag digitales Depot
2009 Vortrag digitales Depot
Jörg Oyen
 
Dokumentenorientiere Datenbanken am Beispiel CouchDB
Dokumentenorientiere Datenbanken am Beispiel CouchDBDokumentenorientiere Datenbanken am Beispiel CouchDB
Dokumentenorientiere Datenbanken am Beispiel CouchDBMario Müller
 
Was Sie schon immer über barrierefreie PDFs wissen wollten
Was Sie schon immer über barrierefreie PDFs wissen wolltenWas Sie schon immer über barrierefreie PDFs wissen wollten
Was Sie schon immer über barrierefreie PDFs wissen wollten
Markus Erle
 
XHTML
XHTMLXHTML

Ähnlich wie Docbook: Textverarbeitung mit XML (20)

Der gesamte Redaktionsprozess mit Open Source
Der gesamte Redaktionsprozess mit Open SourceDer gesamte Redaktionsprozess mit Open Source
Der gesamte Redaktionsprozess mit Open Source
 
Einführung XHTML CSS JS // MM 08-11
Einführung XHTML CSS JS // MM 08-11Einführung XHTML CSS JS // MM 08-11
Einführung XHTML CSS JS // MM 08-11
 
Fit für die digitale Bibliothek? (2007)
Fit für die digitale Bibliothek? (2007)Fit für die digitale Bibliothek? (2007)
Fit für die digitale Bibliothek? (2007)
 
Produce & Publish Authoring Environment World Plone Day 2010 - Berlin
Produce & Publish Authoring Environment World Plone Day 2010 - BerlinProduce & Publish Authoring Environment World Plone Day 2010 - Berlin
Produce & Publish Authoring Environment World Plone Day 2010 - Berlin
 
InDesign und XML in der Praxis
InDesign und XML in der PraxisInDesign und XML in der Praxis
InDesign und XML in der Praxis
 
InDesign Roboter @Swiss Publishing Week 2011
InDesign Roboter @Swiss Publishing Week 2011InDesign Roboter @Swiss Publishing Week 2011
InDesign Roboter @Swiss Publishing Week 2011
 
11. Kamingespräch | XML-Editoren | TERM CHECK
11. Kamingespräch | XML-Editoren | TERM CHECK11. Kamingespräch | XML-Editoren | TERM CHECK
11. Kamingespräch | XML-Editoren | TERM CHECK
 
Dart (Teil II der Tour de Dart)
Dart (Teil II der Tour de Dart)Dart (Teil II der Tour de Dart)
Dart (Teil II der Tour de Dart)
 
XML-basierte Dokumenterstellung in Adobe FrameMaker
XML-basierte Dokumenterstellung in Adobe FrameMakerXML-basierte Dokumenterstellung in Adobe FrameMaker
XML-basierte Dokumenterstellung in Adobe FrameMaker
 
ALTO, PAGE & Co. Formate für Volltexte
ALTO, PAGE & Co. Formate für VolltexteALTO, PAGE & Co. Formate für Volltexte
ALTO, PAGE & Co. Formate für Volltexte
 
XHTML & CSS Workshop
XHTML & CSS WorkshopXHTML & CSS Workshop
XHTML & CSS Workshop
 
FMK2012: Perfekte Druckausgabe mit LaTeX und FileMaker von Adam Augustin
FMK2012: Perfekte Druckausgabe mit LaTeX und FileMaker von Adam AugustinFMK2012: Perfekte Druckausgabe mit LaTeX und FileMaker von Adam Augustin
FMK2012: Perfekte Druckausgabe mit LaTeX und FileMaker von Adam Augustin
 
HTML5 - presentation at W3C-Tag 2009
HTML5 - presentation at W3C-Tag 2009HTML5 - presentation at W3C-Tag 2009
HTML5 - presentation at W3C-Tag 2009
 
Language Workbench
Language WorkbenchLanguage Workbench
Language Workbench
 
FMK 2013 Konstrukte diverser Programmiersprachen in FileMaker nachgebaut, Tho...
FMK 2013 Konstrukte diverser Programmiersprachen in FileMaker nachgebaut, Tho...FMK 2013 Konstrukte diverser Programmiersprachen in FileMaker nachgebaut, Tho...
FMK 2013 Konstrukte diverser Programmiersprachen in FileMaker nachgebaut, Tho...
 
Einführung XHTML CSS JS // IT 07-10
Einführung XHTML CSS JS // IT 07-10Einführung XHTML CSS JS // IT 07-10
Einführung XHTML CSS JS // IT 07-10
 
2009 Vortrag digitales Depot
2009 Vortrag digitales Depot2009 Vortrag digitales Depot
2009 Vortrag digitales Depot
 
Dokumentenorientiere Datenbanken am Beispiel CouchDB
Dokumentenorientiere Datenbanken am Beispiel CouchDBDokumentenorientiere Datenbanken am Beispiel CouchDB
Dokumentenorientiere Datenbanken am Beispiel CouchDB
 
Was Sie schon immer über barrierefreie PDFs wissen wollten
Was Sie schon immer über barrierefreie PDFs wissen wolltenWas Sie schon immer über barrierefreie PDFs wissen wollten
Was Sie schon immer über barrierefreie PDFs wissen wollten
 
XHTML
XHTMLXHTML
XHTML
 

Mehr von Peter Eisentraut

Getting Started with PL/Proxy
Getting Started with PL/ProxyGetting Started with PL/Proxy
Getting Started with PL/Proxy
Peter Eisentraut
 
Porting Applications From Oracle To PostgreSQL
Porting Applications From Oracle To PostgreSQLPorting Applications From Oracle To PostgreSQL
Porting Applications From Oracle To PostgreSQL
Peter Eisentraut
 
Porting Oracle Applications to PostgreSQL
Porting Oracle Applications to PostgreSQLPorting Oracle Applications to PostgreSQL
Porting Oracle Applications to PostgreSQL
Peter Eisentraut
 
PostgreSQL and XML
PostgreSQL and XMLPostgreSQL and XML
PostgreSQL and XML
Peter Eisentraut
 
PostgreSQL: Die Freie Datenbankalternative
PostgreSQL: Die Freie DatenbankalternativePostgreSQL: Die Freie Datenbankalternative
PostgreSQL: Die Freie Datenbankalternative
Peter Eisentraut
 
Access ohne Access: Freie Datenbank-Frontends
Access ohne Access: Freie Datenbank-FrontendsAccess ohne Access: Freie Datenbank-Frontends
Access ohne Access: Freie Datenbank-Frontends
Peter Eisentraut
 
PostgreSQL and PL/Java
PostgreSQL and PL/JavaPostgreSQL and PL/Java
PostgreSQL and PL/Java
Peter Eisentraut
 
Replication Solutions for PostgreSQL
Replication Solutions for PostgreSQLReplication Solutions for PostgreSQL
Replication Solutions for PostgreSQL
Peter Eisentraut
 
PostgreSQL News
PostgreSQL NewsPostgreSQL News
PostgreSQL News
Peter Eisentraut
 
PostgreSQL News
PostgreSQL NewsPostgreSQL News
PostgreSQL News
Peter Eisentraut
 
Access ohne Access: Freie Datenbank-Frontends
Access ohne Access: Freie Datenbank-FrontendsAccess ohne Access: Freie Datenbank-Frontends
Access ohne Access: Freie Datenbank-Frontends
Peter Eisentraut
 
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail Sy...
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail Sy...Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail Sy...
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail Sy...
Peter Eisentraut
 
Spaß mit PostgreSQL
Spaß mit PostgreSQLSpaß mit PostgreSQL
Spaß mit PostgreSQL
Peter Eisentraut
 
The Lives of Others: Open-Source Development Practices Elsewhere
The Lives of Others: Open-Source Development Practices ElsewhereThe Lives of Others: Open-Source Development Practices Elsewhere
The Lives of Others: Open-Source Development Practices Elsewhere
Peter Eisentraut
 
SQL/MED: Doping for PostgreSQL
SQL/MED: Doping for PostgreSQLSQL/MED: Doping for PostgreSQL
SQL/MED: Doping for PostgreSQL
Peter Eisentraut
 

Mehr von Peter Eisentraut (15)

Getting Started with PL/Proxy
Getting Started with PL/ProxyGetting Started with PL/Proxy
Getting Started with PL/Proxy
 
Porting Applications From Oracle To PostgreSQL
Porting Applications From Oracle To PostgreSQLPorting Applications From Oracle To PostgreSQL
Porting Applications From Oracle To PostgreSQL
 
Porting Oracle Applications to PostgreSQL
Porting Oracle Applications to PostgreSQLPorting Oracle Applications to PostgreSQL
Porting Oracle Applications to PostgreSQL
 
PostgreSQL and XML
PostgreSQL and XMLPostgreSQL and XML
PostgreSQL and XML
 
PostgreSQL: Die Freie Datenbankalternative
PostgreSQL: Die Freie DatenbankalternativePostgreSQL: Die Freie Datenbankalternative
PostgreSQL: Die Freie Datenbankalternative
 
Access ohne Access: Freie Datenbank-Frontends
Access ohne Access: Freie Datenbank-FrontendsAccess ohne Access: Freie Datenbank-Frontends
Access ohne Access: Freie Datenbank-Frontends
 
PostgreSQL and PL/Java
PostgreSQL and PL/JavaPostgreSQL and PL/Java
PostgreSQL and PL/Java
 
Replication Solutions for PostgreSQL
Replication Solutions for PostgreSQLReplication Solutions for PostgreSQL
Replication Solutions for PostgreSQL
 
PostgreSQL News
PostgreSQL NewsPostgreSQL News
PostgreSQL News
 
PostgreSQL News
PostgreSQL NewsPostgreSQL News
PostgreSQL News
 
Access ohne Access: Freie Datenbank-Frontends
Access ohne Access: Freie Datenbank-FrontendsAccess ohne Access: Freie Datenbank-Frontends
Access ohne Access: Freie Datenbank-Frontends
 
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail Sy...
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail Sy...Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail Sy...
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail Sy...
 
Spaß mit PostgreSQL
Spaß mit PostgreSQLSpaß mit PostgreSQL
Spaß mit PostgreSQL
 
The Lives of Others: Open-Source Development Practices Elsewhere
The Lives of Others: Open-Source Development Practices ElsewhereThe Lives of Others: Open-Source Development Practices Elsewhere
The Lives of Others: Open-Source Development Practices Elsewhere
 
SQL/MED: Doping for PostgreSQL
SQL/MED: Doping for PostgreSQLSQL/MED: Doping for PostgreSQL
SQL/MED: Doping for PostgreSQL
 

Docbook: Textverarbeitung mit XML

  • 1. DocBook Textverarbeitung mit XML Peter Eisentraut 5.3.2005
  • 2. Pers¨nlich o • PostgreSQL-Entwickler • Maintainer PostgreSQL-Dokumentation • Debian-Entwickler • Debian XML/SGML Group • Maintainer DocBook DSSSL Stylesheets • Buchautor DocBook 1
  • 3. Was ist DocBook? • XML-Vokabular f¨r technische Dokumente u • Stylesheets und viele Tools • OASIS-Standard DocBook 2
  • 4. 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
  • 6. Vorteile von DocBook • Inhalt und Format getrennt • mehrere Ausgabeformate • XML als standardisiertes Format • erweiterbar, anpassbar • l¨uft auf vielen Plattformen a DocBook 5
  • 7. Ausgabeformate • HTML, XHTML • PDF, PostScript • HTML Help, JavaHelp • RTF • Manpages • Plain Text • ... DocBook 6
  • 8. 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
  • 9. Einsatzbereiche • wiederholte Releases • verteilte Autorenschaft • große, komplexe Dokumente • mehrere Ausgabeformate • automatische Verarbeitung DocBook 8
  • 10. Aktuelle Anwender GNOME, KDE, FreeBSD, Linux-Kernel, LDP, PostgreSQL, Debian, OpenLDAP, PHP, SuSE, Red Hat, Sun, O’Reilly, . . . DocBook 9
  • 11. Verarbeitung Umwandlung von DocBook in Zielformat Dokument Prozessor HTML, RTF, ... DTD Stylesheet DocBook 10
  • 12. Verarbeitung Umwandlung von DocBook ber Zwischenformat in Zielformat Dokument Prozessor XSL-FO, TeX Prozessor DTD Stylesheet PDF, PS DocBook 11
  • 13. Die DocBook DTDs Document Type Definition — legt die Dokumentstruktur fest • f¨r XML und SGML u • Aktuell Version 4.4 • Ver¨ffentlicht von OASIS o Zuk¨nftig (Version 5): u • Relax NG Schemas • XML Schemas (experimentell) DocBook 12
  • 14. 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
  • 15. Stylesheets • XSLT-Stylesheets – W3C-Standard – nur f¨r XML DTD u – Ausgabe: HTML, XHTML, HTML Help, XSL-FO, . . . • DSSSL-Stylesheets – ISO-Standard – f¨r XML und SGML DTDs u – Ausgabe: HTML, TEX, RTF DocBook 14
  • 16. XSLT-Beispiel DocBook: Schreiben Sie an <email>user@domain.com</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:user@domain.com">user@domain.com</a>&gt;</tt>. DocBook 15
  • 17. DSSSL-Beispiel DocBook: Schreiben Sie an <email>user@domain.com</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:user@domain.com">user@domain.com</a>&#62;</tt>. DocBook 16
  • 19. XSL-FO-Prozessoren Frei: • FOP • PassiveTEX Nicht frei: • Antenna House XSL Formatter • RenderX XEP • Unicorn Formatting Objects DocBook 18
  • 20. DSSSL-Toolchain • Umwandlung DSSSL: Jade, OpenJade • Umwandlung TEX in PDF: JadeTEX DocBook 19
  • 21. Schreibwerkzeuge • Texteditor • Editor mit SGML/XML-Modus • XML-Editor DocBook 20
  • 22. Beispiele: Inline-Markup <para>Auf <trademark class="registered">UNIX</trademark>-Systemen steuert die Datei <filename>/etc/crontab</filename> die von <command>cron</command> ausgef&uuml;hrten Befehle.</para> <para><symbol>UINTMAX</symbol> ist gleich 2<superscript>32</superscript>-1.</para> DocBook 21
  • 23. Beispiele: Listen <itemizedlist> <listitem> <para>Erster Punkt</para> </listitem> <listitem> <para>Zweiter Punkt</para> </listitem> <listitem> <para>Dritter Punkt</para> </listitem> </itemizedlist> DocBook 22
  • 24. Beispiele: Formale Objekte Abbildungen, Beispiele, Gleichungen, Tabellen • automatisch nummeriert • automatisches Abbildungsverzeichnis usw. DocBook 23
  • 25. Beispiele: Code <para>Dies ist ein sehr einfaches Shell-Skript: <programlisting> #!/bin/sh exit 0 </programlisting> </para> DocBook 24
  • 26. 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
  • 27. Beispiele: Grafiken Unterst¨tzte Formate h¨ngen von der Toolchain ab. u a <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
  • 28. Customization DocBook DTD anpassbar: • Elemente hinzuf¨gen u • Elemente entfernen DocBook Stylesheets anpassbar: • neue Formatierungsregeln HTML-Ausgabe anpassbar: • CSS DocBook 27
  • 29. Alternative Anwendungen • Simplified DocBook DTD • Module: EBNF, HTML Forms, MathML, SVG • Website DTD • Slides DTD • angepasste Rechtschreibpr¨fung u • Gettext-Integration DocBook 28
  • 30. Zusammenfassung DocBook . . . • ist eine XML DTD f¨r technische Dokumente u • unterst¨tzt viele Ausgabeformate u • ist geeignet f¨r wiederholte und verteilte Bearbeitung u • ist nicht immer ganz einfach Weitere Informationen: • http://docbook.sourceforge.net/ DocBook 29