Saxon – Optionen für die Kommandozeile
(Auszug aus "XSLT 2.0 & XPath 2.0" von Frank Bongers)
Saxon kennt eine Reihe von Optionen, die in der Kommandozeile unmittelbar dem Programmaufruf folgend eingesetzt werden. Hierbei können durchaus auch mehrere Optionsschalter gesetzt werden. Ihre Reihenfolge ist unerheblich, auf einige von ihnen muss jedoch eine weitere Angabe (z.B. ein Dateiname, ein Template-Name, ein Klassenbezeichner o. Ä.) folgen.
Setzen der Optionen in Kernow
Einige der in Folge beschriebenen Parameter sind auch aus Saxons Java-GUI Kernow über Konfiguration > Einstellungen Saxon zugänglich. Wo dies möglich ist, wurde dies in den Erklärungen vermerkt (rechte Tabellenspalte). Da Kernow derzeit noch auf der Version 8.9 von Saxon aufbaut, sind dort die in Saxon 9 hinzugekommenen Kommandozeilenoptionen generell (noch) nicht verfügbar.
Hier folgt eine alphabetisch geordnete Aufstellung der Kommandozeilen-Optionen von Saxon. Sie entspricht der Ausgabe, die Sie auch bei Eingabe der Option -? an der Kommandozeile erhalten (siehe Abbildung: Aufruf von Saxon 9.0 über die Kommandozeile mit Option -?). Die Optionen wurden beim Versionssprung von Saxon 8 auf Saxon 9 erweitert und ihre Syntx teilweise geändert. Die älteren Schreibweisen und Optionen sind ebenfalls angegeben. Zum Teil werden sie aus Gründen der Abwärtskompatibilität weiterhin unterstützt.
Alle folgenden Optionen gelten für die Kommandozeile unter Java und .NET und gleichermaßen für Saxon-SA als auch für Saxon-B, soweit sie nicht die Verarbeitung von XML Schema betreffen. Solche Schalt-Argumente sind ausschließlich für Saxon-SA wirksam und werden von Saxon-B ignoriert.
-a
Option | Aufgabe | Kernow |
-a | Stylesheet über PI | nein |
Steuerung der Verarbeitung:
Bei gesetzter Option -a wird eine Stylesheet-PI im Quelldokument herangezogen, um das verarbeitende Stylesheet zu identifizieren. Es darf keine Stylesheet-Datei genannt werden; das Setzen der Option -xsl muss also unterbleiben.
-c:filename
Option | Aufgabe | Kernow |
-c:filename | Stylesheet als kompilierte Stylesheet-Datei | nein |
Steuerung der Verarbeitung:
Mittels der Option -c kann Saxon veranlasst werden, das Stylesheet-Argument auf eine kompilierte Stylesheet-Datei zu beziehen, deren Dateiname im Anschluss übergeben wird. Bei komplexen Transformationen kann ein vorkompiliertes Stylesheet die Verarbeitung wesentlich beschleunigen. Der erzielbare Geschwindigkeitsgewinn ist allerdings abhängig vom Umfang des Quelldokuments. Das Erstellen und die Arbeit mit kompilierten Stylesheet-Dateien werden auf der folgenden Seite beschrieben.
Hinweis: Die Verwendung der -xsl:filename-Option muss in diesem Zusammenhang unterbleiben.
-cr:classname (früher: cr classname)
Option | Aufgabe | Kernow |
-cr:classname | Auflösen von URI-Strings | nein |
Steuerung der Verarbeitung:
Übergeben wird der Name einer Java-Klasse, die URI-Strings auflösen soll, die bei der Verarbeitung mit Hilfe der Funktion collection() als Collections übergeben werden. Die (nutzerdefinierte) Klasse muss das Interface net.sf.saxon.CollectionURIResolver implementieren.
-dtd:(on|off)
Option | Aufgabe | Kernow |
-dtd:on | Aktivierung der DTD-Validierung | nein |
-dtd:off | Deaktivierung der DTD-Validierung | nein |
Steuerung der Verarbeitung:
Die Option aktiviert beziehungsweise deaktiviert die Validierung der Quelldatei und aller über document() eingebundenen Ressourcen anhand einer DTD.
-ds | -dt (deprecated)
Option | Aufgabe | Kernow |
-ds | Standard-Tree-Mode | ja, alternativ |
-dt | TinyTree-Mode (Default) | ja, alternativ |
Steuerung der Verarbeitung:
Die Option -ds schaltet Saxon intern auf Verarbeitung gemäß dem traditionellen Baummodell (linked tree) um. Die alternative Option -dt bewirkt das (explizite) Umschalten auf das so genannte TinyTree-Modell, das den Default-Modus von Saxon darstellt.
Hinweis: Diese Optionen sind in Saxon 9 nur noch aus Gründen der Abwärtskompatibilität enthalten. Sie werden in Zukunft möglicherweise abgeschafft. Verwenden Sie -tree:tiny anstelle von -dt und -tree:linked anstelle von -ds.
-expand:(on|off)
Option | Aufgabe | Kernow |
-expand:on | Default-Werte expandieren | nein |
-expand:off | Default-Werte nicht expandieren | nein |
Steuerung der Verarbeitung:
Die Option unterdrückt mit -expand:off das Einfügen von festen (fixed) Werten und Default-Werten in ein XML-Dokument, wie sie im Rahmen eines Schemas oder einer DTD festgelegt sind. Die Wirksamkeit der Option hängt vom verwendeten XML-Parser ab. Mit -expand:on wird das Expandieren von festen Werten und Default-Werten ausdrücklich gestattet (normale Arbeitsweise).
-explain[:filename]
Option | Aufgabe | Kernow |
-explain[:filename] | Stylesheet als Baum ausgeben | nein |
Debugging:
Die Option hilft beim Debuggen eines Stylesheets, indem sie alle Instruktionen und XPath-Ausdrücke nach Durchlaufen der Optimiererstufe in Form einer Baumstruktur als XML-Datei ausgibt. Die Ausgabe erfolgt in eine als Argument übergebene Datei. Ohne Datei-Argument gibt die Option -explain das Ergebnis am Standard Error Output (stderr) aus.
-ext:(on|off)
Option | Aufgabe | Kernow |
-ext:on | Erweiterungsfunktionen gestattet | nein |
-ext:off | Kein Aufruf von Erweiterungsfunktionen | nein |
Sicherheit:
Die Option ersetzt die veraltete Option -noext.
Wird die Option mit Argument -ext:off gesetzt, so wird der Aufruf von Erweiterungsfunktionen im Stylesheet unterdrückt, sofern es sich nicht um solche von Saxon selbst oder um EXSLT-Erweiterungen handelt.
Der Hauptgrund für die Existenz dieser Option ist, sich bei der Verarbeitung von eventuell »nicht vertrauenswürdigen« Stylesheets abzusichern, die beispielsweise extern über HTTP aufgerufen wurden. In diesem Fall bestünde die prinzipielle Möglichkeit, dass ein solches Stylesheet über eine Erweiterungsfunktion eine Java-Klasse aufruft, die einen privilegierten Zugang zu Systemressourcen ermöglicht.
Das Argument -ext:on erlaubt den Aufruf aller Erweiterungen und entspricht dem Standardverhalten des Prozessors.
-im:modename (früher: -im modename)
Option | Aufgabe | Kernow |
-im:modename | Wahl eines Start-Modus | ja |
Steuerung der Verarbeitung:
Wählt einen Start-Modus (initial mode) für die Verarbeitung aus. Zu übergeben ist der Bezeichner des Modus. Besitzt dieser einen Namensraum, so muss er in expandierter Form wie folgt übergeben werden: {uri}localname
-it:template (früher: -it template)
Option | Aufgabe | Kernow |
-it:template | Wahl eines benannten Templates (Name) | ja |
Steuerung der Verarbeitung:
Die Option -it kann nur gewählt werden, solange kein Quelldokument explizit aufgerufen wird. Es kann hierbei ein beliebiges benanntes Template des übergebenen Stylesheets über seinen Bezeichner zum Startpunkt der Verarbeitung gemacht werden.
<xsl:template name="hallo">
<html>
<body>
<h1>Hallo Welt!</h1>
<xsl:apply-templates select="fn:doc('beispiel.xml')/*"/>
</body>
</html>
</xsl:template>
Ein Aufruf, der die Verarbeitung mit dem oben stehenden Template hallo (innerhalb von named-template.xsl) startet, lautet wie folgt:
java net.sf.saxon.Transform -it:hallo named-template.xsl
Der Name des zu startenden Templates muss unmittelbar nach dem Optionskürzel übergeben werden, anschließend der Dateiname des Stylesheets. Das in der Option bezeichnete Template wird in jedem Fall zuerst ausgeführt. Von hier aus können weitere Templates aufgerufen oder auch beliebige Quelldokumente eingebunden werden (wie oben im Code-Beispiel mit fn:doc() demonstriert).
-l:(on|off) (früher: -l)
Option | Aufgabe | Kernow |
-l:on | Zugang zu Zeilennummern des Quelltextes | nein |
-l:on | Kein Zugang zu Zeilennummern | nein |
-l | Veraltetete, argumentlose Version | ja |
Debugging:
Mit Hilfe der -l-Option erhält Saxon Zugang zu den Zeilennummern des Quelltextdokuments. Diese können anschließend (im Stylesheet) mittels der Saxon-Erweiterungsfunktion saxon:line-number() ausgewertet werden.
Hinweis: Die Option -l ohne folgendes Argument wird in Saxon 9 nur noch aus Gründen der Abwärtskompatibilität unterstützt. Sie entspricht der expliziten Übergabe der Option -l:on. Die argumentlose Version wird in Zukunft möglicherweise abgeschafft.
-m:classname (früher: -m classname)
Option | Aufgabe | Kernow |
-m:classname | Meldungen in Protokolldatei lenken | nein |
Debugging:
Normalerweise werden aus dem Stylesheet mittels xsl:message abgesetzte Meldungen (bei denen es sich um XML-Fragmente handelt) von Saxon an den Standard Error Output Stream gegeben. Mittels der Option -m kann eine Java-Klasse bezeichnet werden, die stattdessen den Datenstrom entgegennimmt und ihn in eine beliebige Protokolldatei umlenkt.
-noext (deprecated)
Option | Aufgabe | Kernow |
-noext | Kein Aufruf von Erweiterungsfunktionen | nein |
Sicherheit:
Wird die Option -noext gesetzt, so wird der Aufruf von Erweiterungsfunktionen im Stylesheet unterdrückt, sofern es sich nicht um solche von Saxon selbst oder um EXSLT-Erweiterungen handelt.
Hinweis: Diese Option ist in Saxon 9 nur noch aus Gründen der Abwärtskompatibilität enthalten. Sie wird in Zukunft möglicherweise abgeschafft. Verwenden Sie stattdessen -ext:off.
-novw (deprecated)
Option | Aufgabe | Kernow |
-novw | Versionswarnung unterdrücken | ja |
Versionswarnung unterdrücken:
Der Parameter unterdrückt die normalerweise erfolgende Versionswarnung (diese ist durch die W3C-Spezifikation vorgesehen), wenn ein XSLT 2.0-Prozessor ein XSLT 1.0-Stylesheet verarbeitet.
Hinweis: Diese Option ist in Saxon 9 nur noch aus Gründen der Abwärtskompatibilität enthalten. Sie wird in Zukunft möglicherweise abgeschafft. Verwenden Sie stattdessen -versionmsg:off.
-o:filename (früher: -o filename)
Option | Aufgabe | Kernow |
-o:filename | Erzeugung einer Ausgabedatei | direkt wählbar |
Steuerung der Verarbeitung:
Die wohl wichtigste Option ist -o. Sie lenkt das Transformationsergebnis in eine Datei, deren Name in Zusammenhang mit der Option übergeben wird. Solange diese Option nicht gesetzt wird, geht das Transformationsergebnis an den Standard-Output.
-or:classname (früher: -or classname)
Option | Aufgabe | Kernow |
-or:classname | URI-Resolver für xsl:result-document | nein |
Steuerung der Verarbeitung:
Die übergebene Java-Klasse wird als URI-Resolver eingesetzt, um die als href-Attributwert von xsl:result-document übergebenen URI-Strings aufzulösen. Die verwendete Klasse muss das Interface net.sf.saxon.OutputURIResolver implementiert haben.
-outval:(recover|fatal)
Option | Aufgabe | Kernow |
-outval:recover | Validierungsfehler des Ergebnisdokuments gestatten | nein |
-outval:fatal | Bei Validierungsfehler abbrechen | nein |
Steuerung des Validierungsverhaltens:
Wird das Ergebnisdokument validiert und tritt dabei ein Validierungsfehler auf, so wird die Transformation im Regelfall mit einer Fehlermeldung abgebrochen, ohne dass ein Ergebnisdokument serialisiert wird. Dieses Verhalten kann mit der Option -outval:recover dahingehend geändert werden, dass ein Validierungsfehler lediglich als Warnung an Standard Error Output gemeldet wird und (sofern dies möglich ist) als Kommentar in einem dann serialisierten Ergebnisdokument erscheint. Mit -outval:fatal wird der Prozessor explizit zum Standardverhalten angewiesen.
-p[:(on|off)]
Option | Aufgabe | Kernow |
-p | PTreeURIResolver aktivieren | nein |
-p:on | PTreeURIResolver aktivieren | nein |
-p:off | PTreeURIResolver deaktivieren | nein |
Steuerung der Verarbeitung (nur Saxon-SA):
Die argumentlose Option -p und die Option -p:on schalten den Prozessor in den schema-sentitiven Modus und aktiviert die Auswertung Saxon-spezifischer Dateiendungen in allen URI-Strings (eingeschlossen des per Kommandozeile übergebenen Quelldokuments). Die Option -p:off deaktiviert dies explizit.
Zurzeit wird von Saxon lediglich die Endung .ptree (parsed tree) verwendet, die es zur Erhöhung der Verarbeitungsgeschwindigkeit ermöglicht, eine bereits verarbeitete und als »Saxon PTree« gespeicherte XML-Datei direkt zu laden.
Zweitens werden bestimmte Query-Parameter ausgewertet, die die Validierung gemäß einem Schema betreffen. Derzeit ist dies der Parameter val, der die Werte strict, lax oder strip annehmen kann. Beispielsweise kann die strikte Validierung eines Dokuments mit quelldokument.xml?val=strict veranlasst werden.
Hinweis: Die Option -p ist nicht gleichzeitig mit -r anwendbar. Sie aktiviert automatisch -u und -sa (URL-Auswertungs- und Schema-Aware-Option).
-r:classname (früher: -r classname)
Option | Aufgabe | Kernow |
-r:classname | Einbindung von URI-Resolver | nein |
Steuerung der Verarbeitung:
Die Option -r ermöglicht die Verarbeitung von URIs mittels einer als URIResolver bestimmten benutzerdefinierten Java-Klasse. Diese Klasse muss auf der net.sf.saxon.URIResolver-Klasse aufsetzen (extends), die einen URI-String entgegennehmen und hierfür einen SaxInputSource-Handler zurückgeben kann. Sinnvoll kann dies sein, wenn Dokumente oder Stylesheet-Module mittels xsl:include, xsl:import oder der Funktion document() eingebunden werden sollen. Eine solche Klasse könnte die Auflösung speziell formulierter URIs ermöglichen, die beispielsweise auf ein lokales Repository zeigen, etwa in der Form:
<xsl:include href="mein_repository://modul2.xsl"/>
Im Zusammenhang mit dieser Option ist auch die Option -u von Bedeutung.
-repeat:integer
Option | Aufgabe | Kernow |
-repeat:integer | Transformation wiederholen | nein |
Performace-Messung:
Die Option -repeat wiederholt den Transformationsvorgang je nach übergebenem Zahlenwert entsprechend oft. Dies Erleichtert die Ermittlung eines Performance-Wertes, da dieser bei einfacher Ausführung auf Grund der Latenzzeit der Java-Umgebung nur schwer exakt zu ermitteln ist.
-s:filename (früher: -s filename)
Option | Aufgabe | Kernow |
-s:filename | Quelldokument übergeben | nein |
Steuerung der Verarbeitung:
Mit dem obligatorischen Parameter -s wird das Quelldokument oder auch ein Quellverzeichnis übergeben. Der Dokumentknoten des aus dem bezeichneten Dokument erzeugten Baums dient als Initialkontext der Verarbeitung (initial context). Anstelle eines Dateinamens darf der Bindestrich »-« übergeben werden. In diesem Fall entnimmt Saxon die Quellinformationen aus dem Standard Input (stdin).
Wird kein einzelnes Dokument, sondern ein Verzeichnis übergeben, so verarbeitet Saxon der Reihe nach alle in diesem Verzeichnis enthaltenen Dokumente. In diesem Falle muss die Option -o gesetzt sein, und diese muss ein Verzeichnis nennen, das die Ergebnisdokumente aufnehmen soll.
Hinweis: Die Option -it darf nicht gleichzeitig gesetzt sein. Die Übergabe einer Quelle mit -s kann ganz unterbleiben, wenn die Option -t gesetzt ist.
-sa (deprecated)
Option | Aufgabe | Kernow |
-sa | Schemabezogene Verarbeitung aktivieren | nein |
Steuerung der Verarbeitung (nur Saxon-SA):
Die Option -sa aktiviert die schemabezogene Verarbeitung. Sie muss gesetzt werden, sobald eine schemabezogene Verarbeitung gewünscht ist, ansonsten verbleibt der Prozessor im Basic-Mode.
Hinweis: Wenn Sie vergessen, die Option zu setzen, erhalten Sie auch mit einem gültig lizensierten Saxon-SA beim Versuch einer schemabezogenen Verarbeitung eine Fehlermeldung. Der Prozessor verhält sich in diesem Fall wie sein nicht schemafähiges Basic-Pendant.
-sall (deprecated)
Option | Aufgabe | Kernow |
-sall | Entfernen von Whitespace | nein |
Steuerung der Verarbeitung:
Entfernt vor der Verarbeitung alle Whitespace-Nodes aus dem Quelldokument. Dies geschieht unanhängig von Anweisungen eventueller xsl:strip-space-Instruktionen im Stylesheet oder etwaiger xml:space-Attribute im Quelldokument.
Hinweis: Diese Option ist in Saxon 9 nur noch aus Gründen der Abwärtskompatibilität enthalten. Sie wird in Zukunft möglicherweise abgeschafft. Verwenden Sie stattdessen -strip:all.
-signorable (deprecated)
Option | Aufgabe | Kernow |
-signorable | Entfernen von Whitespace (ignorable) | nein |
Steuerung der Verarbeitung:
Entfernt vor der Verarbeitung alle nicht signifikanten (ignorable) Whitespace-Nodes aus dem Quelldokument.
Hinweis: Diese Option ist in Saxon 9 nur noch aus Gründen der Abwärtskompatibilität enthalten. Sie wird in Zukunft möglicherweise abgeschafft. Verwenden Sie stattdessen -strip:ignorable.
-snone (deprecated)
Option | Aufgabe | Kernow |
-snone | Kein Entfernen von Whitespace | nein |
Steuerung der Verarbeitung:
Es soll vor der Verarbeitung explizit keinerlei Entfernung von Whitespace-Nodes erfolgen, wenn diese Option gesetzt ist. Hiermit ist jedoch nicht das Entfernen von Whitespace-Nodes außer Kraft gesetzt, das nachfolgend durch xsl:strip-space angeordnet wird.
Hinweis: Diese Option ist in Saxon 9 nur noch aus Gründen der Abwärtskompatibilität enthalten. Sie wird in Zukunft möglicherweise abgeschafft. Verwenden Sie stattdessen -strip:none.
-strip:(all|none|ignorable)
Option | Aufgabe | Kernow |
-strip:all | Entfernen von Whitespace | nein |
-strip:none | Kein Entfernen von Whitespace | nein |
-strip:ignorable | Entfernen von Whitespace (ignorable) | nein |
Steuerung der Verarbeitung:
Ersetzt die veralteten Optionen -snone, -sall und -signorable.
Mit -strip:all werden vor der Verarbeitung alle Whitespace-Nodes aus dem Quelldokument entfernt, egal ob sie signifikant sind oder nicht.
Die Option -strip:none untersagt die Entfernung von Whitespace-Nodes explizit. Hiermit ist jedoch nicht das Entfernen von Whitespace-Nodes außer Kraft gesetzt, das nachfolgend durch xsl:strip-space angeordnet wird.
Mit -strip:ignorable erfolgt eine Entfernung von Whitespace-Nodes, sofern diese als nicht signifikant (ignorable) gelten. Dies geschieht unanhängig von Anweisungen eventueller xsl:strip-space-Instruktionen im Stylesheet oder etwaiger xml:space-Attribute im Quelldokument. Whitespace-Nodes gelten dann als »nicht signifikant«, wenn sie innerhalb von Elementen auftreten, deren Inhaltsmodell per DTD oder Schema als »Elementinhalt« definiert ist. Derartige Whitespace-Nodes entstehen durch Zeilenumbrüche oder Einrückungen im Quelltext.
-t
Option | Aufgabe | Kernow |
-t | Ausgabe an Standard Error Output | ja |
Kontrolle der Verarbeitung:
Die gesetzte Option -t veranlasst Saxon, im Standard Error Output (stderr) zusätzliche Informationen auszugeben. Hierzu gehören Informationen über den Prozessor selbst (Versionsnummer), über die Transformation (Dauer der Verarbeitung, Größe des erzeugten Dokumentbaums) und über geladene Erweiterungsmodule. Darüber hinaus werden die kompletten Pfade und Dateinamen der beteiligten Dokumente (Quelldokument, Stylesheet und Ergebnisdokument) ausgegeben.
Abbildung: Ausgabe von Saxon bei gesetzter Option -t
-T
Option | Aufgabe | Kernow |
-T | Protokoll an Standard Error Output | nein |
Protokollierung und Debugging:
Die für Debugging-Zwecke extrem nützliche Option -T schickt ein Protokoll der Transformation als Tracing-Information an den Standard Error Output. Aufgezeichnet wird der Aufruf aller Instruktionen und der jeweils erzeugte Output. Dies geschieht in Verbindung mit Zeilennummern, die sich auf die aktuell verarbeitete Zeile des Quelldokuments beziehen.
Die Tracing-Informationen sind in XML-Form aufbereitet und können ebenfalls mittels XSLT weiterverarbeitet oder ausgewertet werden, was in Anbetracht des Umfangs, den solche Tracing-Daten annehmen können, durchaus eine wertvolle Option darstellt.
-T:classname
Option | Aufgabe | Kernow |
-T:classname | Protokoll an Standard Error Output | nein |
Protokollierung und Debugging:
Bekommt die Option -T einen Classname übergeben, so muss dieser eine benutzerdefinierte Java-Klasse bezeichnen, an die die Tracing-Informationen geschickt werden sollen. Diese Klasse muss net.sf.saxon.trace.TraceListener implementiert haben.
Aufgezeichnet werden der Aufruf aller Instruktionen und der jeweils erzeugte Output. Dies geschieht in Verbindung mit Zeilennummern, die sich auf die aktuell verarbeitete Zeile des Quelldokuments beziehen.
-TJ
Option | Aufgabe | Kernow |
-TJ | Tracer über Java-Methode | ja |
Debugging:
Die Option -TJ setzt einen Tracer auf den Aufruf externer Java-Methoden aus dem Stylesheet, wie es beispielsweise bei der Verwendung von Erweiterungsfunktionen vorkommt. Gedacht ist die Option für den Fall, dass ein Aufruf einer Erweiterungsfunktion fehlschlägt, weil Saxon eine entsprechende Methode nicht findet, oder unklar ist, welche Methode von verschiedenen zur Auswahl stehenden Methoden tatsächlich aufgerufen wird.
-TL classname (deprecated)
Option | Aufgabe | Kernow |
-TL classname | Java-Klasse als TraceListener | nein |
Debugging:
Mit der Option -TL kann eine als TraceListener dienende benutzerdefinierte Java-Klasse festgelegt werden. In dieser Klasse muss net.sf.saxon.trace.TraceListener implementiert sein.
Hinweis: Diese Option ist in Saxon 9 nur noch aus Gründen der Abwärtskompatibilität enthalten. Sie wird in Zukunft möglicherweise abgeschafft. Verwenden Sie stattdessen -T:classname.
Abbildung: Ein Tracing-Dokument im Standard-Output
-TP (deprecated)
Option | Aufgabe | Kernow |
-TP | TraceListener mit Protokolldatei | nein |
Debugging und Optimierung:
Die Option -TP aktiviert mit dem TimedTraceListener einen speziellen TraceListener, der in einer Protokolldatei Timing-Informationen über das Verhalten der im Verlauf der Transformation aufgerufenen Instruktionen ablegt. Die so erhaltenen Informationen können (im Zuge einer Performance-Analyse) Hinweise auf das Zeitverhalten einzelner Instruktionen bieten, was wiederum zur Optimierung des Stylesheets verwendet werden kann.
Hinweis: Diese Option ist in Saxon 9 nur noch aus Gründen der Abwärtskompatibilität enthalten. Sie wird in Zukunft möglicherweise abgeschafft. Verwenden Sie stattdessen -T:net.sf.saxon.trace.TimedTraceListener.
-tree:[linked|tiny]
Option | Aufgabe | Kernow |
-tree:linked | Standard-Tree-Mode | nein |
-tree:tiny | TinyTree-Mode (Default) | nein |
Steuerung der Verarbeitung:
Ersetzt die veralteten Optionen -ds und -dt.
Die Option -tree:linked schaltet Saxon intern auf Verarbeitung gemäß dem traditionellen Baummodell (linked tree) um. Vorsicht – dieses Modell erlaubt nicht die Verwendung von Typ-Annotationen an Knoten!
Die alternative Option -tree:tiny bewirkt das (explizite) Umschalten auf das sogenannte TinyTree-Modell, das allerdings auch den Default-Modus von Saxon darstellt. Saxon verwendet für TinyTree, im Gegensatz zum traditionellen Baum, keine Java-Klassen zur Darstellung der Nodes, sondern Integer-Arrays, wodurch dieses Modell weniger Arbeitsspeicher benötigt. Deren Speichermehrbedarf kann pro dargestelltem Node gegenüber dem Quelldokument den Faktor 50 übersteigen, sodass der Baum eventuell den verfügbaren Arbeitsspeicher sprengt!
Das TinyTree-Modell bietet sich, neben der Möglichkeit, hier tatsächlich Typ-Annotationen einzusetzen, besonders für längere Quelldokumente an, da das hier zugrunde liegende Baummodell vom Aufbau her schneller ist. In Bezug auf die XPath-Navigation im Baum ist es jedoch für bestimmte Achsen (z.B. Preceding-Achse oder Preceding-Sibling-Achse) weniger performant. Die Dauer der Transformation hängt daher, außer vom Umfang des Quelldokuments, auch von der Programmierung des Stylesheets ab. Das erzeugte Ergebnisdokument ist in beiden Fällen identisch – unabhängig von der Wahl des Baummodells.
-u
Option | Aufgabe | Kernow |
-u | Dateipfade als URLs | nein |
Steuerung der Verarbeitung:
Die Option -u unterstreicht, dass die beim Aufruf als Quelldokument- und Stylesheet-Namen übergebenen Strings als URLs zu betrachten sind. Andernfalls werden sie stets als Dateinamen (bzw. Verzeichnisnamen) betrachtet, es sei denn, sie beginnen explizit mit http: oder file:.
-v (deprecated)
Option | Aufgabe | Kernow |
-v | Validierung aller Quelldokumente | nein |
Validierung:
Die erfolgreiche Verwendung der Option -v setzt das Vorhandensein eines validierenden XML-Parsers voraus. Sie aktiviert die Validierung des Quelldokuments und von weiteren Eingangsdokumenten, die per document()-Funktion eingelesen werden. Die Option steht ausdrücklich nicht mit der Berücksichtigung von XML Schema durch den XSLT-Prozessor selbst in Verbindung – es spielt keine Rolle, ob Saxon-B oder Saxon-SA eingesetzt wird.
Hinweis: Diese Option ist in Saxon 9 nur noch aus Gründen der Abwärtskompatibilität enthalten. Sie wird in Zukunft möglicherweise abgeschafft. Verwenden Sie stattdessen -dtd:on.
-val[:(strict|lax)]
Option | Aufgabe | Kernow |
-val | Validierung, strikt (deprecated) | nein |
-val:strict | Validierung, lax | nein |
-val:lax | Validierung, strikt | nein |
Validierung:
Die Option -val:strict veranlasst eine strikte schemabasierte Validierung des Quelldokuments und aller sekundären Quelldokumente, die per document()-Funktion in die Verarbeitung einbezogen werden. Diese Option ist nur für Saxon-SA verfügbar. Ihre Verwendung setzt automatisch auch die -sa-Option für schemabezogene Verarbeitung. Analog ordnet auch -val:lax eine Validierung des Quelldokuments an, sofern ein Schema-Dokument hierfür zur Verfügung steht. Andernfalls erfolgt keine Validierung. Dies entspricht einer Validierung vom Typ »lax«.
Hinweis: Die argumentlose Option -val ist in Saxon 9 nur noch aus Gründen der Abwärtskompatibilität enthalten. Sie wird in Zukunft möglicherweise abgeschafft. Verwenden Sie stattdessen -val:strict.
-versmsg:[on|off]
Option | Aufgabe | Kernow |
-versmsg:on | Versionswarnung erlauben | nein |
-versmsg:off | Versionswarnung unterdrücken | nein |
Versionswarnung unterdrücken:
Ersetzt die veraltete Option -novw. Der Parameter -versmsg:off unterdrückt die normalerweise erfolgende Versionswarnung (diese ist durch die W3C-Spezifikation vorgesehen), wenn ein XSLT 2.0-Prozessor ein XSLT 1.0-Stylesheet verarbeitet. Die Variante -versmsg:on erlaubt dies explizit.
-vlax (deprecated)
Option | Aufgabe | Kernow |
-vlax | Validierung, lax | nein |
Validierung:
Die Option -vlax veranlasst eine Validierung des Quelldokuments, sofern ein Schema-Dokument hierfür zur Verfügung steht. Andernfalls erfolgt keine Validierung. Dies entspricht einer Validierung vom Typ »lax«. Die Verwendung dieser Option setzt automatisch die Option -sa für eine schemabezogene Verarbeitung. Sie ist nur für Saxon-SA verfügbar.
Hinweis: Diese Option ist in Saxon 9 nur noch aus Gründen der Abwärtskompatibilität enthalten. Sie wird in Zukunft möglicherweise abgeschafft. Verwenden Sie stattdessen -val:lax.
-vw (deprecated)
Option | Aufgabe | Kernow |
-vw | Warnung statt Fehler | nein |
Fehlerbehandlung:
Die Option -vw stuft Validierungsfehler, die in Zusammenhang mit dem Ergebnisbaum auftreten, zu einfachen Warnungen herunter. Es erfolgt also kein Abbruch der Verarbeitung, wenn das Ergebnis nicht validierbar ist. Diese Option ist nur für Saxon-SA verfügbar.
Hinweis: Diese Option ist in Saxon 9 nur noch aus Gründen der Abwärtskompatibilität enthalten. Sie wird in Zukunft möglicherweise abgeschafft. Verwenden Sie stattdessen -outval:recover.
-w0, -w1, -w2 (deprecated)
Option | Aufgabe | Kernow |
-w0 | Fehler ignorieren, keine Meldung | ja, alternativ |
-w1 | Weiter nach Fehlermeldung (Default) | ja, alternativ |
-w2 | Stets Abbruch nach Fehlermeldung | ja, alternativ |
Fehlerbehandlung und Debugging:
Diese drei Optionen steuern das Verhalten des Prozessors beim Auftreten von Fehlern bei der Stylesheet-Verarbeitung, die als recoverable errors eingestuft sind, also nicht zwangsläufig den Abbruch der Transformation zur Folge haben müssen.
Hierbei bezeichnet die Option -w0 das stillschweigende Ignorieren solcher Fehler (recover silently), während -w1 eine entsprechende Meldung an System Error Output absetzt. Die Option -w2 bedeutet, dass der Fehler gemeldet und grundsätzlich, auch bei behebbaren Fehlern, ein Abbruch veranlasst wird.
Hinweis: Diese Option ist in Saxon 9 nur noch aus Gründen der Abwärtskompatibilität enthalten. Sie wird in Zukunft möglicherweise abgeschafft. Verwenden Sie stattdessen -warnings:silent, -warnings:recover und -warnings:fatal.
-warnings:[silent|recover|fatal]
Option | Aufgabe | Kernow |
-warnings:silent | Fehler ignorieren, keine Meldung | nein |
-warnings:recover | Weiter nach Fehlermeldung | nein |
-warnings:fatal | Stets Abbruch nach Fehlermeldung | nein |
Fehlerbehandlung und Debugging:
Ersetzt die veralteten Optionen -w0, -w1 und -w2.
Die Option -warnings steuert mit drei alternativen Argumenten das Verhalten des Prozessors beim Auftreten von Fehlern bei der Stylesheet-Verarbeitung, die als recoverable errors eingestuft sind, also nicht zwangsläufig den Abbruch der Transformation zur Folge haben müssen.
Hierbei bezeichnet -warnings:silent das stillschweigende Ignorieren solcher Fehler (recover silently), während -warnings:recover, das gleichzeitig Saxons Default-Verhalten darstellt, eine entsprechende Meldung an System Error Output absetzt. Die Option -warnings:fatal bedeutet, dass der Fehler gemeldet und grundsätzlich, auch bei behebbaren Fehlern, ein Abbruch veranlasst wird.
-x:classname (früher: -x classname)
Option | Aufgabe | Kernow |
-x:classname | SAX-Parser für document() | nein |
Steuerung der Verarbeitung:
Mittels der Option -x kann ein SAX-Parser in Form einer Java-Klasse genannt werden, der das Parsen des Quelldokuments und weiterer per document()-Funktion eingebundener Dokumente übernehmen soll. Es muss sich bei dem übergebenen Klassennamen um einen voll qualifizierten Bezeichner (fully-qualified class name) einer Klasse handeln, die als Interface entweder org.xml.sax.Parser oder org.xml.sax.XMLReader implementiert.
-xi
Option | Aufgabe | Kernow |
-xi | Anwendung von XInclude | nein |
Steuerung der Verarbeitung:
Setzt alle an der Verarbeitung beteiligten Dokumente (alle Quelldokumente, aber auch Schema-Dokumente und Stylesheet-Module) per XInclude zu einem gemeinsamen Infoset zusammen.
Hinweis: Dies ist derzeit an den Einsatz des XML-Parsers Xerces gebunden, der Teil des JDK ab Version 1.5 ist. Für die .NET-Verarbeitung steht die Option -xi nicht zur Verfügung.
-xmlversion:[1.0|1.1]
Option | Aufgabe | Kernow |
-xmlversion:1.0 | Versionen 1.0 für XML zulassen | nein |
-xmlversion:1.1 | Versionen 1.1 für XML zulassen | nein |
Steuerung der Verarbeitung:
Die Option ersetzt die veraltetete Option -1.1.
Die Option -xmlversion:1.1 erlaubt das korrekte Einlesen von XML 1.1-Quelldokumenten und das Erzeugen entsprechender Ergebnisdokumente, wobei auch Namensräume gemäß der Spezifikation XML Namespaces 1.1 berücksichtigt werden können. Gleichzeitig dürfen hiermit auch spezielle XML 1.1-Konstrukte im Stylesheet selbst auftreten. Analog definiert -xmlversion:1.0 das Default-Verhalten des Prozessors.
-xsl:filename
Option | Aufgabe | Kernow |
-xsl:filename | Einbinden des Haupt-Stylesheet-Moduls | nein |
Steuerung der Verarbeitung:
Die Option -xsl bindet das Haupt-Stylesheet-Modul in die Verarbeitung ein. Die Option ist obligatorisch, außer wenn die Optionen -a oder -c gesetzt sind. Der Bindestrich »-« als Wert besagt, dass die Stylesheet-Information aus dem Standard Input bezogen werden soll. Wenn auch die Option -u gesetzt ist, muss anstelle eines Dateinamens ein URI übergeben werden.
Hinweis: Aus Gründen der Abwärtskompatibilität kann alternativ nach wie vor nach allen gesetzten Optionen und vor Übergabe eventueller Parameter lediglich der Dateiname eines Stylesheets genannt werden (ohne die Option -xsl).
-y:classname (früher: -y classname)
Option | Aufgabe | Kernow |
-y:classname | SAX-Parser für Includes | nein |
Steuerung der Verarbeitung:
Mittels der Option -y kann ebenfalls ein SAX-Parser in Form einer Java-Klasse genannt werden, der das Parsen des Stylesheet-Dokuments und aller per xsl:include oder xsl:import eingebundenen Stylesheet-Module übernehmen soll. Es muss sich bei dem übergebenen Klassennamen um einen voll qualifizierten Bezeichner (fully-qualified class name) einer Klasse handeln, die als Interface entweder org.xml.sax.Parser oder org.xml.sax.XMLReader implementiert.
-1.1 (deprecated)
Option | Aufgabe | Kernow |
-1.1 | Versionen 1.1 für XML zulassen | nein |
Steuerung der Verarbeitung:
Das Setzen der Option -1.1 erlaubt das korrekte Einlesen von XML 1.1-Quelldokumenten und das Erzeugen entsprechender Ergebnisdokumente.
Hinweis: Diese Option ist in Saxon 9 nur noch aus Gründen der Abwärtskompatibilität enthalten. Sie wird in Zukunft möglicherweise abgeschafft. Verwenden Sie stattdessen -xmlversion:1.1.
-?
Option | Aufgabe | Kernow |
-? | Syntaxhilfe | nein |
Hilfe:
Die Option -? gibt eine Übersicht über die von Saxon verwendete Kommandozeilensyntax aus, inklusive einer Kurzbeschreibung der einsetzbaren Optionen. Da hier keine Transformation eingeleitet wird, brauchen keine weiteren Angaben, wie die eines Quelldokuments oder Stylesheets, zu erfolgen.
<< zurück | vor >> |
Tipp der data2type-Redaktion: Zum Thema XSLT bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an: |
Copyright © Galileo Press, Bonn 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XSLT 2.0 & XPath 2.0 ― Das umfassende Handbuch" denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.
Galileo Press, Rheinwerkallee 4, 53227 Bonn