vishia - XSLT-Translator für mehrere XML-Input-Files

vishia - XSLT-Translator für mehrere XML-Input-Files

Inhalt


1 vishia-XSLT-Translator mit mehreren Inputs

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.