Java JAXB:根据值动态创建XML属性

Java JAXB:根据值动态创建XML属性,java,xml,jaxb,unmarshalling,Java,Xml,Jaxb,Unmarshalling,我对生成XML文档有一个奇怪的要求。我需要根据其他标记的值添加xml属性 在下面的xml中,对于行标记,我需要基于标记中的值显示Column1值。就像二维矩阵 例:如果我的中有值 然后在我的标记中,我需要添加如下属性:Column1(列标记属性名称)=“table1”(表标记属性名称) 我正在为这个关联生成值,但是如何创建这样的动态标记xmlAttribute 我需要以这种方式生成XML <Tree name="" desc="" title="" > <Column

我对生成XML文档有一个奇怪的要求。我需要根据其他标记的值添加xml属性

在下面的xml中,对于行标记,我需要基于
标记中的值显示Column1值。就像二维矩阵

例:如果我的
中有值

然后在我的
标记中,我需要添加如下属性:
Column1
(列标记属性名称)
=“table1”
(表标记属性名称)

我正在为这个关联生成值,但是如何创建这样的动态标记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>

这是使用具有任意名称的属性编写编组类的方法

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" );