XSD模式限制数量

时间:2013-11-16 19:18:42

标签: xsd

我希望在XSD中创建一个类型,它只允许具有2或3位数的正数,即10到999但不包含前导零。 e.g:

编号:15,99,215,789全部有效

编号:0010,00258无效

有人可以帮我这个类型吗?

1 个答案:

答案 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检查它。)