最小故障、无故障和限制的目的是什么?
所需文件说:
如果是 ,则 Javabean 属性映射到 XML 模式元素声明,并带有 。 表示单值属性和多值属性。
required()
true
minOccurs="1"
maxOccurs
"1"
"unbounded"
如果是 ,则 Javabean 属性映射到 XML Schema 元素声明,并带有 。 表示单值属性和多值属性。
required()
false
minOccurs="0"
maxOccurs
"1"
"unbounded"
如果是 ,则 JavaBean 属性映射到 XML Schema 元素声明。
nillable()
true
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>
事实:
- 最小故障的默认值为 1。因此,月份是必需的(必须存在);
- 月份有限制。因此,month 只能有一个由 12 个定义的枚举之一定义的值;
- nillable 的默认值为 false。因此,月份不能有空值;
- 正确生成 XML 架构。
问题:
- 它正在接受月份的abcense(一定不存在);
- 它接受月份的任何值,例如13(除非无法解析为整数);
- 它接受空值;