我必须像往常一样构建用于XML结构验证目的的XSD文件。
生成XSD(使用XMLSpy)之后,我发现文件的一部分给了我麻烦。我有一个这样的枚举:
<xs:enumeration value="1"/>
<xs:enumeration value="1011"/>
<xs:enumeration value="1032"/>
等等。问题是,此枚举中的任何给定整数都必须被视为有效,并且我不能将枚举标记从1写入,比方说65635。
我也不知道这个枚举元素有多少是必要的,因为XML文件中这些枚举标记的数量并不固定!
如何告诉XSD任何整数值都可以,并且此枚举的XML文件没有最小匹配或最大匹配?
提前致谢(对不起我的英语!)
答案 0 :(得分:6)
您的问题没有显示足够的信息来说明准确无误的答案,但这可能会解决您的问题。
你可能有这样的代码:
<xs:element name="foobar" type="enumType"/>
<xs:simpleType name="enumType">
<xs:restriction base="xs:integer">
<xs:enumeration value="1"/>
<xs:enumeration value="1011"/>
<xs:enumeration value="1032"/>
</xs:restriction>
</xs:simpleType>
这个架构定义了一个元素<foobar>
和一个简单类型enumType
,它是<foobar>
元素的内容类型。所以,你问:
我怎样才能告诉XSD 整数值是可以的,并且有 没有最小或最大匹配 此枚举的XML文件?
您无需单独枚举<foobar>
的所有有效值,就像您必须使用DTD一样。相反,您可以在type
属性中使用predefined types XML Schema。
这是一个示例代码,用于定义元素<foobar>
并允许它包含任何整数。
<xs:element name="foobar" type="xs:integer"/>
如果我误解了您的问题,请发表评论并更密切地定义您的问题。同时揭示更多您的架构也会有所帮助。
答案 1 :(得分:4)
为什么必须使用枚举而不是简单的整数类型?