2016-03-03 4 views
0

Как бы вы дизайн JAXB элемент вокруг этого XML для JAX-RSпреобразовать комплекс XML в JAXB

<activity> 
    <code>Purchase</code> 
    <description> Purchase and sell </description> 
    <deals> 
     <deal key="name"> buy</deal> 
     <deal key="isactive"> True </deal> 
     <deal key="isgood"> False </deal> 
     <deal key="costcode"> FINCOM </deal> 
     <deal key="opportunity"> Finance</deal> 
    <deals> 
</activity> 

ответ

0
@XmlRootElement(name = "activity") 
    @XmlAccessorType(XmlAccessType.FIELD) 
    public class Activity { 

    @XmlElement 
    private String code; 


    @XmlElement 
    private String description ; 


    @XmlElementWrapper 
    @XmlElement(name="detail") 
    public List<Detail> details = new ArrayList<Detail>(); 

    public Activity() {} 

и имеют Detail класс следующим образом

@XmlRootElement(name = "detail") 
    @XmlAccessorType(XmlAccessType.FIELD) 
    public class Detail { 


    @XmlAttribute 
    private String key; 

    @XmlValue 
    private String value; 
+0

Ключевым моментом является то, чтобы иметь некоторый тип контейнера, как в списке, чтобы прикрепить детали в объект деятельности .. – integratedsolns

0

из файла XML, вы можете определить схему XML (см следующий пример), и пусть генерировать Java связывание с ним.

<?xml version="1.0" encoding="UTF-8"?> 
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
<xsd:element name="activity"> 
    <xsd:complexType> 
     <xsd:sequence> 
      <xsd:element name="code" type="xsd:string" /> 
      <xsd:element name="description" type="xsd:string" /> 
      <xsd:element name="deals"> 
       <xsd:complexType> 
        <xsd:sequence maxOccurs="unbounded"> 
         <xsd:element name="deal"> 
          <xsd:complexType> 
           <xsd:simpleContent> 
            <xsd:extension base="xsd:string"> 
             <xsd:attribute name="key" type="xsd:string" /> 
            </xsd:extension> 
           </xsd:simpleContent> 
          </xsd:complexType> 
         </xsd:element> 
        </xsd:sequence> 
       </xsd:complexType> 
      </xsd:element> 
     </xsd:sequence> 
    </xsd:complexType> 
</xsd:element> 

Смежные вопросы