2017-01-23 43 views
-1

我想使用JAXB將以下xml轉換爲java對象。將xml(無標記值)轉換爲JAXB的java對象所需的Pojo

<?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> 

我創建了Colindex POJO作爲

@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; 
    } 
} 

的address_type的價值沒有得到轉換的轉換後。如何轉換(當它沒有任何標籤)?

回答

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; 
    } 
}