0

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

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

但是当通过 Altova 打开模式时,我们得到了错误

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

我看不出这个表达有什么问题。谁能帮我找出问题?

4

1 回答 1

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

于 2013-04-11T21:26:53.087 回答