字符串值的XSD限制

字符串值的XSD限制,xsd,restriction,Xsd,Restriction,我需要为一个字符串列写一个限制,这样它将包括20个字母和以下3个:(,-) 如何做到这一点 谢谢。请尝试以下方法: <xs:element name="someString"> <xs:simpleType> <xs:restriction base="xsd:string"> <xs:pattern value="([\w]*[\.\,\-]?[\w]*[\.\,\-]?[\w]

我需要为一个字符串列写一个限制,这样它将包括20个字母和以下3个:(,-)

如何做到这一点

谢谢。

请尝试以下方法:

<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_389;]
    • \。与角色匹配。按字面意思
    • \,与角色完全匹配
    • \-按字面意思匹配字符
所以基本上这将匹配所有这些

  • aabbbcaabbbcaabbbcac-
  • ,-aabbbcaabbbcaabbbcac
  • dd,aabbbc,aabbbc,aabbbc

  • length value=“23”
    强制总字符串为23个字符,正则表达式强制总长度的三个字符介于逗号、连字符和句点之间。

    您能解释一下吗?什么是\w以及它为什么要工作?谢谢你。@YevgeniGrinberg我补充了解释。您也可以在此处尝试此操作。此操作不会将字母数限制为20,将.,-限制为3。@YevgeniGrinberg我已更新了答案。请核实。