XSDs - 如何有一个可能的负整数也可以是空白
XSDs - how to have a possibly negative integer that can also be blank
我正在尝试在 XSD 中编写一些代码以允许单个整数字符可以是 -1 到 9 或空白。
我试过使用
<xs:simpleType name="RdrInteger1Include-1AllowBlank">
<xs:restriction base="xs:integer">
<xs:minInclusive value="-1"/>
<xs:maxInclusive value="9"/>
<xs:whiteSpace value="collapse"/>
<xs:pattern value="[0-9]{0,1}"/>
</xs:restriction>
</xs:simpleType>
虽然这只是 returns 如果使用空格会出错。谁能帮忙,我是这方面的新手?
谢谢
创建一个有两个成员的联合类型。一种是您在上面定义的类型;另一个是 xsd:string 的限制,它只接受空字符串、单个空格或一系列空白字符(无论您对空白的理解是什么)。类型的用户应该指向并集,而不是整数的限制。
由于这两个成员类型的词法空间是不相交的,因此实际上在定义联合时将它们放在哪个顺序并不重要。
Michael Sperberg-McQueen 为您提供了一个可能的答案。另一种可能性是定义一个数据类型,该数据类型是(您的受限)整数列表,其中列表的长度被限制为 0 到 1(含)。两种解决方案都将验证相同的输入文档,但它们会以不同方式为数据分配类型,如果您使用数据绑定技术 and/or 模式感知 XSLT/XQuery 处理数据,这可能会影响可用性。例如,如果 @x 是这种类型的属性,那么在模式感知 XPath 中,如果您使用我的(列表)解决方案,测试 (@x=-1) 将按预期工作,但会引发 Michael 的类型错误 ( union)属性值为空的情况下的解决方法
我正在尝试在 XSD 中编写一些代码以允许单个整数字符可以是 -1 到 9 或空白。
我试过使用
<xs:simpleType name="RdrInteger1Include-1AllowBlank">
<xs:restriction base="xs:integer">
<xs:minInclusive value="-1"/>
<xs:maxInclusive value="9"/>
<xs:whiteSpace value="collapse"/>
<xs:pattern value="[0-9]{0,1}"/>
</xs:restriction>
</xs:simpleType>
虽然这只是 returns 如果使用空格会出错。谁能帮忙,我是这方面的新手?
谢谢
创建一个有两个成员的联合类型。一种是您在上面定义的类型;另一个是 xsd:string 的限制,它只接受空字符串、单个空格或一系列空白字符(无论您对空白的理解是什么)。类型的用户应该指向并集,而不是整数的限制。
由于这两个成员类型的词法空间是不相交的,因此实际上在定义联合时将它们放在哪个顺序并不重要。
Michael Sperberg-McQueen 为您提供了一个可能的答案。另一种可能性是定义一个数据类型,该数据类型是(您的受限)整数列表,其中列表的长度被限制为 0 到 1(含)。两种解决方案都将验证相同的输入文档,但它们会以不同方式为数据分配类型,如果您使用数据绑定技术 and/or 模式感知 XSLT/XQuery 处理数据,这可能会影响可用性。例如,如果 @x 是这种类型的属性,那么在模式感知 XPath 中,如果您使用我的(列表)解决方案,测试 (@x=-1) 将按预期工作,但会引发 Michael 的类型错误 ( union)属性值为空的情况下的解决方法