Вычисляемые конструкторы элемента и атрибута

Вычисляемый конструктор элемента имеет одну из следующих форм:

element имя-элемента {выражение-для-содержимого}

или

element {выражение} {выражение-для-содержимого}

В первой форме создается элемент с заданным именем-элемента и вычисляемым содержимым. Во второй форме имя элемента является результатом вычисления выражения.

Аналогичным образом определяются формы вычисляемого конструктора атрибута:

attribute имя-атрибута {выражение-для-значения}

или

attribute {выражение} {выражение-для-значения}

В первой форме создается атрибут с заданным именем-атрибута, а во второй форме имя атрибута является результатом вычисления выражения. В обеих формах значение атрибута определяется как результатом вычисления выражения-для-значения.

 

Пример задания вычисляемых конструкторов элементов и атрибутов:

Запрос на обработку с использованием вычисляемых конструкторов элементов и атрибутов имеет следующий вид:

xquery version "1.0";

declare variable $email-server as xs:string:="mail.com";

declare function local:attr-name($address-index as

xs:integer) as xs:string

{

if($address-index = 1) then "sender" else "receiver"

};

 

element {fn:concat(fn:substring-before($email-server,"."),

"-",xs:string("message"))}

{

element header

{

element address

{

element from

{

attribute {local:attr-name(1)} {fn:concat('ivanov','@',$email-server)}

},

element to

{

attribute {local:attr-name(2)} {fn:concat('sidorov','@',$email-server)}

}

},

element subject {"О встрече"}

},

element body {fn:concat("Встреча сегодня ",

fn:substring(xs:string(fn:current-date()),1,10),

" в 12.30")}

}

Результат обработки запроса имеет следующий вид:

<mail-message>

<header>

<address>

<from sender="ivanov@mail.com"/>

<to receiver="sidorov@mail.com"/>

</address>

<subject>О встрече</subject>

</header>

<body>Встреча сегодня 2008-03-06 в 12.30</body>

</mail-message>








Дата добавления: 2015-03-19; просмотров: 506;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.