2016-09-02 3 views
0

Я пытаюсь развязать данные XML. Если структура XML похожа на структуру, приведенную ниже, то как сделать класс для печати как значений атрибута, так и элемента. Я хочу отменить его и подумать, что Автомобиль - это один класс, а аксессуар - еще один класс, а аксессуар - как атрибут класса Vehicle. Я хочу, чтобы структура класса, чтобы объект, который я получаю после unmarshalling, будет использоваться для получения значений «Wind Screen» и «My wind screen broken».JAXB XML to Object

<Vehicle> 
     <Accessory type="Wind Screen">My wind screen is broken</Accessory> 
</Vehicle> 

ответ

0

В соответствии с вашим XML, Accessory не может быть attribute но element к Vehicle.

С классом ниже вы можете размонтировать объект Vehicle и получить значения от Accessory. Или вы можете переопределить метод toString()Vehicle class для печати значений атрибута аксессуара type и content.

Vehicle.class

@XmlAccessorType(XmlAccessType.FIELD) 
@XmlType(name = "Vehicle", propOrder = { 
}) 
public class Vehicle 
{ 

    @XmlElement(name = "Accessory") 
    protected Accessory accessory; 

// other elements 

} 

Accessory.class

@XmlAccessorType(XmlAccessType.FIELD) 
@XmlType(name = "Accessory", propOrder = { 
    "value" 
}) 
public class Accessory 
{ 

    @XmlValue 
    protected String value; 

    @XmlAttribute(name = "type") 
    @XmlSchemaType(name = "anySimpleType") 
    protected String type; 

// getters and setters ommitted for brevity. 

} 
+0

Спасибо за помощь. – Uttakarsh