SQL Server не будет выполнять проверку регулярных выражений для столбца XML - PullRequest
0 голосов
/ 22 января 2009

В моей таблице есть столбец XML, который содержит этот фрагмент xsd:

<xsd:element name="Postcode" minOccurs="0">
    <xsd:simpleType>
        <xsd:restriction base="xsd:string">
            <xsd:pattern value="^[0-9]{4}$" />
        </xsd:restriction>
    </xsd:simpleType>
</xsd:element>

Регулярное выражение должно содержать строку из 4 цифр. Он отлично проверяет в Visual Studio и является правильным регулярным выражением.

SQL Server, с другой стороны, не примет его. Я получаю сообщение об ошибке:

XML Validation: Invalid simple type value: '1234'. Location: / * : Donor[1]/*:Postcode[1].

У меня есть регулярное выражение для адреса электронной почты, но я не могу заставить это простое числовое выражение работать.

Ответы [ 3 ]

1 голос
/ 23 января 2009

Вариант регулярных выражений XML-схемы не поддерживает начальный и конечный якоря; все спички закреплены на обоих концах, всегда. Вероятно, он пытается сопоставить '^' и '$' буквально.

1 голос
/ 22 января 2009

Ваш исходный XML выглядит так:

<Postcode>1234</Postcode>

или как это:

<Postcode>
    1234
</Postcode>

Поскольку вы обрезаете строку (с помощью ^ и $), убедитесь, что ваш XML выглядит как первый, а не как второй.

0 голосов
/ 23 января 2009

Нет, вокруг строки нет пробелов.

У меня есть регулярный адрес электронной почты, который отлично работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...