Pravidla dokumentace Příklad na převod XML do HTML pomocí šablon XSLT Na příkladě si ukážeme základy práce s šablonami XSLT.
1. Vhodně otagujeme textový soubor, aby z něj vznikl soubor XML
Struktura dokumentu leden 2007 Josefína Bakerová Dokumentace k projektu <poznamka>Dokumentace k projektu se skládá (nejméně) z osmi částí: Titulní stránka Vzhledově stejná pro všechny dokumenty (doporučuji vytvořit si pro ni šablonu), obsahuje identifikační údaje. Název fakulty (je možné použít logo FIT), do kterého předmětu dokumentace patří (IZP,IUS), název projektu podle zadání, jméno autora dokumentu, login, datum. Obsah Úroveň detailu (zda budou uvedeny sekce N, nebo i N.N, nebo dokonce N.N.N) zvolte vhodně podle délky a složitosti dokumentu. Pokud dokument obsahuje množství obrázků a/nebo tabulek, je vhodné vytvořit a za obsah připojit také seznam těchto elementů. Úvod Stručný a jasný přehled, čeho se dokument týká a jaké má části.. Úvod je nutnou součástí každého dokumentu. Stačí dva, maximálně tři odstavce. Mají být napsány tak, aby čtenář dokumentu nemusel už dál číst a přesto měl přehled o celém dokumentu. Pokud se jedná o dokument hemžící se zkratkami a akronymy, je nutné uvést pododdíl s vysvětlující tabulkou (zkratka, plný text).
2012-07-24
XSLT - příklad
1/5
Analýza problému a princip jeho řešení Obsahuje stručnou charakteristiku řešeného problému. Princip řešení, popis funkcí, vymezení vstupních dat a požadovaných výsledků, možná omezení, možný rozsah hodnot dat. Je možné použít slovní formu doplněnou obrázky, schématy, tabulkami apod. (např. tabulka by mohla obsahovat sloupce: Funkce: ..., Popis: ..., Vstupy: ..., Výstupy: ..., Podmínky: ...), nebo: Diagramy datových toků - grafická technika, modelující toky dat a jejich transformace (různé názvy: bubble chart, bubble diagram, process model, function model, work flow diagram). Je vhodné zde také uvést odkazy na zdroje, odkud bylo čerpáno obeznámení se s danou problematikou, odkazy na literaturu o používaných metodách apod. Návrh řešení problému Výběr, či vytvoření metody řešení, resp. vytvoření matematického modelu, volba a sestavení algoritmu. Dekompozice problému. Stanovení vhodných datových typů, názvů funkcí, specifikace parametrů funkcí. Formát zobrazení výsledků. Možná forma: slovní popis, vývojové diagramy, Nassi Schneidermanovy diagramy, symbolika vyššího programovacího jazyka, či kombinace těchto forem. !!! Nebude zde okopírovaný celý program v jazyku C!!!! Specifikace testů Obsahuje popis zhruba 10 testovacích případů, kterými se bude ověřovat funkčnost a/nebo výkonové vlastnosti programu nebo jeho podprogramů (funkcí). Je nutno zdůvodnit výběr testovacích případů, testovacích dat a metodiky testování. Návrh testů bude zaměřen např. na možné: chyby zvolené metody, chyby vstupních dat, chyby zobrazení. Může být i ve formě tabulky. Můžete použít například tuto šablonu pro specifikaci testů (pro každý test): <seznam> Testovací údaje č.: XX Testovací kritérium: popis vybraného testovacího kritéria Testovací vstupy/očekávané výstupy: konkrétní dvojice Další vstup/výstup; může jich být na základě příslušného kritéria více Výsledek testování: zda se odhalila nějaká chyba testováním a jaká její popis Poznámky: jakékoliv další významné poznámky k tomuto testovacímu kritériu. Popis vlastního řešení Obsahuje popis vlastního řešení (implementace) a problémů, se kterými jste se při řešení setkali. Budou zde rovněž uvedeny případné odchylky od návrhu,
2012-07-24
XSLT - příklad
2/5
v případě, že během implementace se ukázalo vhodnější řešení dekompozice problému, které ve fázi návrhu nebylo zřejmé. Při popisu principu řešení nepoužívejte "algoritmické" formy (když A je rovno 5 pak...). Tvořte souvislé české věty. Snažte se o ABSTRAKTNÍ a CO NEJSTRUČNĚJŠÍ popis, který je ale co do obsahu vyčerpávající a věcně správný. Nezabývejte se detaily, pokud to nepovažujete za zajímavé z hlediska řešení. Neopisujte doslova jednotlivé funkce. Vyjádřete se vlastními slovy. Nepopisujte každou funkci zvlášť, účelem není velký objem textu, ale vystižení podstaty. V dokumentačním souboru předpokládejte pouze znalost zadání. Neodkazujte se na komentáře ve zdrojovém textu. Závěr V závěru dokumentace uveďte seznam zdrojů odkud jste čerpali k projektu - eventuálně zdroj vzorových algoritmů, vlastní zajímavé postřehy z řešení problému a metriky vytvořeného produktu: <seznam> počet funkcí počet řádků zdrojového kódu velikost kódu programu velikost statických dat (proměnné a konstanty) Poznámka: Zjišťování metrik není samoúčelné. Slouží k tomu, uvědomili, v jakém vztahu je vámi zvolené řešení vzhledem k výslednému binárnímu
informace celkového
abyste si kódu.
Další doporučení Dokumentace tvoří samostatný celek. Dokumentace k projektům vás má naučit psát česky (slovensky, anglicky). Proto bude mít podobu slohového cvičení a ne strohého, heslovitého popisu. Nepodceňujte ji. Dosavadní zkušenosti ukazují, že je to pro mnohé velmi těžký úkol. Uvědomte si, že svá díla budete v budoucnu prodávat lidem, kteří neumějí programovat. Zato český (slovenský, anglický) jazyk ovládají mnozí velmi dobře. Dodržujte pravidla českého pravopisu. Stále ještě existují nějaké vzory a vyjmenovaná slova. Vaše skvělé dílo si nikdo nekoupí, pokud ve vašich textech nalezne hrubky typu i/y, s/z, mně/mě a podobné. Nebude prostě důvěřovat tomu, že umíte programovat, když neumíte ani svůj vlastní jazyk. Odstavce zpřehledňují text. Při čtení textových souborů v elektronické podobě (neproporcionální písmo, holý ASCII text) je vhodné oddělovat odstavce prázdným řádkem. Nepoužívejte příliš mnoho zvýrazňujících prvků (nadměrné podtrhávání, řádky hvězdiček a podobné grafické prvky). Někdy méně znamená více. Nepoužívejte osobních a citově zabarvených obratů ("Zdá se mi, že by se mohlo..."). Vyjadřujte se decentně, jako kdyby na vašem textu mělo záviset, zda vás přijmou do zaměstnání, či ne. Z popisu může vyplývat, že máte smysl pro humor, ale vyvarujte se laciných "srandiček". Zvlášť nepříznivě to působí v případech, kdy chybí fakta a věcná správnost. Dokumentace se píše pro někoho jiného, než pro vás. Nepoužívejte tvrzení typu: "Vzhledem k tomu, že funkce, které jsem v této části řešil, jsou krátké a velmi průzračné, obsáhlejší komentář nemá smysl". Také hodnocení typu "tato funkce je jednoduchá" (následuje-li popis) si nechejte pro sebe. Co je jednoduché pro vás, nemusí být jednoduché pro někoho jiného. Pokud píšete texty neproporcionálním písmem (ascii text v elektronické podobě), nepoužívejte zarovnávání textu na pravý okraj. Mezi slovy vznikají velké mezery, které zhoršují čitelnost textu. Jediné, co je na uvedeném způsobu hezčí, je
2012-07-24
XSLT - příklad
3/5
vzhled z větší vzdálenosti. Pokud budete někomu posílat úřední dopisy, u kterých předpokládáte, že je nikdo nebude číst, pak je vizuální dojem účinný (vypadá to hezky).
2. Na druhý řádek XML souboru vložíme odkaz na XSL soubor
3. Napíšeme si kostru souboru XSL a zkusíme oba soubory provázat, je dobré si nakreslit strom XML dokumentu <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/clanek">
<xsl:value-of select="titulek"/> <xsl:value-of select="nadpis1"/>
<xsl:value-of select="autor"/>
<xsl:value-of select="datum"/>
<xsl:value-of select="poznamka"/>
<xsl:apply-templates select="kapitola"/>
4. Zdokonalíme soubor XSL tak, aby se zobrazovaly správně všechny kapitoly, odstavce, seznamy, navíc na začátek dokumentu přidáme pomocí cyklu seznam kapitol <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/clanek">
<xsl:value-of select="titulek"/> <xsl:value-of select="nadpis1"/>
<xsl:value-of select="autor"/>
<xsl:value-of select="datum"/>
Obsah
<xsl:for-each select="kapitola"> - <xsl:value-of select="nadpis2"/>
2012-07-24
XSLT - příklad
4/5
<xsl:value-of select="poznamka"/>
<xsl:apply-templates select="kapitola"/> <xsl:template match="kapitola">
<xsl:value-of select="nadpis2"/>
<xsl:apply-templates select="odstavec"/> <xsl:template match="odstavec">
<xsl:apply-templates/>
<xsl:template match="seznam">
<xsl:template match="bod">
<xsl:value-of select="."/>
5. Ze statického seznamu kapitol uděláme relativní odkazy na začátky kapitol
Obsah
<xsl:for-each select="kapitola">
<xsl:attribute name="href">#o<xsl:value-of select="position()"/> <xsl:value-of select="position()"/>. <xsl:value-of select="nadpis2"/>
............ <xsl:template match="kapitola">
<xsl:attribute name="id">o<xsl:value-of select="position()"/> <xsl:value-of select="position()"/>. <xsl:value-of select="nadpis2"/>
<xsl:apply-templates select="odstavec"/>
2012-07-24
XSLT - příklad
5/5