XML模式中的无效模式

时间:2013-04-11 20:28:10

标签: xml schema

我在XML Schema中有一个模式。它是:

<xs:pattern value="^[^\u00A4\u00A6\u007C\u00A7\u0022]+$"/>.

但是当通过Altova打开架构时,我们会收到错误

  

架构本身似乎没有效果(作为另一个架构的一部分,它可能仍然可以)...值^[^\u00A4\u00A6\u007C\u00A7\u0022]+$不是常规的xml表达式

我看不出表达式有什么问题。任何人都可以帮我确定问题吗?

1 个答案:

答案 0 :(得分:0)

此处的简单修复,从Javascript更新为XML表单以获取字符引用:

<xs:pattern value="^[^&#x00A4;&#x00A6;&#x007C;&#x00A7;&#x0022;]+$"/>

------------- EDIT --------------------

感谢Michael Kay指出了锚定监督。如果你想禁止使用字符¤| |“那么这就是你的模式:

<xs:pattern value="[^&#x00A4;&#x00A6;&#x007C;&#x00A7;&#x0022;]+"/>

来自规范:

Note:  Unlike some popular regular expression languages (including those defined by Perl and standard Unix utilities), the regular expression language defined here implicitly anchors all regular expressions at the head and tail, as the most common use of regular expressions in ·pattern· is to match entire literals.

http://www.w3.org/TR/xmlschema-2/#regexs