WITH XMLNAMESPACES (Transact-SQL)
Данное предложение объявляет одно или несколько пространств имен XML.
Синтаксические обозначения Transact-SQL
Синтаксис
WITH XMLNAMESPACES ( <XML namespace declaration item>
[ { , <XML namespace declaration item> }...] )
<XML namespace declaration item> ::=
<xml_namespace_uri> AS <xml_namespace_prefix>
| <XML default namespace declaration item>
<xml_namespace_uri> ::= <character string literal>
<xml_namespace_prefix> ::= <identifier>
<XML default namespace declaration item> ::=
DEFAULT <xml_namespace_uri>
Аргументы
xml_namespace_uri
Универсальный идентификатор ресурса (Uniform Resource Identifier, URI), определяющий объявляемое пространство имен XML. Аргумент xml_namespace_uri представляет собой строку SQL.xml_namespace_prefix
Префикс, сопоставляемый и связываемый с URI пространства имен, указанным при помощи аргумента xml_namespace_uri. Аргумент xml_namespace_prefix должен представлять собой идентификатор SQL Server.
Замечания
При использовании предложения WITH XMLNAMESPACES в инструкции, включающей также обобщенное табличное выражение, предложение WITH XMLNAMESPACES должно предшествовать этому выражению.
Ниже приведены общие синтаксические правила, которые следует соблюдать при использовании предложения WITH XMLNAMESPACES.
Каждое объявление пространства имен XML должно включать хотя бы один элемент по умолчанию.
Каждый префикс пространства имен XML должен быть именем без двоеточий (NCName), в котором двоеточие (:) не является частью имени.
Определить префикс пространства имен два раза нельзя.
Префиксы пространств имен XML и идентификаторы URI обрабатываются с учетом регистра.
Префикс xmlns пространства имен XML не может быть объявлен.
Префикс xml не может быть переопределен пространством имен, отличным от пространства имен с URI 'http://www.w3.org/XML/1998/namespace', и этому URI не может быть назначен другой префикс.
Префикс xsi пространства имен XML не может быть повторно объявлен, если в запросе используется директива ELEMENTS XSINIL.
Строковые значения URI кодируются в соответствии с кодовой страницей параметров сортировки текущей базы данных и преобразуются внутри SQL Server в Юникод.
Неотображаемые символы удаляются из URI пространства имен XML в соответствии с правилами XSD, принятыми для типа xs:anyURI. Имейте в виду, что преобразование символов значений URI пространств имен XML в аналогичные последовательности символов и обратно не выполняется.
При обработке URI пространства имен XML проверяется наличие недопустимых символов для XML 1.0; при обнаружении такого символа (например, U+0007) формируется ошибка.
После удаления всех неотображаемых символов идентификатор URI пространства имен XML не может оказаться строкой нулевой длины; в противном случае произойдет ошибка «invalid empty namespace URI» (недопустимый пустой URI-идентификатор пространства имен).
В контексте предложения WITH ключевое слово XMLNAMESPACES является зарезервированным.
Примеры
Примеры см. в разделе Добавление пространств имен в запросы с WITH XMLNAMESPACES.