Definice jmenného prostoru pro šablonu

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

Counter

Modul Presentator zpracovává šablonu, ve které mají speciální význam značky ze jmenného prostoru http://www.pef.mendelu.cz/fis/presentator. V tomto jmenném prostoru pak definuje značku pro formát dat form a značku pro dotaz do databáze query. Formát dat je šablonou, která má být aplikavána na výsledky příslušného dotazu. Formát se skládá z jednotlivých iteračních částí a jejich statického textového obalu. Iterační část je definována elementem iterate. Tato část definuje formát pro jeden záznam z databáze. Iterační části se mohou vnořovat, potom se jedná o poddotazy. Údaje, které budou získány z databáze, jsou ve formátu zastoupeny názvem pole ve jmenném prostoru Presentatoru. Tento název pole odkazuje do definice dat na element out s atributem name shodným s tímto názvem. Zpracování iterace pak probíhá podle těchto pravidel:

  1. Jedná-li se o uzly mimo jmenný prostor Presentatoru, pak jsou tyto uzly zkopírovány do výsledku.
  2. Jedná-li se o elementy ve jmenném prostoru Presentatoru, ale přitom nejde o iteraci, pak je tento element nahrazen příslušnou hodnotou z aktuálního záznamu.
  3. Jedná-li se o uzel iterate, pak jsou tato pravidla aplikována na poddotaz.
Samotný formát je při zpracování šablony vypuštěn.

Element dotazu pak upřesňuje daný dotaz. Tento element je při zpracování nahrazen aplikací formátu na data. Dotazy se mohou vnořovat, přitom stromová struktura dotazů musí souhlasit se stromovou strukturou částí iterate v odpovídajícím formátu. Každé části iterate je totiž přiřazen jeden konkrétní query. Všechny podčásti dotazu bývají ve jmenném prostoru Presentatoru. Dotazy mohou obsahovat podmínky vložené do elementu where, a požadavky na setřídění dat v elementu order. Jednotlivé podmínky pak mohou omezovat na základě pole z databáze nebo na základě explicitně definovaného omezení v definici dat. Konkrétní omezení pole z definice dat je možné atributy like, eq, gt, lt. Explicitní omezení mají pak parametry určené v definici dat v části where.

<html>
                              <head>
                              <title>
                              Výpis dokumentů
                              </title>
                              </head>
                              <body>
                              <pre:form>
                              <h1>
                              Obsah
                              </h1>
                              <ol>
                              <pre:iterate>
                              <li>
                              <pre:title/>
                              </li>
                              </pre:iterate>
                              </ol>
                              </pre:form>
                              <pre:query name="document"/>
                              <pre:form>
                              <h1>
                              Udaje
                              </h1>
                              <pre:iterate>
                              <h2>
                              <pre:title/>
                              </h2>
                              <div>
                              <pre:content/>
                              </div>
                              </pre:iterate>
                              </pre:form>
                              <pre:query name="document">
                              <pre:where>
                              <pre:content like="%zrc%"/>
                              </pre:where>
                              </pre:query>
                              <pre:query name="document">
                              <pre:where>
                              <pre:keyword keyword="Riemann"/>
                              </pre:where>
                              </pre:query>
                              </body>
                              </html>
                              

Příklad 14: Příklad sablony