1
Почему это схема:Почему JAXB генерирует одно поле List <JAXBElement <String>> из двух полей схемы?
<xsd:complexType name="ErrType">
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:element name="errorCode" type="xsd:string"/>
<xsd:element name="errorDescription" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
Сформировать к этому Java-код:
class ErrType {
@XmlElementRefs({
@XmlElementRef(name = "errorCode", namespace = "http://somewhere/blah.xsd", type = JAXBElement.class),
@XmlElementRef(name = "errorDescription", namespace = "http://somewhere/blah.xsd", type = JAXBElement.class)
})
protected List<JAXBElement<String>> errorCodeAndErrorDescription;
// ...
}
я ожидал бы что-то подобное:
class ErrType extends ArrayList<ErrTypeEntry> {}
class ErrTypeEntry {
protected String errorCode
protected String errorDescription;
}
Хорошо, так что я думаю, что ответ : потому что это так. Сочетание двух полей в одном кажется очень нежелательным. Он ненужно удалял важную структуру.
В чем проблема с сгенерированным кодом? Что бы вы ожидали? – Attila
Возможно, потому, что вы указываете minOccurs = "0" maxOccurs = "unbounded" на элемент последовательности. попробуйте указать их в элементе. –