将XPath 1.0数据类型映射到java

时间:2009-03-12 19:40:18

标签: java xpath xsd xmlbeans

我正在使用XPath 1.0来处理传入的Web服务消息。如果使用schema data types,这可能很难做到,因为XPath 1.0无法识别它们(XPath 2.0确实如此,但似乎没有完整的开源实现。不确定Saxon-B是否执行此操作)。

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

这意味着,针对/test评估<test>false</test>实际上会返回True。

其他数据类型也是如此:“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绑定框架)?

1 个答案:

答案 0 :(得分:0)

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

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

卡尔