字符串值的 XSD 限制

标签 xsd restriction

我需要为字符串列编写一个限制,以便它将包含 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_]
    • \.匹配字符 .literally
    • \,字面上匹配字符
    • \- 匹配字符 - 字面意思

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

  1. aabbbcaabbbcaabbbcac,,-
  2. ,,-aabbbcaabbbcaabbbcac
  3. dd,aabbbc-aabbbc,aabbbc

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

关于字符串值的 XSD 限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21985181/

相关文章:

xml - 如何使用 Firefox 验证 XML?

xml - 想要为 XML 文件编写架构

ios - 限制 UIWebView 停留在 Facebook 页面上

node.js - 如何使用 node.js 保护单页应用程序中的静态文件

mysql - 如何限制 SQLite/MySQL 中的列值

mongodb - spring 4.0 发现多个注解

java - 未检测到给定文档的语法约束(DTD 或 XML 模式)

xml - 强制 XSD Schema 中的属性为主键(并排序)

web-services - 限制对在 Tomcat (6.0.x) 上运行的 Web 应用程序中某些 URL 的访问

spring-mvc - 如何限制或拒绝对特定文件夹或文件的访问?