字符串值的XSD限制

时间:2014-02-24 10:32:56

标签: xsd restriction

我需要为字符串列编写限制,以便它包含20个字母和以下3个字符:(。, - )。

如何做到这一点?

谢谢。

1 个答案:

答案 0 :(得分:2)

请试试这个:

<xs:element name="someString">
  <xs:simpleType>
    <xs:restriction base="xsd:string">
      <xs:pattern value="([\w]*[\.\,\-]?[\w]*[\.\,\-]?[\w]*[\.\,\-]?[\w]*)"/>
        <xs:length value="23"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

<强>解释

[\w\.\,\-]{0,20}匹配下面列表中的单个字符

  • 量词:

    在0到20次之间,尽可能多次,根据需要回馈[贪心]

    • \ w匹配任何单词字符[a-zA-Z0-9_]
    • \。匹配角色.literally
    • \,匹配字符,字面意思
    • \ - 匹配角色 - 字面意思

所以基本上这将匹配所有这些

  1. aabbbcaabbbcaabbbcac ,, -
  2. ,, - aabbbcaabbbcaabbbcac
  3. DD,aabbbc-aabbbc,aabbbc
  4. length value="23"强制总字符串为23个字符,正则表达式强制总长度的三个字符在逗号,连字符和句点之间。