DocBook 4.5 mit JRE 5 ergibt 'writing.mode' ist nicht definiert

MadM

Mitglied
Hi Leutz,

ich bin gerade dabei, DocBook zu testen/evaluieren, d.h. ich versuche es, denn funktioniert hat es bisher nicht.

Hier die Umgebung:

Die Datei book.xml sieht so aus:
XML:
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
    "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<book lang="en">
    <bookinfo>
        <title>Book Title</title>
        <pubdate>2009</pubdate>
    </bookinfo>
    <chapter>
        <title>Chapter</title>
        <sect1>
            <title>Section 1 </title>
            <para>
                A paragraph
            </para>
        </sect1>
    </chapter>
</book>
Und hier die Test-Klasse:
Java:
import java.io.FileOutputStream;

import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;

import org.apache.xalan.xsltc.trax.TransformerFactoryImpl;

public class Test {

    public static void main(String[] args) throws Exception {
        StreamSource source = new StreamSource("docbook-xsl/html/html.xsl");
        StreamSource xmlSource = new StreamSource("book.xml");
        FileOutputStream outputStream = new FileOutputStream("book.html");
        StreamResult outputTarget = new StreamResult(outputStream);
        
        TransformerFactory factory = new TransformerFactoryImpl();        
        Transformer transformer = factory.newTransformer(source);        
        transformer.transform(xmlSource, outputTarget);
    }

}
Das Ergebnis hiervon ist folgende Fehlermeldung:
Code:
FEHLER:  '/docbook/docbook-xsl/html/html.xsl: line 20: Variable oder Parameter 'writing.mode' ist nicht definiert.'
SCHWER WIEGENDER FEHLER:  'Die Formatvorlage konnte nicht kompiliert werden.'
Exception in thread "main" javax.xml.transform.TransformerConfigurationException: Die Formatvorlage konnte nicht kompiliert werden.
    at org.apache.xalan.xsltc.trax.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:832)
    at org.apache.xalan.xsltc.trax.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:618)
    at Test.main(Test.java:19)

Was mache ich falsch? Habe mich schon tot gegoogelt nach diesem Fehler...nix zu finden. An besager Stelle in der Datei html.xsl ist folgendes zu finden:
XML:
<xsl:variable name="direction.align.start">
  <xsl:choose>
    <xsl:when test="starts-with($writing.mode, 'lr')">left</xsl:when>
    <xsl:when test="starts-with($writing.mode, 'rl')">right</xsl:when>
    <xsl:otherwise>left</xsl:otherwise>
  </xsl:choose>
</xsl:variable>

Danke für jeden Hinweis!
Gruß
Matthias
 
Zuletzt bearbeitet von einem Moderator:
OK, dafür shame on me, das hab ich völlig übersehen.
Schlauer bin ich jetzt allerdings immer noch nicht.
In der book.xml steht ja lang="en", und ind
docbook-xsl/common/en.xml steht in Zeile 204
Code:
<l:gentext key="writing-mode" text="lr-tb"/>

Also was genau ist die
gentext file for the document's lang
?

WO muss ich was einfügen, damit's passt?
 
Rein intuitiv würde ich sagen dass da noch ein XSL auf eine Sprachendatei angewendet werden muss.
Das erzeugt dann wiederum XSL, das in die eigentliche Transformations-XSL einfließt.
Versuch doch mal DocBook "planmäßig" zu benutzen, irgendwo muss da ja was passieren...

commons/l10n.xsl sieht ganz gut aus, da ist aber nix dokumentiert, und das riecht gar fürchterlich ;)

http://nwalsh.com/docs/articles/dbdesign/
Hört leider an den interessanten Stellen auf...

EDIT1: Eventuell kannste Dir ja was zusammenhacken:
http://www.sagehill.net/docbookxsl/CustomMethods.html#CustomizationLayer
Im Endeffekt also ein XSL, welches erstmal das html.xsl importiert.
http://www.sagehill.net/docbookxsl/Localizations.html
Unter "Extending the set of languages" ist dann ein XSL-Schnippsel, der das l10n-XML setzt.
Ich glaub ja nicht dass das was wird, aber Versuch macht kluch...
 
Zuletzt bearbeitet:
Hm, irgendie kommen mir gerade Zweifel, ob DocBook wirklich das Richtige ist, um Dokus/Spezifikationen in einem größere Projekt zu erstellen. Diese Einstiegsschwierigkeiten gefallen mir gar nicht.
Was genau meinst du mit
Versuch doch mal DocBook "planmäßig" zu benutzen, irgendwo muss da ja was passieren...
?
 
Bei docbook-xsl liegt doch ein install.sh bei? Hab gestern nur kurz reingeguckt, aber da wird wohl das Environment aufgebaut (Änderungen in ~).
Und dann haben die irgendwie einen commandline-xsltproc verwendet, mift, ich finde das gerade nicht mehr... naja, heut abend dann...
 
Japp, es gibt so ein Install-Skript. Arbeite allerdings leider unter Windoof :-(
Werde mir mal Cygwin oder Ubuntu in ner VM-Ware draufklatschen..
Jetzt schon vielen Dank für das Interesse und die Mühe!
 
Zurück