【发布时间】:2013-01-04 22:06:58
【问题描述】:
我下载了 SaxonHE9-4-0-6J 并想在 CLI 上处理 XHTML。但是,Saxon 尝试从 W3C 加载 DTD,并且每个简单命令都需要花费太多时间。
我有 xml 目录,我通过设置指向目录文件的 env 变量成功地使用了 xmllint,但我不知道如何让 Saxon 使用它。谷歌揭示了与撒克逊人一起使用目录的整个变化历史(因此混乱),没有一个让我高兴。
我下载了resolver.jar 并将其设置在我的CLASSPATH 中,但我无法让Saxon 使用它。 经过各种组合后,我只使用目录变量来关注http://www.saxonica.com/documentation/sourcedocs/xml-catalogs.xml,例如:
-catalog:path-to-my-catalog
(尝试了 URI 和常规路径),并且没有设置 -r、-x、-y 开关,但 Saxon 没有看到它。我收到此错误:
查询处理失败:未能加载 Apache 目录解析器 图书馆
resolver.jar 在我的类路径中设置,我可以从命令行使用它:
C:\temp>java org.apache.xml.resolver.apps.resolver
Usage: resolver [options] keyword
Where:
-c catalogfile Loads a particular catalog file.
-n name Sets the name.
-p publicId Sets the public identifier.
-s systemId Sets the system identifier.
-a Makes the system URI absolute before resolution
-u uri Sets the URI.
-d integer Set the debug level.
keyword Identifies the type of resolution to perform:
doctype, document, entity, notation, public, system,
or uri.
OTOH,Saxon 存档本身已经包含 XHTML 和其他各种 DTD,因此必须有简单的方法来摆脱这种挫败感。
如何在命令行中使用 Saxon 并指示它使用本地 DTD?
【问题讨论】:
-
你能举一个你的命令行例子吗?
-
java -cp saxon9he.jar net.sf.saxon.Query -s:source.html -qs:"query string"附加开关变体不成功,试图指示使用本地目录
标签: xml validation dtd saxon xmlcatalog