不可打印的字符xsd

时间:2015-02-06 15:11:32

标签: java regex xsd

我想为xsd架构编写一个正则表达式。

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

  • 信件(小写,大写)
  • 数字
  • Latin-1 Leters(但乘法符号\ u00D7和师号\ u00F7)

我的架构看起来像这样:

<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 Parser验证XML,则会出现以下异常:

InvalidRegex:....Is not avalid regular expresion

1 个答案:

答案 0 :(得分:0)

现在明白了:

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

详细信息:

小写或大写字母或数字

[a-zA-Z0-9] 

或 除了\ u00D7和\ u00F7

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

并且整个事情高达20次


或使用xml-exclude-syntax:

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