Hi zusammen,
ich bin nicht sonderlich erfahren mit Transformationen per Java. Bei den Transformationen handelt es sich um eine XML-Validierung mittels Schematron. Also ein Schematron-File (.sch) wird gegen das offizielle Schematron-Skelett validiert. Daraus wird ein Stylesheet erstellt (hier: pValidator.xsl), gegen welches im 2. Befehl ein XML file validiert wird. Ausgabe ist eine Textdatei (hier: pReport.txt). Per Commandline bekomme ich das hin, aus Java heraus leider nicht. Ich will folgende Commandline-Befehle eben in nem Programm realisieren:
Der Java-Code sieht so aus (hier nur die 2.Transformation):
Hierbei gibt es eine Fehlermeldung:
Es scheint irgendein Kompilierungsproblem mit dem pValidator-file zu geben. Ich schätze, dass der Saxon nicht richtig konfiguriert ist. Ich weiss aber leider auch nicht, wie das geht. Parameter wie "allowforeign" etc müssten gesetzt werden, aber wie?
Falls jemand eine Ahnung hat, wie er mir helfen könnte, wäre ich sehr dankbar.
Viele Grüße,
FF
ich bin nicht sonderlich erfahren mit Transformationen per Java. Bei den Transformationen handelt es sich um eine XML-Validierung mittels Schematron. Also ein Schematron-File (.sch) wird gegen das offizielle Schematron-Skelett validiert. Daraus wird ein Stylesheet erstellt (hier: pValidator.xsl), gegen welches im 2. Befehl ein XML file validiert wird. Ausgabe ist eine Textdatei (hier: pReport.txt). Per Commandline bekomme ich das hin, aus Java heraus leider nicht. Ich will folgende Commandline-Befehle eben in nem Programm realisieren:
Code:
java -jar saxon9.jar -t -s:test06.sch -xsl:D:\test\iso_schematron_skeleton_for_saxon.xsl -o:pValidator.xsl
java -jar saxon9.jar -t -s:firstchecks2.xml -xsl:pValidator.xsl -o:pReport.txt
Der Java-Code sieht so aus (hier nur die 2.Transformation):
Code:
import java.io.FileOutputStream;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
public class jdom_test16 {
public static void main(String[] args) {
try
{
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer
(new javax.xml.transform.stream.StreamSource("pValidator.xsl"));
transformer.transform (
new javax.xml.transform.stream.StreamSource ("firstchecks2.xml"),
new javax.xml.transform.stream.StreamResult (
new FileOutputStream("pReport.txt")));
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
Hierbei gibt es eine Fehlermeldung:
Code:
FEHLER: 'Fehler beim Überprüfen des Typs des Ausdrucks 'funcall(document-uri, [AbsoluteLocationPath(null)])'.'
SCHWER WIEGENDER FEHLER: 'Die Formatvorlage konnte nicht kompiliert werden.'
javax.xml.transform.TransformerConfigurationException: Die Formatvorlage konnte nicht kompiliert werden.
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTemplates(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTransformer(Unknown Source)
at jdom_test16.main(jdom_test16.java:13)
Es scheint irgendein Kompilierungsproblem mit dem pValidator-file zu geben. Ich schätze, dass der Saxon nicht richtig konfiguriert ist. Ich weiss aber leider auch nicht, wie das geht. Parameter wie "allowforeign" etc müssten gesetzt werden, aber wie?
Falls jemand eine Ahnung hat, wie er mir helfen könnte, wäre ich sehr dankbar.
Viele Grüße,
FF