Agregace opakovatelných uzlů (aggregation)

Je-li výskyt některého uzlu s hodnotou možné opakovat, automaticky tak vzniká potřeba v některých případech tyto hodnoty např. sčítat či provádět jiné agregace. Nástroj aggregation umožňuje tyto funkce:

syntax
aggregation: sum | count | avg | min | max | list;

sum - součet číselných hodnot;

count - určení počtu uzlů;

avg - sestavení průměrné hodnoty z čísel;

min - určení nejnižší číselné hodnoty ze všech opakování;

max - určení nejvyšší číselné hodnoty ze všech opakování;

list - sestavení seznamu s možným oddělovačem ze všech opakování;

Agregace je prováděna ze všech položek vstupního uzlu, pokud není zadána podmínka pomocí input/output-on. Pokud dána je, pak se agregace provede jen z položek, které podmínce odpovídají. Spolu s možností vytvářet více mapovacích instrukcí pro jeden uzel a s možností nastavit jejich vzájemný vztah (viz. relation-of-maps), získáváme možnost skládat výsledné hodnoty do téměř libovolných skupin či částí.

Vlastní provedení agregace je realizováno pomocí základních funkcí dostupných v jazyku XPath, které jsou využívány v XSLT v 1.0. Tím je také dán jejich omezený výčet. Jedinou výjimkou je sestavování řetězcového seznamu agregační metodou list, kde je využíváno speciálně k tomu účelu generované šablony.

Specifické možnosti agregace list viz. separator-aggregation.


Algoritmus metodyAgregace opakovatelných uzlů (aggregation)Použití vlastní šablony pro určení hodnoty (value-template)Použití vlastní šablony pro celý uzel (node-template)Jen část řetězce (only-part-...)Specifikace operace pro slučování map (operation)Předpona, přípona (pre/post-fix)Změna výchozího relačního bodu (relative-to)Nastavení vztahu více map segmentu (relation-of-maps)Nastavení vztahu zdrojových opakování (relation-of-repeats)Oddělovače pro operaci či agregaci (separator-...)Zaokrouhlování (round)Převod znaků na jiné (translate)Výpočet hodnoty pomocí XPath (xpath-count)