2017-01-23 23 views
-1

次のXMLをJAXBを使用してJavaオブジェクトに変換します。PojoがJAXBのJavaオブジェクトにxml(タグ値なし)を変換するために必要です

<?xml version="1.0" encoding="UTF-8"?> 
<Colindex> 
    <column name="COLNAMES">+ADDRESS_TYPE</column> 
    <column name="INDNAME">ADDRESS_TYPE_PK</column> 
    <column name="TABNAME">ADDRESS_TYPES</column> 
    <column name="UNIQUERULE">P</column> 
    <column name="MADE_UNIQUE">N</column> 
    <column name="COLCOUNT">1</column> 
    <column name="UNIQUE_COLCOUNT">1</column> 
    <column name="INDEXTYPE">REG</column> 
    <column name="COMPRESSION">N</column> 
</Colindex> 

私は、変換後address_typeの値が変換になっていません

@XmlRootElement(name = "Colindex") 
public class Colindex { 

    private List<Db2Column> column; 

    public List<Db2Column> getColumn() { 
     return column; 
    } 

    @XmlElement(name = "column") 
    public void setColumn(List<Db2Column> column) { 
     this.column = column; 
    } 
} 

そして

public class Db2Column { 

    private String name; 

    private String value; 

    public String getName() { 
     return name; 
    } 

    @XmlAttribute 
    public void setName(String name) { 
     this.name = name; 
    } 

    public String getValue() { 
     return value; 
    } 

    public void setValue(String value) { 
     this.value = value; 
    } 
} 

としてColindex POJOを作成しました。これを変換する方法(タグがない場合)

答えて

0

valueフィールドをJAXBエレメントcolumnの値でマップするには、@XmlValueを以下のように指定する必要があります。

@XmlValue 
protected String value; 

コンプリートクラス

@XmlAccessorType(XmlAccessType.FIELD) 
public class Db2Column { 
    @XmlAttribute(name = "name") 
    private String name; 
    @XmlValue 
    private String value; 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getValue() { 
     return value; 
    } 

    public void setValue(String value) { 
     this.value = value; 
    } 
} 
関連する問題