Inhalt
Topic:.XsltMultinp.
pStyle=std ulStyle=list-closely tableStyle=stdTable
Weder der klassiche xt.exe
von http://de.wikipedia.org/wiki/James_Clark_(Informatiker) noch SAXON oder andere XSLT-Translatoren sehen vor, dass mehrere Input-XML-Files verarbeitet werden können. Das Problem dabei ist, es
entstehen mehrere Root-Elemente, was dem XML wiederspricht.
Der vishia-XSLT-Translator bildet ein zusätzliches Elemente, genannt <root>
als Wurzel, dort werden die einzelnen XML-Inputfiles als child angeordnet. Danach wird normal mit SAXON übersetzt.
Zusätzlich leistet der vishia-Xslt noch folgendes:
Input-Konvertierung WikiFormat: Mit der Option -k:INPUT
wird in XML-Elementen, die das Attribut expandWikistyle
enthalten, ein enthaltener Text mit XHTML expandiert.
Whitespace in einzelnes Leerzeichen wandeln: Mit der Option -j:INPUT
wird nach dem Einlesen von XML alle Whitespaces, also auch Zeilenumbrüche, in ein einzelnes Leerzeichen gewandelt. Der Grund
ist: Einige XML-Outputs enthalten Umbrüche, die dann auch im Ergebnis erscheinen und dort, wenn es sich etwa um Word-XML handelt,
erheblich stören.
Erweiterte Syntax für XSL-Scripts: Mit der Option -p:XSLP
wird ein XSLT-File mit erweiterter Syntax (siehe XSLP-Format) verarbeitet. Die Übersetzung in einen Standard-XSL-File wird mit der Klasse javadoc:_org/vishia/xmlSimple/Xsltpre ausgeführt. Es wird dann entweder das mit der Option -t:XSLT
angegbene XSL-Script erzeugt, oder das XSL-Script wird mit der Extension .xsl
neben das Input-Script gesetzt. Das sekundäre XSL-Script wird nur dann generiert, wenn das primäre Script mit -p:...
angegeben neuer ist. Diese Eigenschaft ist auch bei eigenständigem Aufruf des XSL-Preporzessors vorhanden.
Die Quellen befinden sich im download:_srcJava.zip, siehe auch vishia_Downloadpage.Ein Blick auf die Anwendung: javadoc:_org/vishia/xml/Xslt und die Implementierung ist javadoc-src:_org/vishia/xml/Xslt.
Zum Einlesen der XML-Files wird http://www.jdom.org verwendet. Damit ist der Input-Baum ein jdom-Baum, der aber von SAXON verarbeitet werden kann. Als eigentlicher XSLT-Translator wird SAXON verwendet, immer noch in der mittlerweile etwas älteren Version Saxon.8. Man muss, um vishia-Xslt zu betreiben, die betreffenden Jdom- und Saxon-jarfiles haben, die über die vishia_Downloadpage verfügbar sind. Achtung: Die Rechte dafür liegen bei http://www.jdom.org und http://www.saxonica.com. Der vishia_XSLT-Translator sollte auch mit der neuesten Version von SAXON arbeiten, jedoch ist dies derzeit nicht getestet.
Der vishia-XSLT-Translator ist täglich in Gebrauch, daher in seinen Kern-Features getestet. Wesentlich für den Einsatz des vishia-XSLT-Translators gegenüber dem direkten Aufruf von SAXON-XSLT ist die Möglichkeit der Verarbeitung mehrerer Input-Files. Dieses Feature ist wesentlich für die Dokumentengenerierung aus XML-Files.
letzte Änderung: 2009-11-29
Autor: Hartmut Schorrig