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