如何为元素设置多个范围以及 XSD 中的默认值?
How to have multiple ranges for an element as well as a default value in XSD?
我正在写一篇XSD。如果我有这样的元素,我想将 Value
的默认值设置为整数。看起来如果我有一个元素的数字范围,我可以这样做,但如果我有多个范围,如下所示,我无法将默认值添加到 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>
union可以有默认值,只要和union定义的类型一致即可。在这种情况下,默认值 20 满足第一个简单类型的约束,因此没有问题。如果默认值为 200,则不允许。
默认值是元素声明的一部分,而不是类型定义的一部分;只要您作为默认值提供的值在该类型的值 space 范围内,就可以接受。 (也就是说,如果您收到错误消息,这不是原因。)
我正在写一篇XSD。如果我有这样的元素,我想将 Value
的默认值设置为整数。看起来如果我有一个元素的数字范围,我可以这样做,但如果我有多个范围,如下所示,我无法将默认值添加到 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>
union可以有默认值,只要和union定义的类型一致即可。在这种情况下,默认值 20 满足第一个简单类型的约束,因此没有问题。如果默认值为 200,则不允许。
默认值是元素声明的一部分,而不是类型定义的一部分;只要您作为默认值提供的值在该类型的值 space 范围内,就可以接受。 (也就是说,如果您收到错误消息,这不是原因。)