0
我正在使用Krextor將XML轉換爲RDF。它從命令行運行良好。 我嘗試使用此代碼從Java(Eclipse)運行它。由於撒克遜運行XSLT到RDF框架失敗
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());
}
我有以下問題的問題
Exception in thread "main" java.lang.NoClassDefFoundError: net/sf/saxon/CollectionURIResolver
Caused by: java.lang.ClassNotFoundException: net.sf.saxon.CollectionURIResolver
我在classpath中包括Saxon9he,我也手動添加作爲項目庫,但錯誤是一樣的。
我的猜測是Krextor對Saxon的特定版本有依賴性。但我無法在他們的文檔中輕鬆找到這些信息。類CollectionURIResolver在Saxon 9.1的包net.sf.saxon中,但是通過9.3它已經轉移到了net.sf.saxon.lib。 –
我按照你的建議,我手動包括Saxon9.jar,現在我得到這個錯誤:異常在線程「主」javax.xml.transform.TransformerFactoryConfigurationError:提供者net.sf.saxon.TransformerFactoryImpl無法實例化:java.lang .SecurityException:類「net.sf.saxon.TransformerFactoryImpl」的簽名者信息與相同包中的其他類的簽名者信息不匹配 – Caleb
我想你應該向Krextor的開發人員詢問這一點。也許他們已經包含了一個Saxon版本,在這種情況下,將另一個版本的Saxon放在類路徑中很可能會導致問題。 –