- Существет некая группа ЯПов, куда входит например C#, которая использует класс DataContractSerialize для генерации XML-схем. Некоторые конструкции из этих схем, в свою очередь, могут приводить к появлению полей с типом JAXBElement
в сгенерированном java коде. - В XML-схеме содержатся такие элементы, как замещающие группы(substitution groups) или элементы, являющиеся обнуляемыми (nillable="true") и необязательными (minOccurs="0"), одновременно. Они то потом и имеют тип JAXBElement
.
<!-- XML schema fragment
<xs:element name="person" type="Person"
<xs:complexType name="Person">
<xs:sequence>
<xs:element name="name" type="xs:string"
nillable="
true"
minOccurs="0"/>
</xs:sequence>
</xs:complexType>
// Binding
public class Person {
JAXBElement<String> getName() {...};
public void setName(JAXBElement<String> value) {...}
}
<jaxb:bindings
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" jaxb:version="2.0"
xmlns:xjc= "http://java.sun.com/xml/ns/jaxb/xjc" jaxb:extensionBindingPrefixes="xjc">
<jaxb:globalBindings>
<xjc:generateElementProperty>false</xjc:generateElementProperty>
</jaxb:globalBindings>
</jaxb:bindings>
// set JAXB customization generateElementProperty="
false"
/>
public class Person {
String getName() {...}
public void setName(String value) {...}
}
Комментариев нет:
Отправить комментарий