MOXy中是否支持以下XPath表达式?
field[XMLtag!='identifier']
基本上我有这样的XML
<demographics>
<field>
<value>12345</value>
<XMLtag>identifier</XMLtag>
</field>
<field>
<value>somename</value>
<XMLtag>name</XMLtag>
</field>
</demographics>
我正在尝试使用List填充但排除用于标识符的字段.
这将工作,但给我列表中的所有字段元素(2)(正确)
@XmlElement( name = "field" )
public List<Field2> fieldList;
这不会,我得到一个空列表
@XmlPath( "field[XMLtag!='identifier']" )
public List<Field2> fieldList;
如果上述工作,或MOXy不支持的表达式?我似乎无法找到有关它们的任何信息.
我没有包含我的Field2类,因为它很简单,显然工作正常,因为如果使用@XmlElement注释我可以解组列表.如果您愿意,请告诉我.
最佳答案
EclipseLink JAXB (MOXy)的@XmlPath注释支持XPath规范的子集. XPath处理由MOXy本身完成.支持以下概念:
>属性 – @id
>元素 – 地址
>按位置排列的元素 – 地址[1]
>谓词元素 – 地址[@ type =’mailing’]
>元素文本 – 名称/文本()
>文字 – 文字()
>自我 – .
>组合 – 个人信息/姓名[2] /文字()
对于名称空间限定节点,@ xmlNs注释中定义的前缀可用于限定XPath片段.假定未限定的片段位于使用@XmlSchema指定的命名空间中.
> http://blog.bdoughan.com/2010/09/xpath-based-mapping-geocode-example.html