2017-02-02 5 views
-1

SimpleXML을 사용하여 XML 메시지를 만듭니다. 나는이 해당 자바 코드 생성요소에 속성 추가

<item> 
    <carrier close="true">1234567</carrier> 
</item> 

: 나는 다음과 같은 메시지를 생성 할

@Root(name="item") 
public class Item { 
    @Attribute(name="close") 
    @Path("carrier") 
    boolean closeCarrier; 

    @Element 
    private String carrier; 
} 

을하지만 오류 얻을 : 나는 @Path("item/carrier")를 사용하는 경우

Element 'carrier' is also a path name in class nl.example.Item

는 다음을 만듭니다 :

<item> 
    <carrier close="true">1234567</carrier> 
    <item> 
     <carrier close="true" /> 
    </item> 
</item> 

답변

0

클래스를 사용하여 구조를 매핑하는 것이 가장 좋습니다.

Item 클래스가 배치 작성 소자 <item>...</item> :

@Root(name="item") 
public class Item 
{ 
    @Element(name = "carrier", required = true) 
    private Carrier carrier; 

    // ... 
} 

Carrier 클래스 실제 보유 :

@Root(name = "carrier") 
public class Carrier 
{ 
    @Text 
    private int value; 
    @Attribute(name = "close") 
    private boolean close; 

    // ... 
} 

이 정확한 XML을 생성한다.

Carrier을 공개하지 않으려면 비공개로 설정하거나 내부 클래스 인 Item으로 숨길 수 있습니다.