我正在尝试设置一个schematron测试来验证XML中的特殊字符...
更具体地说,我想在出现版权符号(Unicode U + 00A9)时发出警告。
对于规则使用以下任何表示法时,似乎无法解析schematron xml文件...
<iso:rule context="myelement>
<iso:report test="matches(., '\u00A9')">{ES1037} Copyright Symbol Detected</iso:report>
</iso:rule>
<iso:rule context="myelement>
<iso:report test="matches(., '\u{00A9}')">{ES1037} Copyright Symbol Detected</iso:report>
</iso:rule>
<iso:rule context="myelement>
<iso:report test="matches(., '\u{A9}')">{ES1037} Copyright Symbol Detected</iso:report>
</iso:rule>
<iso:rule context="myelement>
<iso:report test="matches(., '\x{00A9}')">{ES1037} Copyright Symbol Detected</iso:report>
</iso:rule>
那里的任何架构师都知道如何将unicode字符嵌入到正则表达式中吗?
提前致谢...
答案 0 :(得分:1)
您需要将代码编写为字符实体,就像它用于XML Schema标准一样:
<?xml version="1.0" encoding="UTF-8"?>
<iso:schema xmlns:iso="http://purl.oclc.org/dsdl/schematron">
<iso:pattern id="unicode in regex">
<iso:rule context="a">
<iso:report test="matches(., '©')">
Copyright found
</iso:report>
</iso:rule>
</iso:pattern>
</iso:schema>