2013-04-11 4 views
0

У меня есть шаблон в XML-схеме. Это:Недопустимый шаблон в XML-схеме

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

Но когда схема открыта с помощью Altova, мы получаем ошибку

Схема не по всей видимости, действует сама по себе (как часть другой схемы может быть еще ok) ... Значение ^[^\u00A4\u00A6\u007C\u00A7\u0022]+$ не является регулярным выражением xml

Я не вижу ничего плохого в выражении. Может ли кто-нибудь помочь мне определить проблему?

+0

извините, вот фактический шаблон из схема:

ответ

0

Простое исправление здесь, обновление от Javascript в виде XML для символьных ссылок:

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

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

Спасибо Майклу Кэю за указание на якорь. Если вы хотите запретить использование символов ¤| |», то это ваш шаблон:

<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, но не та, что была предусмотрена, поскольку в диалекте XSD regex "^"и" $ "являются обычными символами, а не метасимволами. Вы можете просто оставить их в этом случае, так как факс XSD et неявно привязана к началу и концу строки. –