КаталогИндекс раздела
НазадСодержаниеВперед

Пространства имен в области видимости конструируемого элемента

Конструируемый элементный узел имеет свойства пространств имен в области видимости, которое содержит набор привязок пространств имен. Каждая привязка пространства имен связивает префикс пространства имен с URI. Привязки пространств имен определяют набор префиксов пространств именe, которые доступны для интерпретации QNames в области видимости элемент.

Важно: Чтобы понять этот раздел вы должны понимать разницу между можете следующими концепциями:
Статистически определенные пространства имен
      Статистически определенные пространства имен являются свойством выражениея. Это свойство означает набор привязок пространств имен, которые использует XQuery для разрешения префиксов пространств именe во время обработки выражения. Эти привязки не являются частью результата запроса.
Пространства имен в области видимости
      Пространства имен в области видимости - свойство элементного узла. Это свойство означает набор привязок пространств имен, которые доступны для приложений вне XQuery, когда элемент и его содержимое обрабатываются. Эти привязки сериализуются как часть результата запроса, так что они доступны для внешних приложений.

Пространства имен в области видимости конструируемого элемент включают все привязки пространств имен, которые создаются следующими способами:

Примеры

Следующий запрос включает в себя пролог, который содержит объявления пространств имен, и тело, которое содержит прямой конструктор элемента:

declare пространства имен p="http://example.com/ns/p";
declare пространства имен q="http://example.com/ns/q";
declare пространства имен f="http://example.com/ns/f";

<p:newElement q:b="{f:func(2)}" xmlns:r="http://example.com/ns/r"/>

Объявления пространств имен в прологе добавляют привязки пространств имен в статически определенные пространства имен выражения. Но привязки пространств имен добавляются в пространства имен в области видимости конструируемого элемент только, если QNames в конструктор используют эти пространства имен. Следовательно, пространства имен в области видимости p:newElement состоят из следующих привязок пространств имен:

Заметьте, привязка для пространства имен f="http://example.com/ns/f" не добавляется в пространства имен в области видимости. Это потому, что конструктор элемента не включает в себя имен элементов или атрибутов, которые используют префикс f (несмотря на то, что f:func(2) появляется в содержимом атрибута q:b). Следовательно, эта привязка пространства имен не появляется в результате запроса, хотя она и присутствует в стататически определенных пространствах имен и доступна во время обработки запроса.


НазадСодержаниеВперед
КаталогИндекс раздела