WITH XMLNAMESPACES
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр 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>
Аргументы
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.Для использования стандартного пространства имен 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.