Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Jazyk XML Jazyk pro tvorbu strukturovaných dokumentů Syntaxí velmi podobný HTML Hlavní cíle návrhu: Snadná editace - jazyk je textový Snadné strojové zpracování.

Podobné prezentace


Prezentace na téma: "Jazyk XML Jazyk pro tvorbu strukturovaných dokumentů Syntaxí velmi podobný HTML Hlavní cíle návrhu: Snadná editace - jazyk je textový Snadné strojové zpracování."— Transkript prezentace:

1 Jazyk XML Jazyk pro tvorbu strukturovaných dokumentů Syntaxí velmi podobný HTML Hlavní cíle návrhu: Snadná editace - jazyk je textový Snadné strojové zpracování - jednoduchá syntaxe

2 Základní syntaxe XML … obsah prvku... Zkrácený zápis - pokud je obsah prvku prázdný Textový jazyk, k vymezení logických částí (prvků) se používají následující značky (tagy): Speciální znaky < …,& … &," … ”, &apos; … ’,   … znak s číslem 160 v Unicode (zde tvrdá mezera)

3 Stromová reprezentace bla bla bla ble ble dokument text(‘\n‘) odstavec( @sirka = 50 ) text(‘\n bla bla bla\n‘) odstavec text(‘\n ble ble\n‘) text(‘\n‘) XML dokument:Odpovídající strom:

4 Základy Xpath (1) Výrazy popisující ”cestu” ve stromu Jednotlivé kroky se oddělují lomítky a mohou být: název prvku, např. odstavec text() - odpovídá text(…) v stromu. - odkaz na sebe sama.. - odkaz na otce Výraz A/B se chápe jako „B je synem A“ Výraz A//B se chápe jako „B je potomkem A“ Cesty mohou být absolutní (popisují cestu od kořene, začínají lomítkem) relativní (popisují cestu od pevně zvoleného uzlu, nezačínají lomítkem) * - libovolný prvek

5 Příklady Xpath (1) dokument text(‘\n‘) odstavec( @sirka = 50 ) text(‘\n bla bla bla\n‘) odstavec text(‘\n ble ble\n‘) text(‘\n‘) /dokument /dokument/odstavec /dokument/text() /text() //odstavec

6 Základy Xpath(2) Na konci každého kroku se mohou objevit predikáty: A[ i ] - i-tý uzel splňující A, např. text()[2]. A[ podmínka ] - takové A, že splňuje danou podmínku. a[@href=”neco.html”] - dotaz na hodnotu atributu je-li i záporné, počíta se od konce div[title!=”nic”] - dotaz na text prvku tr[position() mod 2=1] - volání spec. fcí. position() - kolikátý uzel to je last() - kolik uzlů celkem existuje count(A) - kolik uzlů vytvoří výraz A

7 Příklady Xpath(2) dokument text(‘\n‘) odstavec( @sirka = 50 ) text(‘\n bla bla bla\n‘) odstavec text(‘\n ble ble\n‘) text(‘\n‘) //odstavec[1] //text()[-2] //odstavec[@sirka=50] //text()[position() = last()] //text()[position() mod 2 = 1]

8 Princip XSLT XMLxml2html.xsl xml2wml.xsl HTML WML další XML

9 Jak funguje XSLT procesor Transformací uzlu budeme rozumět proces, při němž: Pokud taková neexistuje, použije se implicitní Vytvoříme nový strom(les) podle příkazů uvnitř a ten vrátíme jako výsledek Transformací dokumentu pak bude transformace kořene stromu dokumentu. Vybereme vyhovující šablonu

10 Formát XSLT souboru XSLT je instancí XML, tj. jedná se o XML soubory, ale XSLT jim dává význam … šablony...

11 Šablony - xsl:template … příkazy... Šablona je vyhovující (pro uzel u), pokud: výraz je absolutní cesta a odpovídá uzlu u výraz je relativní cesta a existuje uzel v, tak, že výraz odpovídá relativní cestě z v do uzlu u je-li více kandidátů, vybere se ta, která byla v XSLT napsána jako poslední

12 Příkazy v šablonách textové uzly se okopírují prvky, které nezačínají na ‘xsl:’, se také okopírují prvky, které začínají na ‘xsl:’, jsou speciální provede transformace synů a vrátí takto získané stromy další uvidíme později Implicitní pravidla textové uzly se okopírují u prvků je chování identické s šablonou s jediným příkazem

13 Příklad V XML si budeme uchovávat informace o zaměstnancích - pro začátek jméno a příjmení Josef Novak … další zaměstnanci...

14 První řešení

15 Problémy Pokud zaměníme pořadí jmena a prijmeni v XML, ovlivní to výstup Pokud mezi jmenem a prijmenim v XML, nebude mezera, jméno a příjmení se slijí Pokud přidáme další položky pro zaměstnance(e-mail apod.), přestane to fungovat.

16 xsl:apply-templates Pokud specifikujeme atribut select, provede se rekurze jen na uzly, které vyhovují cestě uvedené v select. select=”p” - vybere všechny synovské odstavce select=”.//p” - vybere všechny odstavce, které jsou potomky aktuálního uzlu select=”/dokument” - vybere prvek dokument, který je kořenem stromu. NEBEZPEČNÉ! select=”p[2]” - vybere druhý synovský odstavec

17 xsl:value-of Vrátí text, který vznikne vynecháním značek v obsahu prvního uzlu, který bude vybrán atributem select - vrátí text z akt. uzlu - vrátí text z 1. synovského odstavce - vrátí hodnotu atributu href

18 Vylepšené řešení

19 Změna designu

20 xsl:attribute přidá atribut k prvku, do kterého je vnořen jméno se získá z atributu name, hodnota z obsahu prvku mailto:

21 Automatické číslování Výhodné, pokud obsah často měníme - nezapomeneme na to Použijeme funkci position() … pokračování...

22 Volání pojmenovaných šablon Šablonu lze pojmenovat pomocí atributu name - musí být unikátní v dokumentu K volání slouží xsl:call-template … obsah …...

23 Parametry při volání šablon Parametr se deklaruje ve volané šabloně: implicitní hodnota Hodnota se specifikuje při volání jiná hodnota K hodnotě proměnné se dostaneme přes $p1


Stáhnout ppt "Jazyk XML Jazyk pro tvorbu strukturovaných dokumentů Syntaxí velmi podobný HTML Hlavní cíle návrhu: Snadná editace - jazyk je textový Snadné strojové zpracování."

Podobné prezentace


Reklamy Google