是否可以定义一个XSD类型,该类型可以包含任何有效的十进制数或一组预定义值中的一个。
例如,如果我想要一个可以包含数字或其中一个字符串的属性:“max”,“min”
本文件有效:
<elem attr="123.456"/>
<elem attr="max"/>
<elem attr="-768.456"/>
虽然本文档中的任何元素都不是有效的:
<elem attr="hello"/>
<elem attr="0x2D"/>
对于min和max,我特意计划使用float.MaxValue
和float.MinValue
(C#),但似乎XSL存在指数问题 - 即它根本不识别它们。
可能还有其他方法但是出于这个问题的目的,我想要一个通用的答案,其中枚举可以包含任意数量的预定义字符串。
答案 0 :(得分:3)
XSD允许您使用 xs:union 元素从其他 simpleType 的并集中定义 simpleType
<xs:simpleType name="unionType">
<xs:union memberTypes="xs:decimal myEnumeration">
</xs:union>
</xs:simpleType>