我正在写一个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}}
答案 0 :(得分:1)
您可以拥有union的默认值,只要它与union定义的类型一致即可。在这种情况下,默认值20满足第一个简单类型的约束,因此很好。如果默认值为200,则不允许使用。
答案 1 :(得分:1)
默认值是元素声明的一部分,不是类型定义的一部分;只要您提供的值作为默认值在该类型的值空间内,它就可以接受。 (也就是说,如果您收到错误消息,则不是原因。)