单个类型的十进制或枚举

时间:2014-11-17 17:09:01

标签: xsd

是否可以定义一个XSD类型,该类型可以包含任何有效的十进制数或一组预定义值中的一个。

例如,如果我想要一个可以包含数字或其中一个字符串的属性:“max”,“min”

本文件有效:

<elem attr="123.456"/>
<elem attr="max"/>
<elem attr="-768.456"/>

虽然本文档中的任何元素都不是有效的:

<elem attr="hello"/>
<elem attr="0x2D"/>

对于min和max,我特意计划使用float.MaxValuefloat.MinValue(C#),但似乎XSL存在指数问题 - 即它根本不识别它们。

可能还有其他方法但是出于这个问题的目的,我想要一个通用的答案,其中枚举可以包含任意数量的预定义字符串。

1 个答案:

答案 0 :(得分:3)

XSD允许您使用 xs:union 元素从其他 simpleType 的并集中定义 simpleType

<xs:simpleType name="unionType">
    <xs:union memberTypes="xs:decimal myEnumeration">
    </xs:union>
</xs:simpleType>