WITH XMLNAMESPACES

Применимо к:База данныхSQL Server Azure SQL Управляемый экземпляр SQL Azure

Данное предложение объявляет одно или несколько пространств имен 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>  
  

Примечание

Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.

Аргументы

xml_namespace_uri
Универсальный идентификатор ресурса (Uniform Resource Identifier, URI), определяющий объявляемое пространство имен XML. xml_namespace_uri является строкой SQL.

xml_namespace_prefix
Указывает префикс, сопоставляемый и связываемый со значением URI пространства имен, указанным при помощи аргумента xml_namespace_uri. Аргумент xml_namespace_prefix должен быть идентификатором SQL Server.

Remarks

При использовании предложения 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.

  • Для использования стандартного пространства имен xsi объявлять "http://www.w3.org/2001/XMLSchema-instance" не требуется. Если это не сделано, обработчик XML/XPATH добавит это неявно, и выражения xpath могут использовать префикс xsi при условии корректного объявления схемы "http://www.w3.org/2001/XMLSchema-instance" в XML-документе.

  • Строковые значения 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)