在XSD中可以接受空值或只有一个值的数据类型是什么?
What is the data type that can accept empty or have one value in XSD?
在 XSD 文件中,我有一个具有两位数字 price="90"
的元素,但我希望它也接受空值。 XSD中要指定的数据类型是什么?!
您可以使元素可为空。
<xs:element name="Price"
nillable="true">
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:totalDigits value="2"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
我的首选方法是将元素定义为具有列表类型:
<xs:simpleType name="twoDigitNumber">
<xs:restriction base="xs:int">
<xs:totalDigits value="2"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="listOfTwoDigitNumbers">
<xs:list itemType="twoDigitNumber"/>
</xs:simpleType>
<xs:simpleType name="optionalTwoDigitNumber">
<xs:restriction base="listOfTwoDigitNumbers">
<xs:maxLength value="1"/>
</xs:restriction>
</xs:simpleType>
另一种流行的方法是定义一个联合类型,其成员类型为 (a) 两位整数,以及 (b) maxLength=0 的字符串。这两种方法在验证方面实现了相同的效果,但如果您使用数据绑定技术或模式感知 XPath 表达式,它们的工作方式将有所不同。
我不太喜欢nillable/xsi:nil。当元素很明显是空的时,要求人们用 xsi:nil
标记空实例似乎没有任何用处;它不适用于属性。
在 XSD 文件中,我有一个具有两位数字 price="90"
的元素,但我希望它也接受空值。 XSD中要指定的数据类型是什么?!
您可以使元素可为空。
<xs:element name="Price"
nillable="true">
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:totalDigits value="2"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
我的首选方法是将元素定义为具有列表类型:
<xs:simpleType name="twoDigitNumber">
<xs:restriction base="xs:int">
<xs:totalDigits value="2"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="listOfTwoDigitNumbers">
<xs:list itemType="twoDigitNumber"/>
</xs:simpleType>
<xs:simpleType name="optionalTwoDigitNumber">
<xs:restriction base="listOfTwoDigitNumbers">
<xs:maxLength value="1"/>
</xs:restriction>
</xs:simpleType>
另一种流行的方法是定义一个联合类型,其成员类型为 (a) 两位整数,以及 (b) maxLength=0 的字符串。这两种方法在验证方面实现了相同的效果,但如果您使用数据绑定技术或模式感知 XPath 表达式,它们的工作方式将有所不同。
我不太喜欢nillable/xsi:nil。当元素很明显是空的时,要求人们用 xsi:nil
标记空实例似乎没有任何用处;它不适用于属性。