在XSD中定义逗号分隔值

时间:2016-04-13 02:10:54

标签: xml xsd xsd-validation xml-validation

我试图制定一个限制,要求用逗号分隔的两个正整数值。我查看了其他帖子,但似乎我想要做的比其他问题更简单。这就是我到目前为止所做的:

<xs:element name="cell" maxOccurs="unbounded">
       <xs:simpleType>
               <xs:restriction base="xs:positiveInteger">
                      <xs:pattern value="[1-1000],[1-1000]"/>
               </xs:restriction>
       </xs:simpleType>
</xs:element>

我希望结果值看起来像这样(示例):<cell>4,15</cell>

我有一个类似的第二个元素<dimensions>,但是我想要用字母“x”分隔的整数而不是逗号。因此,此元素的值的示例为<dimensions>20x20</dimensions>

首先,我甚至使用正确的基础数据类型?我也使用xs:string尝试了很多组合而没有运气。其次,我如何表达模式?

1 个答案:

答案 0 :(得分:1)

此XSD将在cell中允许一对以逗号分隔的非负整数:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="cell">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:pattern value="\d+,\d+"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
</xs:schema>

类似的xs:pattern当然可以用于dimensions

        <xs:pattern value="\d+x\d+"/>