2012-04-02 3 views
1

에 네임 스페이스가 속성을 추가는 XML을위한 모듈 형 방식

<foo xmlns="http://ns.com" 
    xmlns:ext="http://ext.com" 
    attr="xxx" 
    ext:bar="yyy"> 
</foo> 

가 어떻게이 푸 클래스를 만들 수 있습니까? 특히, 나는 'ext'속성을 어떻게 든 분리 할 수 ​​있기를 원합니다. 그래서 Foo에 직접적으로 존재하지는 않지만 다른 클래스에서는, 그리고 형식적인 방식으로 (그래서 XmlAnyAttribute가 아닙니다).

내가 최적으로 바라는 것은 : 참조 된 개체가 @XmlValue와 하나의 매핑 필드/속성이있는 경우

class Foo { 
    Ext ext; 
} 

class Ext { 
    String bar; 
} 

답변

0

당신은 @XmlAttribute와 POJO 필드/속성을 매핑 할 수 있습니다. 추가 정보

class Foo { 
    @XmlAttribute(namespace="http://www.ext.com") 
    Ext ext 
} 

내선

class Ext { 
    @XmlValue 
    String bar; 
} 


UPDATE

참고 : 나는 EclipseLink JAXB (MOXy) 리드와 JAXB 2 (JSR-222) 전문가 그룹의 구성원입니다.

여러 속성을 매핑하려면 어떻게해야합니까?

당신이 사용 사례에 대한 MOXY의 @XmlPath 확장 활용할 수 있습니다 :

@XmlPath(".") 사용을 당신이 같은 XML 문서에서 동일한 수준으로 표현 된 대상 객체를 원하는 것을 나타냅니다 소스 객체.

class Foo { 
    @XmlPath(".") 
    Ext ext 
} 

추가 정보 내선

class Ext { 
    @XmlAttribute 
    String foo; 

    @XmlAttribute 
    String bar; 
} 

,
+1

여러 속성을 매핑하려면 어떻게해야합니까? – IttayD

+0

Ext가 다른 네임 스페이스에 속하도록 지정하려면 어떻게해야합니까? – IttayD

+0

@IttayD - 다음 내용이 도움이 될 것입니다. http://blog.bdoughan.com/2010/08/jaxb-namespaces.html –