2014-11-17 33 views
4

在MOXy中是否支持以下XPath表达式?这样MOXy @XmlPath表达式,它们是否受支持?

<demographics> 
    <field> 
    <value>12345</value> 
    <XMLtag>identifier</XMLtag> 
    </field> 
    <field> 
    <value>somename</value> 
    <XMLtag>name</XMLtag> 
    </field> 
</demographics> 

field[XMLtag!='identifier'] 

基本上我已经有了XML,我试图让一个列表来填充,但不包括这对标识符字段。

这是可行的,但给我的所有域元素在List(正确)(2)

@XmlElement(name = "field") 
public List<Field2> fieldList; 

这不会,我得到一个空的List

@XmlPath("field[XMLtag!='identifier']") 
public List<Field2> fieldList; 

如若上述工作,还是像MOXy不支持的表情?我似乎无法找到任何有关他们的信息。

我没有包括我的Field2类,因为它非常简单,显然工作正常,因为如果使用@XmlElement注释,我可以取消列表。让我知道你是否想看到它。

回答

2

EclipseLink JAXB (MOXy)@XmlPath注释支持XPath规范的一个子集。 XPath处理由MOXy自己完成。以下概念支持:

  • 属性 - @id
  • 元素 - address
  • 元的位置 - address[1]
  • 元的谓语 - address[@type='mailing']
  • 元素文本 - name/text()
  • 文本 - text()
  • Sel的F - .
  • 结合 - personal-info/name[2]/text()

对于命名空间限定的节点,在@XmlNs注释中定义的前缀可以用于限定的XPath片段。假定非限定片段位于使用@XmlSchema指定的名称空间中。

相关问题