如何限制属性不允许特定的值?
例如,我在一个元素的Id
属性上有一个<xs:key/>
,但是有些人已经把一个魔术数字放进去了,所以现在我不能允许3
,但1
、2
和5
是完全可以接受的。
您尝试过查看限制标签链接文本吗?下面的代码将为您提供一个名为Id的标记,它仅允许不以3开头的整数。
<xs:key name="Id">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:pattern value="[^3]\d*"/>
</xs:restriction>
</xs:simpleType>
</xs:key>
我认为更好的模式是[^3]|..+
,它接受至少有2个数字的所有数字。然而,它仍然允许03
,这是3的另一种表示。为了禁止这种情况,您可以尝试类似于[^3]|[^0].+
的内容,该内容禁止所有具有前导零的表示。
37
、333
和31415
成为有效标识符呢?如果是这样的话,这样做就行不通了,因为我只能指定该标识符已被使用,但无法控制其他任何已使用的标识符。 - Lance