Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将复杂xml转换为JAXB_Jaxb_Jax Rs - Fatal编程技术网

将复杂xml转换为JAXB

将复杂xml转换为JAXB,jaxb,jax-rs,Jaxb,Jax Rs,如何围绕这个xml为JAX-RS设计一个jaxb元素 <activity> <code>Purchase</code> <description> Purchase and sell </description> <deals> <deal key="name"> buy</deal> <deal key="isactive"> Tr

如何围绕这个xml为JAX-RS设计一个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>

从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>


关键是要有某种类型的容器,如列表,将详细信息附加到活动对象中。。
   @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() {}
   @XmlRootElement(name = "detail")
   @XmlAccessorType(XmlAccessType.FIELD)
   public class Detail {


   @XmlAttribute
   private String key;

   @XmlValue
   private String value;