2014-11-17 16 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指定的名稱空間中。