Arbeit mit DocBook XML (1)

Werbung
Arbeitsblatt 2
Cross-Media Produktion, Prof. Dr. M. Frank
Einführung
Zu Beginn erzähle ich Ihnen etwas zu den installierten Programmen und zum prinzipiellen
Produktionszyklus mit dem Basisformat XML. Bitte schreiben Sie sich das Nötige mit, z.B. hier auf
der Rückseite.
Vorbereitungen
Als erstes müssen Sie fünf neue Verzeichnisse in die PATH-Variable Ihres persönlichen Nutzerprofils
im MM-Pool aufnehmen, damit Sie den XSLT-Prozessor xsltproc und den XSL-FO-Prozessor
fop in der Kommandozeile in jedem möglichen Verzeichnis aufrufen können.
Bitte arbeiten Sie folgende Kette von Anweisungen bei sich auf dem Rechner ab:
1.) Klick auf „Start“, Eingabe des Wortes „Umgebungsvariablen“ in das Fenster des Menüs
2.) Menüpunkt „Umgebungsvariablen für dieses Konto bearbeiten“ wählen
3.) VARIANTE 1: Klick auf die Umgebungsvariable „PATH“ im oberen Fenster (Sie sind kein
Admin, im unteren Fenster können Sie nichts ändern), Klick auf „Bearbeiten“ darunter
VARIANTE 2: Klick auf „Neu“ und Eingabe des Wortes „PATH“ im oberen Fenster der
erscheinenden Maske
4.) Jetzt äußerste Sorgfalt: Im Feld „Wert“ müssen Sie folgenden String an den bereits
bestehenden String anhängen, ohne Wagenrückläufe (Copy & Paste aus der Datei „PATH
setzen neu.txt“, String markieren, CTRL+C und im Formular dann CTRL+V):
%PATH%;N:\mfrank\dbneu\libxml\iconv-1.9.2.win32\bin;
N:\mfrank\dbneu\libxml\libxml2-2.7.7.win32\bin;
N:\mfrank\dbneu\libxml\libxslt-1.1.26.win32\bin;
N:\mfrank\dbneu\libxml\zlib-1.2.5.win32\bin;
N:\mfrank\dbneu\fop-0.20.5
Bitte keine Leerschritte zuviel, bitte nur einfache Backslashe!
5.) Dreimal Klick auf „OK“, Rechner nicht neu starten!!!
6.) Kommandozeilenfenster durch Klicks auf „Start“ und „Ausführen“ und Starten des Fensters
„Ausführen“ mit dem Eintrag „cmd“ aufrufen, die Programmnamen xsltproc bzw. fop
eingeben, Enter, Kontrolle der Ausschrift im Fenster: Es muss eine Liste möglicher
Kommandos sein. Sollten die Programme nicht gefunden werden, müssen wir uns gemeinsam
den Eintrag von PATH noch einmal ansehen und ändern. Siehe Schritte oben.
7.) Alternative: In einer cmd-Shell von Hand eingeben:
> set %PATH%; neue Pfadbestandteile ….
aber diese Eingabe wirkt nur temporär im offenen Fenster.
Damit haben Sie die Möglichkeit hergestellt, XML-Dateien mit XSLT-Dateien bzw. mit XSL-FODateien auf den Rechnern des MM-Pools unter Ihrem persönlichen Nutzerprofil dauerhaft in viele
andere Dateiformate umzuwandeln.
DocBook XML und seine Strukturen
Ziel dieses Teils des Seminars ist es, sich mit der Funktionsweise des Publikationsprozesses von
DocBook XML vertraut zu machen. Schaffen Sie sich auf der lokalen Festplatte ein
Arbeitsverzeichnis und kopieren Sie sich die Dateien *.xml aus
N:\\lehre\mfrank\cmp_Sem02\ dorthin. Solche Orte sind in der Kommandozeile leichter
aufsuchbar.
Am Anfang steht eine XML-Datei, z.B. die Datei von Prof. Ashley J. S. Mills mit den lokalen
Koordinaten N:\\lehre\mfrank\cmp_Sem02\docbooksys.xml. Kopieren Sie sich diese
Datei in Ihr Arbeitsverzeichnis und öffnen Sie die Datei im XMLspy. Sehen Sie sich die Struktur
genauer an. Ich werde dazu anhand einer Projektion mit Beamer nähere Erläuterungen geben. Bitte
wundern Sie sich nicht, dass die Validierung der Datei über 30 Sekunden dauert, die DTD wird aus
dem Internet aufgerufen. Sollte der Dateiinhalt zu verwirrend sein, öffnen Sie einfach die Strukturdatei
N:\\lehre\mfrank\cmp_Sem02\db_book_bsp.xml im XMLspy, dort ist die reine
prinzipielle XML-Struktur in reduzierter Form zu sehen.
Um nun mit dieser Datei XHTML in Form eines Dokuments zu erzeugen, brauchen wir nur das
Programm xsltproc auf der Kommandozeile geeignet aufzurufen. Da Frau Mills Ihre XSLTDateien angepasst hat, müssen wir den Pfad zu den Mills-XSLT-Dateien angeben, anstatt zu den
Standarddateien.
Die Vorgehensweise ist etwas non-standard für XML, normaler Weise werden die XSLT-Dateien
innerhalb des XML-Dokuments per Zeile im Kopf referenziert, was einen automatischen Aufruf zur
Folge hat. Andererseits ist mit der nun vorgestellten Methode die freie Transferierbarkeit der
DocBook-XML-Dateien in alle Arbeitsumgebungen sichergestellt, da jeder Bearbeiter seine Kopie der
XSLT-Dateien benutzen kann und nicht dauernd im DocBook-XML-Dokument Verweise ändern
muss.
Aufruf in der Kommandozeile, im Verzeichnis mit der XML-Datei:
xsltproc --output name.html N:\\mfrank\dbneu\docbookxsl\stylesheets\xhtml\customxhtml.xsl docbooksys.xml
Im Ergebnis entsteht eine HTML-Datei mit dem von Ihnen gewählten Namen name. Sie spiegelt den
Inhalt des Buches in einer einzigen HTML-Datei wieder, die zudem gut in sich verlinkt ist.
Ordner html im Output-Ordner anlegen. Aufruf in der Kommandozeile, im Verzeichnis mit der
XML-Datei:
xsltproc N:\\mfrank\dbneu\docbookxsl\stylesheets\xhtml\customchunk.xsl docbooksys.xml
Im Ergebnis entsteht ein ganzes Paket von HTML-Dateien, die durch eine Leitdatei index.html
gebündelt werden. Jeder Abschnitt des Dokuments wird in eine neue HTML-Datei ausgelagert.
Klicken Sie sich durch, und beräumen Sie hinterher Ihr Arbeitsverzeichnis durch Auslagern des Pakets
in ein Unterverzeichnis.
Mit den Dateien von Frau Mills können wir keine weiteren DocBook-XML-Formate via xsltproc
erzeugen, es fehlen entsprechend angepasste XSLT-Dateien.
Aber wir können ein Vorformat für die Erzeugung anderer Formate erstellen, das Format *.fo. Aufruf
in der Kommandozeile, im Verzeichnis der XML-Datei:
xsltproc --output name.fo N:\\mfrank\dbneu\docbookxsl\stylesheets\fo\customfo.xsl docbooksys.xml
Im Ergebnis entsteht eine FO-Datei, die als Ausgangspunkt für die weitere Verarbeitung zu gewissen
Zielformaten dient. Die FO-Datei ist unabhängig von den *.xml, *.dtd, *.xsl – Dateien, denen sie ihre
Entstehung verdankt. Deshalb kann man den nachfolgend einzusetzenden FO-Prozessor frei wählen.
Sollte das nicht klappen, so haben Sie eine bereits erzeugte fo-Datei unter .\Ergebnisse von
Versuchen M.Frank\dbtry3.fo im Seminarverzeichnis.
Bitte probieren Sie eine Varianten zur Erzeugung von PDF aus, mit dem Programm fop:
fop name.fo output.pdf
(Bei voll installiertem MiKTeX ginge noch. pdfxmltex name.fo.)
In beiden Fällen entstehen PDF-Dateien. Leider wirft das Programm fop viele Formatierungsfehler
beim Durchlauf, was offenbar der Nichtimplementierung bestimmter Befehlsketten geschuldet ist. (So
stehen Links und Codezeilen über den rechten Rand dann über und verschwinden mit diesen
überstehenden Teilen im Ausdruck.)
Analog können Sie die Erzeugung folgender Formate ausprobieren:
fop name.fo –svg output_svg.svg
fop name.fo –ps output_ps.ps
fop name.fo –txt output_txt.txt
fop name.fo –mif output_mif.mif
fop name.fo –pcl output_pcl.pcl
und andere, rufen Sie einfach den String “fop” am Prompt auf, um eine Liste der Möglichkeiten
gelistet zu bekommen. (Warnung: Mit fop aus *.xsl und *.xml direkt *.pdf zu erzeugen, funktionierte
leider mit dieser Datei nicht.)
Die Erzeugung von TeX-Formaten wie *.tex, *.dvi und anderen können Sie sich später einmal
ansehen. Dazu brauchen Sie openjade und jadetex als Programme, die hier noch nicht installiert
sind. (Siehe Anleitungsdatei von Prof. A. J. S. Mills.)
Quellen:
http://www.oasis-open.org/docbook/ - Stammseite des Standards DocBook
http://docbook.org/ - Organisation zur Unterstützung und Entwicklung des DocBook-Standards
http://www.docbook.org/tdg/ - „DocBook: The Definite Guide“, regelmäßig aktualisierte Fassung
eines populären Buches zu DocBook
http://www.dpawson.co.uk/docbook/tools.html - Hinweise zu cross-medialen Tools
http://wiki.docbook.org - DocBook Wiki
http://velocity.apache.org/docbook/DocBook-Framework-1.0.pdf - Apache Velocity DocBook
Framework (DBF) von der Apache Foundation
http://www.vorkon.de/index.php?page=shop.product_details&category_id=31&flypage=shop.flypage
&product_id=129&option=com_virtuemart&Itemid=83&vmcchk=1&Itemid=83 - eBook von Thomas
Schraitle von 2009/2011, u.a. Konversion von DocBook XML in die eBook-Standards EPUB und
MOBIPOCKET
http://www.amazon.de/DocBook-Xsl-Complete-Guide-4th/dp/0974152137/ref=pd_sim_b_1 - Buch
„DocBook XSL: The Complete Guide“ von Bob Stayton, Sagehill Enterprises, 4. Auflage, 2007.
http://www.freebsd.org/doc/de/books/fdp-primer/ - back to the roots: SGML-Tutorial mit Beispielen
zu DocBook XML.
http://www.adobe.com/de/products/framemaker.html - Adobe FrameMaker 11, unterstützt DocBook
und DITA native.
„Mit Adobe FrameMaker Publishing Server 11 oder der Adobe Technical Communication Suite 4
können Sie HTML5-Inhalte praktisch überall veröffentlichen. Sie können Inhalte auf jedem beliebigen
Gerät ausgeben, indem Sie einfach Bildschirmgröße und -Layout festlegen. Nutzen Sie die Vorschau,
um Inhalte lesefreundlicher aufzubereiten.“
http://code.google.com/p/docbkx-tools/ - Maven und DocBook
http://i18n.kde.org/docs/tools.php - Toolkette für DocBook XML unter KDE Linux
http://www.xing.com/net/docbook/grundlagen-4265/grunde-fur-die-nicht-anwendung-von-docbookin-der-technischen-dokumentation-332930 - Der Titel ist irreführend, es kommen mehr Argumente für
die Nutzung als gegen sie im Blog vor.
https://supportweb.cs.bham.ac.uk/docs/tutorials/docsystem/build/tutorials/docbooksys/segmentedhtml/
- A. J. S. Mills‘ Installationsanleitungen der Programmierumgebung
http://newbiedoc.sourceforge.net/metadoc/docbook-guide.html.en - SGML-Installationsanleitung als
Alternative
ftp://ftp.zlatkovic.com/libxml/64bit/ - es gibt jetzt 64-Bit-Versionen vieler Bibliotheken der
Installationsumgebung, aber sie sind innerlich anders gegliedert.
Hinweise:
1.) Bei Fehlern in der Initialisierung der PATH-Variable schließen Sie bitte das offene cmdFenster und öffnen Sie nach Änderung der PATH-Variable ein neues cmd-Fenster. Ein cmdFenster merkt sich offenbar beim ersten Öffnen den Zustand der PATH-Variable und reagiert
dann nicht auf deren nachträgliche Veränderung.
2.) Wenn der Aufruf von FOP Version 1.0 oder 1.1 mit einem Java-Fehler endet, hilft als erster
Workaround, auf eine ältere Version des FOP zurückzugreifen, z,B. auf die fop-0.20.5. (Siehe
http://archive.apache.org/dist/xmlgraphics/fop/source/.)
3.) Wenn die Angabe einer Ausgabedatei mit der Fehlermeldung endet, diese existiere nicht oder
könne nicht erzeugt werden, so hilft mitunter, die Datei leer im Zielverzeichnis anzulegen.
Herunterladen