我需要构建一个在输入中需要一些XML文档的组件,并检查以下类型的规则:
XML1:/bookstore/book[price>35.00] != null
and (XML2:/city/name = 'Montreal'
or XML3://customer[@language] contains 'en')
基本上我的组件应该能够:
你知道哪个图书馆可以帮助我吗?也许是JavaCC?
由于
答案 0 :(得分:0)
为了评估XPATH,我建议JAXEN。
Jaxen 是一个开源的XPath库 用Java编写。适应性强 许多不同的对象模型, 包括DOM,XOM,dom4j和JDOM。 是否也可以编写适配器 处理非XML树,如 编译的Java字节代码或Java bean 作为XML,从而使您可以查询 这些树也有XPath。
Java XPath API( Java 5 / javax.xml.xpath )也是一个选项,但我还没有尝试过。
答案 1 :(得分:0)
JavaCC邮件列表上的某个人向我指出了正确的方向,提到了Schematron。它引导我Probatron,这似乎是最好的Java实现。
Schematron网站声称该语言支持“跳过链接和XML文档之间以检查约束”,但似乎Probatron不允许这样做。我可能不会调整它或找到一个技巧(比如构建一个包含我所有源文档的临时XML文档)。除此之外,看起来Probatron对我来说是合适的图书馆。