Выражение extension
Выражение extension – это еще один механизм расширения, предоставляемый реализаторам XQuery. В то время как объявление extension воздействует на весь запрос, у выражения расширения имеется более ограниченная область действия. Для пояснения этой конструкции рассмотрим следующий пример. declare namespace xq1="..."; declare namespace xq2="...";
for $e in //employee[name='Jon Postel'] return (# xq1:prose English #) (# xq2:roman lower-case #) { $e/badge cast as xs:string }
Эти псевдокомментарии (pragma) "(# … #)", если они распознаются, могут изменять поведение приведения значений к строкам. Этот запрос может произвести "One Hundred Fifty Four", если в реализации распознается xq1:prose, "cliv", если распознается xq2:roman, и "154", если не распознается ни один из псевдокомментариев. Выражение в фигурных скобках "{}" может опускаться. Если оно опускается, и ни один из псевдокомментариев не распознается, генерируется ошибка.