我希望在XSD中创建一个类型,它只允许具有2或3位数的正数,即10到999但不包含前导零。 e.g:
编号:15,99,215,789全部有效
但
编号:0010,00258无效
有人可以帮我这个类型吗?
答案 0 :(得分:2)
即使对数字也可以使用pattern
限制来表示第一个数字不能为零。例如:
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/so20022660"
xmlns:tns="http://www.example.org/so20022660"
elementFormDefault="qualified">
<simpleType name="so20022660">
<restriction base="int">
<minInclusive value="10"/>
<maxInclusive value="999"/>
<pattern value="[1-9][0-9]*"/>
</restriction>
</simpleType>
<element name="root" type="tns:so20022660"/>
</schema>
有效的XML:
<?xml version="1.0" encoding="UTF-8"?>
<tns:root xmlns:tns="http://www.example.org/so20022660"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.example.org/so20022660 so20022660.xsd "
>55</tns:root>
值055
无效。 (使用Eclipse IDE检查它。)