Propojená nabídka prvku linked-offer
Umožňuje výběr hodnoty či hodnot z jiné části dokumentu, která je opakovatelná formou roletky prvku, kde je tato vlastnost nastavena.
repeat-reference: {absolute/relative-reference}[; element-ref: {reference-list}][; add-assign-list: {assign-express-list}]
Tato vlastnost najde využití všude tam, kde potřebujeme logicky, tedy ne klíčově na pozadí, propojit obsah jednoho prvku na konkrétní opakování v jiné části téhož dokumentu. Jde o vlastnost složenou z následujících částí:
repeat-reference - hlavní odkaz na opakovatelný uzel, který je předmětem nabídky;
element-reference - absolutní odkaz na potomka uvedeného (i relativnì) v repeat-reference, který je prvkem, pokud hlavní odkaz je oblastí (pokud je opakovatelným segmentem použitým v hlavní části prvek, není toho dodatečného odkazu zapotřebí);
next-element-list - čárkami oddělovaný seznam absolutních odkazů dalších prvků, které se mají nabídnout v roletce vedle prkvu hlavního, jsou-li takové.;
add-assign-list - čárkami oddělené přiřazovací výraz(y), podle kterých proběhne přiřazení příp. další hodnot po výběru; hlavní prvek je přiřazován vždy;
items-filter - nepovinný výraz podmínky pro zahrnutí určité položky do seznamu nabídky; relativní odkazy výrazu jsou odvozovány od elemetu s nabídkou;
Význam a způsob využití vysvětlíme na příkladu. Představme si prezenční listinu školení, kde je pomocí tabulkové oblasti ucastnik umístěné v hlavní oblasti ucastnici uveden seznam účastníků, kde každý z nich je identifikován jménem v prvku jmeno a číslem v prvku id ve zmíněné tabulkové oblasti. Dejme tomu, že v každé takové skupině lidí je vybrána jedna osoba jako vedoucí. Můžeme tak na konci formuláře umístit prvek vedouci s vlastnosti linked-offer s následujícím obsahem:
repeat-reference: /ucastnici/ucastnik; element-reference: /ucastnici/ucastnik/jmeno;
Uvedená definice způsobí, že v prvku vedouci bude umístěna roletka se seznamem jmen z tabulky účastníků a výběrem položky v roletce se obsah prvku jmeno přenese do obsahu prvku vedouci. Nevkládá se tedy odkaz, ale vybraná hodnota se kopírováním přenáší přímo do linkovaného prvku.
Nyní situaci v příkladu poněkud zkomplikujeme. Budeme uvažovat, že dvě osoby v seznamu mohou mít shodné jméno, například dcera s matkou, otec se synem apod. Pak by určení vedoucího nebylo jednoznačné, neboť je dosud identifikován pouze jménem. V seznamu účastníků máme však ještě jejich jedinečná čísla ve sloupečku id (tj. v prvku id tabulkové oblasti). Propojovací vlastnost nám umožňuje tohoto údaje využít, proto vedle prvku vedouci, kde linkování definujeme ještě přidáme prvek id_vedouciho. Definici linku pak rozšíříme následujícím způsobem:
repeat-reference: /ucastnici/ucastnik; element-reference: /ucastnici/ucastnik/jmeno;
next-element-list: /ucastnici/ucastnik/id; add-assign-list: ../id_vedouciho = /ucastnici/ucastnik/id;
Toto rozšíření definice způsobí dvě věci. Jednak do výběrové roletky vedle jména do závorky doplní číslo účastníka pro jeho jednoznačné odlišení v seznamu. A jednak také při výběru určité položky z roletky proběhne nejen nakopírování jména účastníka do prvku vedouci, ale také nakopírování id účastníka do prvku id_vedouciho. Tím je vedoucí skupiny jednoznačně určen. Pozn.: Je-li identifikaci třeba zajistit více než jedním pomocným prvkem, je možné uvést prvků více a to i pro účely přiřazení s tím, že je třeba je vzájemně oddělit čárkou.
Abychom osvětlili i poslední část definování propojené nabídky, zkomplikujeme si situaci ještě více. Dejme tomu, že v seznamu účastníků máme vedle jména a id také informaci o tom, zda je daný účastník dospělá osoba či nikoli a to formou prvku dospely typu bool, tedy zaškrtávací pole. Vedoucím se však logicky může stát pouze dospělá osoba. Proto výběr zpřehledníme a také omezíme patřičnou podmínkou a celá definice linku bude nyní vypadat takto:
repeat-reference: /ucastnici/ucastnik; element-reference: /ucastnici/ucastnik/jmeno; next-element-list: /ucastnici/ucastnik/id; add-assign-list: ../id_vedouciho = /ucastnici/ucastnik/id;
items-filter: /ucastnici/ucastnik/dospely == true
Potenciální vlastnické uzly
Vlastnost linked-offer je možné uvést u následujících uzlů:
element - prvek (segment uvnitř definice);
Vlastnost linked-offer
Umožňuje výběr hodnoty či hodnot z jiné části dokumentu, která je opakovatelná
repeat-reference: {absolute/relative-reference}[; element-ref: {relative-reference-list}][; add-assign-list: {assign-express-list}]