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. Аргумент uri_пространства_имен_xml является строкой SQL.
- xml_namespace_prefix
Префикс, сопоставляемый и связываемый с URI пространства имен, указанном при помощи аргумента xml_namespace_uri. Аргумент xml_namespace_uri должен быть идентификатором 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.
См. также
Другие ресурсы
Тип данных xml
Запрос XQuery к типу данных xml