0

我正在使用XPath 1.0来处理传入的 Web 服务消息。如果使用模式数据类型,这可能很难做到,因为 XPath 1.0 无法识别它们(XPath 2.0 可以,但似乎没有完整的开源实现。不确定Saxon-B是否这样做)。

例如,xs:boolean 中的文字“true”和“false”表示根据 xml 模式的布尔值 True 和 False,但 XPath 1.0 会将它们都评估为 True。

这意味着评估实际上返回 True /test<test>false</test>

其他数据类型也是如此:“12.78e-2”是 xs:double 的有效值,但计算结果为 Double.NaN。

javax.xml.datatype包含持续时间和日期时间的类型映射,仅此而已。

XMLBeans包含易于使用的 java 和 schema 的内置数据类型之间的转换器:

Node n = jaxp13XPathTemplate.evaluateAsNode(expression, context);
boolean b = XmlBoolean.Factory.parse(n).getBooleanValue();

是否有任何其他可能有用的工具(不,我不是在寻找成熟的 XML 绑定框架)?

4

1 回答 1

0

我知道你说过你不想要一个完全成熟的绑定框架,但你看过 jibx。编写绑定文件可能会有点痛苦,但是您可以从 XML 模式生成绑定,如果您有一个,而且它是如此之快,它是不真实的。

作为使用 XPath 的替代方法,您是否考虑过将 xml 解析为您可以操作的 dom?

卡尔

于 2009-03-12T19:47:12.643 回答