【发布时间】:2018-01-29 10:44:27
【问题描述】:
<xs:simpleType name="abc">
<xs:restriction base="xs:decimal">
</xs:restriction>
</xs:simpleType>
请问标签xs:decimal允许空值还是空值 如果不是我使用这个 xsd 来允许 null 或空值
【问题讨论】:
标签: xml xsd xsd-validation xsd.exe
<xs:simpleType name="abc">
<xs:restriction base="xs:decimal">
</xs:restriction>
</xs:simpleType>
请问标签xs:decimal允许空值还是空值 如果不是我使用这个 xsd 来允许 null 或空值
【问题讨论】:
标签: xml xsd xsd-validation xsd.exe
常用的方法有两种:
声明一个联合类型,其中联合的成员是 (a) xs:decimal,和 (b) 从 xs:string 派生的类型,长度方面等于 0。
使用 itemType = xs:decimal 和 maxLength = 1 声明列表类型。
我个人更喜欢第二种方法,但第一种似乎更常见。它们在验证方面是等价的,但如果您使用数据绑定技术或模式感知 XSLT/XQuery,它们会产生不同的效果。
两者的例子:
<xs:simpleType name="optional-decimal-1">
<xs:union memberTypes="xs:decimal">
<xs:simpleType base="xs:string">
<xs:length value="0"/>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<xs:simpleType name="optional-decimal-2">
<xs:list itemType="xs:decimal">
<xs:maxLength value="1"/>
</xs:list>
</xs:simpleType>
【讨论】: