在Windows上放松

时间:2011-07-18 18:13:21

标签: relaxng

我猜我的问题可能源于与UTF8相关的Windows文件问题。但话说回来,代码是基于Java的,所以问题可能就是问题。

我运行了MSV和JING验证器,两者都给出了与下面相同的结果。但是同样的文件确实可以在它的内部验证器上验证。我错过了什么?注意它在第一个字符上失败,因此解析器可能不是问题。尝试在管理员模式下运行它以消除任何可能的权限问题。结果相同。

C:\docbook\src>java -jar c:\msv\msv.jar c:\docbook\rnc\docbook.rnc dgsample.xml
-debug
start parsing a grammar.
Content is not allowed in prolog.
  1:1@file:///c:/docbook/rnc/docbook.rnc
Exception in thread "main" java.lang.NullPointerException
        at com.sun.msv.driver.textui.Driver.run(Driver.java:221)
        at com.sun.msv.driver.textui.Driver.main(Driver.java:68)

1 个答案:

答案 0 :(得分:1)

你的问题不是windows(好吧,不是这个特殊的问题)

您正尝试使用紧凑格式的RelaxNG架构进行验证。 oXygen处理这个很好,因为它在内部使用Jing。正如我所知,MSV无法处理紧凑格式。如果需要使用MSV在命令行执行此操作,请使用oXygen中内置的Trang转换器(工具菜单,版本12.2中的生成/转换架构)将架构转换为XML格式。

假设您正在使用普通的DocBook版本,那么您也应该拥有docbook.rng的副本,这样您就可以(我不知道您在哪里存储jing.jar):

C:\docbook\src>java -jar jing.jar c:\docbook\rnc\docbook.rng dgsample.xml

C:\docbook\src>java -jar c:\msv\msv.jar c:\docbook\rnc\docbook.rng dgsample.xml

另一方面,您可以使用Jing来执行此操作,但您需要告诉它该文件是紧凑格式:

C:\docbook\src>java -jar jing.jar -c c:\docbook\rnc\docbook.rnc dgsample.xml

希望有所帮助