Ich verwende Krextor, um XML in RDF zu konvertieren. Es läuft gut über die Befehlszeile. Ich versuche, es von Java (Eclipse) mit diesem Code ausführen.Das Ausführen von XSLT zu RDF-Framework schlägt wegen Saxon fehl
private static void XMLToRDF() throws KrextorException, ValidityException, ParsingException, IOException, XSLException{
Element root = new Element("person");
Attribute friend = new Attribute("friends", "http://van-houten.name/milhouse");
root.addAttribute(friend);
Element name = new Element("name");
name.appendChild("Bart Simpson");
root.appendChild(name);
nu.xom.Document inputDocument = new nu.xom.Document(root);
System.out.println(inputDocument.toXML());
Element root1 = inputDocument.getRootElement();
System.out.println(root1);
Krextor k = new Krextor();
nu.xom.Document outputDocument = k.extract("socialnetwork","turtle",inputDocument);
System.out.println(outputDocument.toString());
}
Ich habe folgendes Problem Problem
Exception in thread "main" java.lang.NoClassDefFoundError: net/sf/saxon/CollectionURIResolver
Caused by: java.lang.ClassNotFoundException: net.sf.saxon.CollectionURIResolver
I Saxon9he im Classpath enthalten sind, und ich habe auch manuell als Bibliothek im Projekt, aber der Fehler ist die gleiche hinzugefügt.
Meine Vermutung wäre, dass Krextor eine Abhängigkeit von einer bestimmten Version von Saxon hat. Aber ich kann diese Informationen nicht leicht in ihrer Dokumentation finden. Die Klasse CollectionURIResolver war im Paket net.sf.saxon in Saxon 9.1, aber nach 9.3 war sie in net.sf.saxon.lib umgezogen. –
Ich folgte Ihrer Empfehlung und ich manuell die Saxon9.jar und jetzt bekomme ich diesen Fehler: Ausnahme im Thread "Haupt" javax.xml.transform.TransformerFactoryConfigurationError: Provider net.sf.saxon.TransformerFactoryImpl konnte nicht instanziiert werden: java.lang .SecurityException: Die Unterzeichnerinformationen der Klasse "net.sf.saxon.TransformerFactoryImpl" stimmen nicht mit Unterzeichnerinformationen anderer Klassen im selben Paket überein. – Caleb
Ich denke, Sie sollten die Entwickler von Krextor danach fragen. Vielleicht enthalten sie bereits eine Version von Saxon, in welchem Fall das Setzen einer anderen Version von Saxon auf den Klassenpfad sehr wahrscheinlich Probleme verursachen wird. –