的文档required 表示:
的文档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模式:
<xs:complexType name="wsData">
<xs:sequence>
<xs:element name="month" type="xs:string"/>
<xs:element minOccurs="0" name="userLogin" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="xmlMonthType">
<xs:restriction base="xs:int">
<xs:enumeration value="1"/>
<xs:enumeration value="2"/>
<xs:enumeration value="3"/>
<!-- ... months 4 ~9 ... -->
<xs:enumeration value="10"/>
<xs:enumeration value="11"/>
<xs:enumeration value="12"/>
</xs:restriction>
</xs:simpleType>
事实:
问题:
我没想到这些问题,我错过了什么吗?
如果该行为是正确的,那么 required , nillable 和 xs:restriction 的目的是什么?
最佳答案
Nillable允许空值。例如,如果您有一个Integer或Date,则为Nillable,则XML标签可以为空。如果不是必需的,但不是必需的,则XML元素要么必须存在有效内容,要么根本不存在。空标签无效。