我正在编写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字母序列}
-一个}
字符