2014-12-30 4 views
0

Я использую веб-сервисы мыла CXF. Я также JAXB для привязки. Я должен вернуться ниже ответа XML на клиентов.Jaxb to xml binding?

   <orderElement type="service"> 
         <elementAttribute name="serviceName"> 
           <attributeValue>Collector</attributeValue> 
         </elementAttribute> 
       </orderElement> 

Здесь типа = "сервис" и имя = "SERVICENAME" никогда не изменится. только атрибутValue изменится. Чтобы получить ответ XML, Каковы свойства/поля, которые должен иметь мой класс JAXB,?

ответ

0
@XmlRootElement 
public class OrderType { 
    private String type; 
    private ElementAttribute elementAttribute; 
    @XmlAttribute 
    public String getType(){ 
    return type; 
    } 
    public void setType(String value){ 
    type = value; 
    } 
    @XmlElement 
    public ElementAttribute getElementAttribute(){ 
    return elementAttribute; 
    } 
    public void setElementAttribute(ElementAttribute value){ 
    elementAttribute = value; 
    } 
} 

public class ElementAttribute { 
    private String name; 
    private String attributeValue; 
    @XmlAttribute 
    public String getName(){ 
    return name; 
    } 
    public void setName(String value){ 
    name = value; 
    } 
    @XmlElement 
    public String getAttributeValue(){ 
    return attributeValue; 
    } 
    public void setAttributeValue(String value){ 
    attributeValue = value; 
    } 
} 

А для создания и маршалом:

void marshal() throws Exception { 
    OrderType order = new OrderType(); 
    order.setType("service"); 
    ElementAttribute elattr = new ElementAttribute(); 
    order.setElementAttribute(elattr); 
    elattr.setName("serviceName"); 
    elattr.setAttributeValue("Collector"); 
    JAXBContext jc = JAXBContext.newInstance(OrderType.class); 
    Marshaller m = jc.createMarshaller(); 
    StringWriter sw = new StringWriter(); 
    m.marshal(order, sw); 
    System.out.println(sw.toString()); 
}