不可打印的字符 xsd

Non-Printable Characters xsd

我想为 xsd 模式编写正则表达式。

该字符串可以支持以下类型的 1-20 个字符:

我的架构如下所示:

<xs:restriction base="xs:string">
  <xs:pattern value="^[a-zA-Z0-9\uC0-\uFF-[\u00D7\u00F7]]{1,20}$"/>
</xs:restriction>

该模式在 .Net (C#) 和 Visual studio 中完美运行。 现在,如果我把它放在 Eclipse 中,我会收到以下错误:

... Is not avalid regular expresion

如果我尝试使用 java SAX 解析器验证 XML,我会得到以下异常:

InvalidRegex:....Is not avalid regular expresion

现在知道了:

^([a-zA-Z0-9]|[&#x00C0;-&#x00D6;&#x00D8;-&#x00F6;&#x00F8;-&#x00FF;]){1,20}$

详情:

小写或大写字母或数字

[a-zA-Z0-9] 

或 除了 \u00D7 和 \u00F7

之外的 latin-1 字母
[&#x00C0;-&#x00D6;&#x00D8;-&#x00F6;&#x00F8;-&#x00FF;]

整个事情最多 20 次


或使用 xml-exclude-syntax:

^([a-zA-Z0-9]|[&#x00C0;-&#x00FF;-[&#x00D7;&#x00F7;]]){1,20}$