如何在XSD中拥有元素的多个范围以及默认值?

时间:2016-06-22 21:27:35

标签: xml xsd

我正在写一个XSD。如果我有这样的元素,我想将Value的默认值设置为整数。看起来如果我有一个数字范围的元素,我可以这样做,但如果我有多个范围,如下所示,我不能添加默认值xs:union。有没有办法为已定义多个范围的元素添加默认值?我认为<xs:element name="Value" default="20"> <xs:annotation> <xs:documentation xml:lang="en"> Some Random Annotation </xs:documentation> </xs:annotation> <xs:simpleType> <xs:union> <xs:simpleType> <xs:restriction base='xs:integer'> <xs:minInclusive value="20"/> <xs:maxInclusive value="30"/> </xs:restriction> </xs:simpleType> <xs:simpleType> <xs:restriction base='xs:integer'> <xs:minInclusive value="40"/> <xs:maxInclusive value="54"/> </xs:restriction> </xs:simpleType> </xs:union> </xs:simpleType> </xs:element> 类型不允许这样做,但我确定如何获取默认值和一组范围。

{{1}}

2 个答案:

答案 0 :(得分:1)

您可以拥有union的默认值,只要它与union定义的类型一致即可。在这种情况下,默认值20满足第一个简单类型的约束,因此很好。如果默认值为200,则不允许使用。

答案 1 :(得分:1)

默认值是元素声明的一部分,不是类型定义的一部分;只要您提供的值作为默认值在该类型的值空间内,它就可以接受。 (也就是说,如果您收到错误消息,则不是原因。)