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放在类路径中很可能会导致问题。 –