@XmlAttribute在xml响应中显示为@XmlElement

时间:2018-06-11 13:21:19

标签: java intellij-idea xsd jaxb

我有一个接收http rest请求的应用程序,我将用xml响应。

所以我声明了一个xsd:

“根元素”

var allow = true;
$('.my-button').on('click', function(){
    var newDom = '<p class="new-dom">Hello there I am new content</p>';
    if( allow ) {
        $(this).after($(newDom));
        allow = false;
    } else {
       $('.new-dom').remove();
       allow = true;
    }
 });

我使用jaxb生成我的java类(并且id显示为Xmlattribute)

但是,当我用SoapUI测试我的应用程序时,响应是:

<xs:element name="root">
   <xs:complexType>
      <xs:sequence>
         <xs:element name="test" maxOccurs="unbounded" minOccurs="0">
            <xs:complexType>
               <xs:attribute name="test2" type="xs:duration"/>
            </xs:complexType>
         </xs:element>
         ...
      </xs:sequence>
      <xs:attribute name="id" type="xs:string"/>
   </xs:complexType>
</xs:element>

为什么我的属性显示为元素。

1 个答案:

答案 0 :(得分:0)

我生成的课程“lexicore”:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
    "test"
})
@XmlRootElement(name = "root")
public class Root{

    @XmlElement(namespace = "http://.../.../xml")
    protected Test test;
    @XmlAttribute(name = "id")
    protected String id;

(getter/setter)
...
}