В документации для требуется указано:
Если
требуется ()
равноtrue
, тогда свойство Javabean сопоставляется с элементом схемы XML объявление сminOccurs = "1"
.maxOccurs
равно«1»
для однозначного свойство и«неограниченный»
для многозначного свойства.Если
required ()
равноfalse
, то свойство Javabean отображается в XML. Объявление элемента схемы сminOccurs = "0"
.maxOccurs
равно"1"
для однозначное свойство и«неограниченное»
для многозначного свойства.
В документации для nillable говорится:
Если
nillable ()
равноtrue
, то свойство JavaBean отображается в XML. Объявление элемента схемыnillable
.
Код для xs:complexType
:
public class WSData {
//...
@XmlElement(required = true, nillable = false)
public void setMonth(XmlMonthType month) {
this.month = month;
}
public void setUserLogin(String userLogin) {
this.userLogin = userLogin;
}
}
Код для xs: simpleType
:
@XmlType
@XmlEnum(Integer.class)
public enum XmlMonthType {
@XmlEnumValue("1")
JANUARY,
@XmlEnumValue("2")
FEBRUARY,
@XmlEnumValue("3")
MARCH,
/* ... months 4 ~9 ... */
@XmlEnumValue("10")
OCTOBER,
@XmlEnumValue("11")
NOVEMBER,
@XmlEnumValue("12")
DECEMBER;
}
Созданная схема XML:
Факты:
Проблемы:
Я не ожидал этих проблем, я что-то упустил?
Если такое поведение правильное, какова цель required , nillable и xs: ограничение ?