1

我需要构建一个组件,该组件将在输入中使用一些 XML 文档并检查以下类型的规则:

XML1:/bookstore/book[price>35.00] != null 
and (XML2:/city/name = 'Montreal'
     or XML3://customer[@language] contains 'en')

基本上我的组件应该能够:

  • 用相应的 XML 文档替换 XML 标记(冒号前)
  • 对此 XML 文档应用 xpath 查询
  • 根据预期结果检查 xpath 输出(“=”、“!=”、“包含”)
  • 遵循基本语法(“and”、“or”和括号)
  • 判断规则是真还是假

你知道任何可以帮助我的图书馆吗?也许JavaCC?

谢谢

4

2 回答 2

0

对于评估 XPATH,我推荐JAXEN

Jaxen是一个用 Java 编写的开源 XPath 库。它适用于许多不同的对象模型,包括 DOM、XOM、dom4j 和 JDOM。是否也可以编写将非 XML 树(例如已编译的 Java 字节码或 Java bean)视为 XML 的适配器,从而使您也可以使用 XPath 查询这些树。

Java XPath API ( Java 5 / javax.xml.xpath ) 也是一个选项,但我还没有尝试过。

于 2010-03-19T14:16:28.580 回答
0

JavaCC 邮件列表中的某个人指出了正确的方向,提到了Schematron。它把我带到了Probatron,它似乎是最好的 java 实现。

Schematron 网站声称该语言支持“在链接和 XML 文档之间跳转以检查约束”,但 Probatron 似乎不允许这样做。我可能不会对其进行调整或找到一个技巧(比如构建一个包含我所有源文档的临时 XML 文档)。除此之外,看起来 Probatron 是适合我的图书馆。

于 2010-03-19T19:21:37.250 回答