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.

См. также

Другие ресурсы

Справочник по языку XQuery (SQL Server)