如何在XSD中编写regex



我正在编写XSD模式限制,并且我有以下字符串是有效的

  • ^用户
  • ^用户名
  • {$username}
  • {$user1.name}

以下是无效的

  • 用户
  • 用户
  • 用户
  • {用户名}
  • {user@name}

规则是字符串以^或{开头。如果我们以{开头,那么下一个字符应该是$,单词应该以}结尾。不允许使用大写字母或@符号。

我已经尝试过这个<xs:pattern value="[^{].*w+}?"/>这个工作的一部分,但不能满足的所有条件

感谢您的帮助。

您可以使用

<xs:attribute name="label">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="^[a-z]+(.[a-z]+)?|{$[a-z]+(.[a-z]+)?}"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>

XSD正则表达式始终是锚定的,因此上面正则表达式中的两个替代项必须与整个字符串匹配。

它们与匹配

  • ^[a-z]+(.[a-z]+)?-^字符,然后是1个+小写ASCII字母,然后是可选的.和1个+大写ASCII字母序列
  • |-或
  • {$-{$子串
  • [a-z]+(.[a-z]+)?-1+小写ASCII字母,然后是可选的.和1+小写ASCII字母序列
  • }-一个}字符

最新更新