2013-04-11 73 views
0

我在XML模式中有模式。它是:XML模式中的无效模式

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

但当架构通过Altova的打开,我们得到的错误

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

我看不出任何错误的表达式。任何人都可以帮我找出问题吗?

+0

对不起,这里是从实际的模式该模式现在是一个有效的XSD正则表达式,但没有打算使用这个正则表达式,因为在XSD正则表达式中,“Xs:pattern value =”^ [^ \ u00A4 \ u00A6 \ u007C \ u00A7 \ u0022] + $“/> – 2013-04-11 20:35:14

回答

0

简单的解决这里,从Javascript更新XML格式的字符引用:

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

-------------编辑---------- ----------

感谢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

+0

” ^“和”$“是普通字符,而不是元字符。在这种情况下,您可以忽略它们,因为XSD模式fac et隐含地锚定在字符串的开始和结尾处。 – 2013-04-12 07:09:30