2012-05-09 3 views
0

У меня уже есть классы, я хочу проверить, есть ли способ сопоставить следующий XML в существующий класс.Проблемы в анализе XML

Существующие XML (JDOM Element)

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

Проблема, с которой я застрял: Я есть ROW Num в XML, который не в состоянии для сопоставления. Может ли какой-либо способ сопоставить соответствующий класс без изменения структуры XML?

+0

Вы пытались создать поле num в классе Person и объявить его как @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 
} 
Смежные вопросы