2014-11-17 5 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은 내가 채워하지만 식별자 인 필드를 제외 할 목록을 얻기 위해 노력하고있어.

이 작동하지만, 나에게 (2) List (제대로)의 모든 필드 요소

@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[1]
  • 요소 - - address[@type='mailing']
  • 요소 텍스트 - name/text()
  • 텍스트 - text()address
  • 요소 위치에 의해
  • 셀 F - .
  • 조합 - 네임 스페이스 자격을 갖춘 노드에 대한 personal-info/name[2]/text()

@XmlNs 주석에 정의 된 접두사는 XPath 조각을 규정하는 데 사용할 수 있습니다. 규정되지 않은 조각은 @XmlSchema을 사용하여 지정된 네임 스페이스에 있다고 가정합니다.