2012-05-09 37 views
0

我已經存在類,我想檢查是否有任何方法將以下XML映射到現有類中。解析XML中的問題

現有的XML(JDOM元素)

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<Details> 
<Uniqueno>11111</Uniqueno> 
<ROWSET name="Persons"> 
<ROW num="1"> 
<Name>60821894</Name> 
<Age>938338789</Age> 
</ROW> 
<ROW num="2"> 
<Name>60821894</Name> 
<Age>938338789</Age> 
</ROW> 
</ROWSET> 
</Details> 

現有類

@XmlRootElement(name = "Details") 
    @XmlAccessorType(XmlAccessType.FIELD) 
    class Details{ 
      @XmlElement(name="Uniqueno") 
     String Uniqueno; 
     @XmlElement(name="ROWSET") 
     private Persons[] persons; 

     //setters & getters 
    } 

    @XmlRootElement(name = "Persons") 
    @XmlAccessorType(XmlAccessType.FIELD) 
    class Persons{ 
     @XmlElement(name="name") 
     String name; 
     @XmlElement(name="age") 
     String age; 

     //setters & getters 
    } 

與我堅持的問題是:我有一個XML格式的ROW NUM這是不能夠被映射,有沒有辦法映射相應的類而不改變XML的結構?

+0

您是否嘗試在Persons類中創建一個num字段並將其聲明爲@XmlAttribute? – Robert

+0

您能否讓它更清楚?謝謝 –

+0

請看這個例子:http://fusesource.com/docs/framework/2.2/jaxws/JAXWSComplexTypeMappingAttr.html#JAXWSComplexTypeMappingAttrSchemaEx050 – Robert

回答

1
This Code Would work 

@XmlRootElement(name = "Details") 
@XmlAccessorType(XmlAccessType.FIELD) 
class Details 
{ 
    @XmlElement(name = "Uniqueno") 
    String Uniqueno; 


    @XmlElement(name = "ROWSET") 
    private Persons[] persons; 

    // setters & getters 
} 

@XmlRootElement(name = "ROWSET") 
@XmlAccessorType(XmlAccessType.FIELD) 
class Persons 
{ 
    @XmlAttribute 
    String name; 

    @XmlElement(name = "ROW") 
    private Row[] rows; 


    // setters & getters 
} 

@XmlRootElement(name = "ROW") 
@XmlAccessorType(XmlAccessType.FIELD) 
class Row 
{ 

    @XmlAttribute 
    String num; 

    @XmlElement 
    String Name; 

    @XmlElement 
    String Age; 

    // setters & getters 
}