@XmlAttribute отображается как @XmlElement в ответе xml - PullRequest
0 голосов
/ 11 июня 2018

У меня есть приложение, получающее запрос http rest, и я должен ответить xml.

Итак, я объявил xsd:

"Root Element"

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

Я использую jaxb для генерации своего java-класса (а идентификатор отображается как Xmlattribute)

НО, когда я тестирую свое приложение с SoapUI, ответ:

<root>
   <test/>
   <id>toto</id>      <----------
</root>

Почему появляется мой атрибуткак элемент.

1 Ответ

0 голосов
/ 12 июня 2018

Мой сгенерированный класс "лексикора":

@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)
...
}
...