我有一些RDF文件,我想将它们导入到一个triplestore (AllegroGraph)中,但是在第一个文件中,我得到一个SAX解析器错误,指出有一个无法识别的字符。删除有问题的线路后,一切都很好。然后我尝试在带有错误行的RDF上使用W3C RDF验证器和Jena,但是我得到的只是一些关于未定义语言的警告(绝对没有关于错误行的警告)。你能建议一种方法(java如果可能的话)来查找RDF文件中的错误吗?
编辑:有问题的行是:
<gn:alternateName xml:lang="got">𐌰𐍆𐌲𐌰𐌽𐌹𐍃𐍄𐌰𐌽</gn:alternateName>
您可以使用Sesame的Rio解析器进行验证。在这篇博文中有关于如何使用Rio的说明。对于具体的验证,诀窍是创建并附加一个ParseErrorListener,它从解析器接收详细的警告和错误。
但是,既然您提到遇到的问题是在SAX/XML级别,那么您也可以使用通用XML验证器来查看错误所在。最有可能的原因(但如果没有更多的细节很难判断)是您在某个地方有一个错误编码的字符。