2014-12-23 2 views
0

XML 문서 생성에 이상한 요구 사항이 있습니다. 다른 태그의 값을 기반으로 XML 속성을 추가해야합니다.JAXB : 값을 기반으로 XML 속성을 동적으로 작성하십시오.

행 태그의 경우 열 1의 값을 <table> 태그의 값을 기준으로 표시해야합니다. 2 차원 행렬처럼.

예 : Column1 (열 태그 속성 명) = "table1"은 (테이블 태그 속성 명)

: 나는 같은 속성을 추가 할 필요가 내 <table><Row> 태그에 다음 <table name="table1" row="1" column="1" >

같은 가치가있는 경우 이 연관성에 대한 가치를 생성하고 있지만 이처럼 플라이 태그 xmlAttribute를 어떻게 만들 수 있습니까? 나는이 방법으로 내 XML을 생성 할 필요가

는 ..

<Tree name="" desc="" title="" > 
    <Column> 
     <Column name="Column1" desc="" group="" id="1"/> 
    </Column> 
    <Row> 
     <Row id =1 name=" " desc="" ="" Column1 = "table1"> 
      <Row id = 2 name="" desc="" Column1 = "table2" /> 
     </Row> 
     <Row id = 3 name=" " desc="" id="" Column1 = "table3" /> 
    </Rows> 
    <table> 
     <table name="table1" row="1" column="1" > 
     <table name="table2" row="2" column="1" > 
      <table name="table3" row="3" column="1" > 
    </table> 
</Tree> 

답변

0

이 임의의 이름을 가진 속성을 정렬 화에 대한 클래스를 작성하는 방법입니다. 속성을 설정

public class Row { 
    private Map<QName,Object> any; 
    private String name; 
    private String type; 

    @XmlAnyAttribute 
    public Map<QName,Object> getAny(){ 
    if(any == null){ 
     any = new HashMap<QName,Object>(); 
    } 
    return any; 
    } 

    @XmlAttribute 
    public String getName(){ 
    return name; 
    } 
    public void setName(String value){ 
    name = value; 
    } 
    @XmlAttribute 
    public String getType(){ 
    return type; 
    } 
    public void setType(String value){ 
    type = value; 
    } 
} 

당신이 사용중인 네임 스페이스가없는 경우

은 다음과 같이 진행됩니다

Row r1 = new Row(); 
r1.getAny().put(new QName("Column1"), "table1"); 
관련 문제