Výchozí upřesnění opakování starting-specification
Pro specifikační uzel nastavuje pravidlo předvybrání zdrojového opakování při výběru zdrojového dokumentu.
{logical-expression}
Tato vlastnost se dá použít všude tam, kde vedle vlastního výběru cizího dokumentu ještě musíme věnovat jako uživatelé pozornost specifikaci zdrojového opakování pomocí tlačítka "Upřesnit". Standardně se v takovém případě v momentu výběru zdrojového dokumentu s opakováním se provede takzvaná výchozí specifikace tak, že se ze zdrojového dokumentu automaticky vloží první zdrojové opakování i do cílového dokumentu.
Vlastnost starting-specification umožní v tomto momentu upřesnit zdrojové opakování dle jiného klíče než kterým je první pozice ve zdroji. Nastavuje se zde výraz, s obdobnou syntaxí jakou má source-filter, jen s tím rozdílem, že není aplikován SQL dotazem, ale dotazem přeneseným do XPath. To znamená, že můžeme využívat jen ty funkce, které XPath podporuje.
To co je shodné je způsob zápisu cizích odkazů. Ty se opět indikují dvěma dvojtečkami, mezi které je možné (ale ne nutné) napsat jméno zdrojového dokumentu, který je již určen pomocí samotného source (rovněž mezi dvojtečkami) u daného segmentu nebo jeho rodiče. Po dvojtečkách následuje absolutní odkaz na službu dokumentu, který je zdrojem specifikace. Vzhledem k tomu, že se však jedná o výběr opakovatelného segmentu, byly by absolutní dotazy nepotřebné, a proto se všechny dotazy do cizího dokumentu převádějí na dotazy relativní, které jsou aplikovány z bodu specifikace, tedy od opakovatelného segmentu zdroje. Tato skutečnost nás však nemusí příliš zajímat. Pojďme si ujastnit prioritní specifikaci na příkladu.
Uvažujme tři dokumenty - klient, dodavatelska_smlouva, dodaci_list. Řekněme, že klient má opakovatelnou oblast provozovna. Každá tato provozovna si uzavírá samostatně dodavatelskou smlouvu v rámci nějaké generální smlouvy s klientem. Tato dílčí smlouva provozovny je reprezentována dokumentem dodavatelska_smlouva. Dodavatelská smlouva má cizí oblast odberatel, která má svůj zdroj v klientovi odkud čerpá jednak jeho obchodní název (neopakovatelný) a také název, číslo a korespondenční adresu provozovny (opakovatelné), které se tato dílčí smlouva týká a na jejíž adresu má být dodáváno zboží.
Třetí dokument dodací list má pak zase dvě cizí oblasti - smlouva, na základě které je zboží dodáváno a kde je korespondenční adresa. Praxe však je taková, že každá provozovna má adresy dvě - již zmíněnou adresu korespondenční, ale také druhou, adresu skladu, kam se zboží dodává. Tato druhá adresa není uvedena v dokumentu smlouva. Dodací list má tedy ještě druhou oblast a tou je misto_dodani. Tato oblast čerpá z dokumentu klient a využívá opět i jeho provozovnu, jen s aresou skladu, nikoli korespondenční. Potřebujeme tedy, abychom při tvorbě dodacího listu si vybrali smlouvu, jejiž identifikační číslo klient při telefonické objednávce sdělí a ze které je jasná i provozovna, na kterou se objednávka sděluje. Když pak uživatel provede výběr adresy skladu v druhé cizí oblasti dodacího listu potřebujeme, aby se již sama vybrala správná provozovna. Využijeme tedy starting-specification, který vepíšeme jako atribut k tagu area odkazujícího na provozovnu - tedy toho, který přímo či nepřímo vytváří specifikační uzel (někdy bývá pohodlnější napsat tuto definici do služby - to v případě, že ke specifikaci nedochází na úrovni výběrového uzlu, ale v některém z potomků, který je definován službou). Atribut starting-specification tedy bude obsahovat následující výraz:
::/pro_dodaci_list/cislo_provozovny == ../smlouva/cislo_provozovny
Název pro_dodaci_list reprezentuje použitou službu dokumentu klient. Můžeme rovněž nastavit source-filter, aby se vybíral stejný klient, který je daný smlouvou (předchozí oblast). Pak tedy zápis do source-filter bude vypadat podobně:
::/pro_dodaci_list/cislo_klienta == ../smlouva/cislo_ klienta
Touto kombinací source-filter a starting-specification zajistíme, že jediným kliknutím na tlačítko "Vybrat" u oblasti pro adresu skladu se vyplní všechny kolonky položkami dle smlouvy s danou provozovnou (pokud má být v seznamu možných zdrojových dokumentů nabídnut pouze jediný, pak se rovnou provede jeho vložení do cílového dokumentu).
Upozornění: Pokud je výběrovým uzlem oblast dokumentu a některý z odkazů odkazuje do těla oblasti daného výběrového uzlu (možné a smysluplné pokud tento segment má jiný nebo vlastní zdroj), je třeba u tohoto segmentu přímo v definici specifikovat datový typ odkazovaného prvku - data, aby ověřování výrazu, které probíhá ještě před kompletací těla oblasti mohlo ověřit datový typ odkazu.
Potenciální vlastnické uzly
Vlastnost starting-specification je možné uvést u následujících uzlů:
element - prvek (segment uvnitř definice);
area - oblast (segment uvnitř definice);
Vlastnost starting-specification
Pro specifikační uzel nastavuje pravidlo předvybrání zdrojového opakování při výběru zdrojového dokumentu.
{logical-expression}