Prezentátor

Úvod
Prezentátor
Úvod do Prezentátoru
Úvod do Webového publikování pomocí XML
Prezentátor
Definice jmenného prostoru pro šablonu
Formát pro popis dotazů
Návrh zajištění bezpečnosti - NEIMPLEMENTOVÁNO

Counter

Prezentátor je modul, který má slučovat několik typů dat dohromady. V kontextu webového publikování se jedná o zdroj prvotního XML dokumentu. Vstupy do prezentátoru jsou v podstatě dvojího charakteru.

Jedním vstupem je šablona obsahující odkazy na data do databáze. Prezentátor šablonu zpracovává takovým způsobem, že interpretuje vlastní jmenný prostor. Tento jmenný prostor umožňuje definovat formát pro data z databáze, a rovněž umožňuje definovat další podmínky týkající se výběru dat z databáze.

Druhým vstupem je pak popis dat v databázi spolu s vlastními daty. Data jsou rozdělena do jednotlivých dotazů určených svým jedinečným jménem. Dotazem je popis potenciálního SQL dotazu, jehož výstupem mají být záznamy obsahující údaje ve vztahu 1:1. Dotazy mohou být provázány vztahy. Jediným podporovaným vztahem je zatím vztah poddotazu. Aktuální verze definice dat umožňuje vytvářet dotazy v hierarchickém vztahu. Vztahy vyšších řádů (ternární a výše) nejsou podporovány.

Vnitřně zpracovává Prezentátor data pomocí událostmi řízeného API, které je velmi podobné standardu SAX. Narazí-li při zpracování na prvky ze svého jmenného prostoru, pak se jedná na nejvyšší úrovni buď o Formát (form) nebo o Dotaz (query). Každý dotaz následuje za nějakým Formátem, a tento Formát se pak stává Formátem a zdrojem informací pro daný Dotaz. Formát je realizován jako samostatný modul (Presentator::Format), který je ve vztahu N:1 k Prezentátoru (Presentator). Při zpracování Dotazu, je pak použit modul Select (Presentator::Select), který je k Formátu ve vztahu 1:1. V Dotazu je pak upřesněn (zadán) název dotazu, který identifikuje konkrétní Dotaz v definici dat. V tomto kontextu jsou pak vyhodnocena jednotlivá pole a veškeré složky dotazu.


  1. Definice jmenného prostoru pro šablonu
  2. Formát pro popis dotazů
  3. Návrh zajištění bezpečnosti - NEIMPLEMENTOVÁNO