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

Объявление пространства имен по умолчанию для функций

Объявление пространства имен по умолчанию для функций в прологе запроса задает URI пространства имен для использования в именах функций без префикса при вызове функций.

Пролог запроса может содержать только одно объявление пространства имен по умолчанию для функций. Если не объявлено пространство имен по умолчанию для функций, то пространством имен по умолчанию для функций является пространство имен функций XPath и XQuery, http://www.w3.org/2005/xpath-functions. Если вы объявляете пространство имен по умолчанию для функций, вы можете вызывать любые функции в пространстве имен по умолчанию для функций без задания префикса.

DB2 возвращает ошибку, если локальное имя вызываемой функции без префикса не соответствует функции в пространстве имен по умолчанию для функций.

Синтаксис

>>-declare--default--function--namespace --URILiteral--;--------><
function
      Задает, что объявление является объявлением пространства имен по умолчанию для функций.
URILiteral
      Задает строковый литерал, который представляет URI для пространства имен. Строковый литерал должен быть правильным URI или непустой строкой. Если строковый литерал в объявлении пространства имен по умолчанию для функций является пустой строкой, то все вызовы функций должны использовать префикс, поскольку каждая функция находится в каком-то пространстве имен.

Пример

Следующее объявление задает пространство имен по умолчанию для функций, связанное с URI http://www.ibm.com/xmlns/prod/db2/functions:

declare default function namrspace "http://www.ibm.com/xmlns/prod/db2/functions";

В теле запроса из этого примера вы можете обращаться к любым функциям из пространства имен по умолчанию для функций без префикса к имени функции. Это пространство имен по умолчанию для функций включает в себя функцию xmlcolumn, так что вы можете писать xmlcolumn('T1.MYDOC') вместо db2-fn:xmlcolumn('T1.MYDOC'). Однако, поскольку пространство имен по умолчанию для функций в этом примере больше не связано с пространством имен для функций XQuery, вам нужно будет задавать префикс при вызове встроенных функций XQuery. Например, вы должны писать fn:current-date() вместо current-date().


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