如何在 XSD 中编写正则表达式
How to write regex in XSD
我正在写 XSD 模式限制并且我有以下有效的字符串
- ^用户
- ^user.name
- {$用户名}
- {$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 字母
}
- 一个 }
字符。
我正在写 XSD 模式限制并且我有以下有效的字符串
- ^用户
- ^user.name
- {$用户名}
- {$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 字母}
- 一个}
字符。