Příručka uživatele Zrušit

O XML a XSLT

 

 

Použití prvků XML a XSLT na webových stránkách Dreamweaver.

Poznámka:

Uživatelské rozhraní v aplikaci Dreamweaver CC a jejích novějších verzích bylo zjednodušeno. Výsledkem je skutečnost, že některé možnosti uvedené v tomto článku nemusí být v aplikaci Dreamweaver CC a jejích novějších verzích k dispozici. Další informace najdete v tomto článku.

Použití prvků XML a XSL na webových stránkách

XML (Extensible Markup Language) je jazyk umožňující strukturování informací. Podobně jako HTML i XML umožňuje strukturování informací pomocí tagů, ale tagy XML na rozdíl od tagů HTML nejsou předdefinované. Místo toho XML umožňuje vytváření tagů, které nejlépe definují strukturu dat (schéma). Vnořením různých tagů vzniká schéma tagů rodič – potomek. Podobně jako většina tagů HTML i všechny tagy tvořící XML schéma obsahují otevírací a zavírací tag.

Následuje příklad základní struktury souboru XML:

<?xml version=“1.0>
<mybooks>
<book bookid=“1>
<pubdate>03/01/2004</pubdate>
<title>Displaying XML Data with Adobe Dreamweaver</title>
<author>Charles Brown</author>
</book>
<book bookid=“2>
<pubdate>04/08/2004</pubdate>
<title>Understanding XML</title>
<author>John Thompson</author>
</book>
</mybooks>
<?xml version=“1.0”> <mybooks> <book bookid=“1”> <pubdate>03/01/2004</pubdate> <title>Displaying XML Data with Adobe Dreamweaver</title> <author>Charles Brown</author> </book> <book bookid=“2”> <pubdate>04/08/2004</pubdate> <title>Understanding XML</title> <author>John Thompson</author> </book> </mybooks>
<?xml version=“1.0”> 
<mybooks> 
    <book bookid=“1”> 
        <pubdate>03/01/2004</pubdate> 
        <title>Displaying XML Data with Adobe Dreamweaver</title> 
        <author>Charles Brown</author> 
    </book> 
    <book bookid=“2”> 
        <pubdate>04/08/2004</pubdate> 
        <title>Understanding XML</title> 
        <author>John Thompson</author> 
    </book> 
</mybooks>

V tomto příkladu každý rodičovský tag <book> obsahuje tři potomky: <pubdate>, <title><author>. Každý tag <book> je současně potomkem tagu <mybooks>, který je ve schématu o úroveň výš. Tagy XML můžete pojmenovat a strukturovat, jak chcete, musíte jen dodržet vnoření a ke každému otvíracímu tagu vložit i zavírací tag.

Dokumenty XML neobsahují žádné formátování – jsou to jen kontejnery uchovávající strukturované informace. Po vytvoření schématu XML můžete využít jazyk XSL (Extensible Stylesheet Language) k zobrazení informací. Podobně jako styly CSS (Cascading Style Sheets) umožňují formátování dat HTML, jazyk XSL umožňuje formátování dat XML. Můžete definovat styly, elementy stránky, vzhled a podobně v souboru XSL, který připojíte k souboru XML a pokud si pak uživatel zobrazí data XML v prohlížeči, jsou formátována podle definic v souboru XSL. Obsah (data XML) je zcela nezávislý na způsobu prezentace (definovaném souborem XSL) a tak máte lepší kontrolu nad zobrazením informací na webové stránce. XSL je v podstatě technologie prezentace dat XML, s tím, že hlavní formou výstupu je stránka HTML.

Transformace XSLT (Extensible Stylesheet Language Transformations) jsou podmnožinou jazyka XSL, která umožňuje zobrazení dat XML na webové stránce a jejich „transformaci“, spolu se styly XSL, na čitelné informace se styly v podobě HTML. Pomocí aplikace Dreamweaver můžete vytvořit stránky XSLT, které umožní provádět transformace XSL pomocí aplikačního serveru nebo prohlížeče. Při transformaci XSL na straně serveru zajišťuje server transformaci XML a XSL a zobrazení výsledku na stránce. Při transformaci na straně klienta zajišťuje transformaci prohlížeč (například Internet Explorer).

To, pro jaký přístup se rozhodnete (transformace na straně serveru nebo transformace na straně klienta), závisí na tom, jakého konečného výsledku chcete dosáhnout, jaké technologie máte k dispozici, jakou úroveň přístupu ke zdrojovým souborům XML máte, a na dalších faktorech. Oba přístupy mají své výhody i omezení. Například transformace na straně serveru fungují ve všech prohlížečích, zatímco transformace na straně klienta jsou omezené pouze na moderní prohlížeče (Internet Explorer 6, Netscape 8, Mozilla 1.8 a Firefox 1.0.2). Transformace na straně serveru umožňují dynamické zobrazení dat XML z vašeho vlastního serveru nebo libovolného jiného zdroje na webu, zatímco transformace na straně klienta vyžadují data XML umístěná lokálně na vlastním webovém serveru. Transformace na straně serveru vyžadují umístění stránek na nakonfigurovaném aplikačním serveru, zatímco transformace na straně klienta vyžadují pouze přístup k webovému serveru.

Výukovou lekci o prvku XML najdete na adrese www.adobe.com/go/vid0165_cz.

Transformace XSL na straně serveru

Aplikace Dreamweaver nabízí metody vytváření stránek XSLT, které umožňují transformace XSL na straně serveru. Pokud transformaci XSL provádí aplikační server, může být soubor s daty XML umístěn na vlastním serveru nebo kdekoli na webu. Transformovaná data se zobrazí v libovolném prohlížeči. Vytvoření stránek s transformací na straně serveru je ale složité a musíte mít přístup k aplikačnímu serveru.

Při práci s transformací XSL na straně serveru můžete pomocí aplikace Dreamweaver vytvářet stránky XSLT, které generují kompletní dokumenty HTML (kompletní stránky XSLT), nebo XSLT fragmenty, které generují části dokumentu HTML. Celá stránka XSLT je podobná běžné stránce HTML. Obsahuje tag <body> a tag <head> a na jedné stránce lze zobrazit kombinaci HTML a dat XML. Fragment XSLT je kus kódu, použitý v samostatném dokumentu, který zobrazuje formátovaná data XML. Na rozdíl od celé stránky XSLT jde o nezávislý soubor, který neobsahuje tag <body> ani <head>. Pokud chcete data XML zobrazit na samostatné stránce, vytvořte celou stránku XSLT a připojte k ní data XML. Pokud na druhou stranu chcete zobrazit data XML ve vybrané části stávající dynamické stránky – například dynamické domovské stránky obchodu se sportovními potřebami, kde se na jednom okraji stránky zobrazují sportovní výsledky z kanálu RSS – vytvoříte fragment XSLT a odkaz na něj vložíte do dynamické stránky. Běžnější je vytváření fragmentů XSLT a jejich využití ke zobrazení dat XML společně s dalšími dynamickými stránkami.

Prvním krokem při vytváření tohoto typu stránek je vytvoření fragmentu XSLT. Jde o samostatný soubor, který obsahuje vzhled, formátování a další parametry zobrazení dat XML na dynamické stránce. Po vytvoření fragmentu XSLT vložíte odkaz na něj do své dynamické stránky (například stránky PHP nebo ColdFusion). Vložený odkaz na fragment funguje velmi podobně jako zahrnutí na straně serveru (SSI) – formátovaná data XML (fragment) se nacházejí v samostatném souboru a v zobrazení Návrh se na dynamické stránce zobrazuje vyhrazené místo pro fragment. Pokud si prohlížeč vyžádá dynamickou stránku, která obsahuje odkaz na fragment, server zpracuje vložený pokyn a vytvoří nový dokument, v němž je vyhrazené místo nahrazeno formátovaným obsahem fragmentu.

A. Prohlížeč požaduje dynamickou stránku B. Webový server stránku vyhledá a předá ji aplikačnímu serveru. C. Aplikační server vyhledává na stránce pokyny a získá fragment XSLT. D. Aplikační server provede transformaci (přečte fragment XSLT, získá data XML a naformátuje je). E. Aplikační server vloží transformovaný fragment do stránky a předá jej zpět na webový server. F. Webový server odešle dokončenou stránku prohlížeči. 

Serverové chování Transformace XSL je možnost, jak vložit odkaz na fragment XSLT do dynamické stránky. Pokud vložíte odkaz, aplikace Dreamweaver generuje v kořenové složce webového místa složku includes/MM_XSLTransform/, v níž je soubor knihovny nutné k běhu. Aplikační server využívá funkce definované v tomto souboru při transformaci zadaných dat XML. Tento soubor odpovídá za načtení dat XML a fragmentů XSLT, provedení transformace XSL a výstup výsledků do webové stránky.

Na serveru musí být soubor, který obsahuje fragment XSLT, soubor XML, který obsahuje data, a vygenerovaná knihovna pro běh, jinak se stránka nezobrazí správně. (Pokud jako zdroj dat vyberete vzdálený soubor XML – například z kanálu RSS – musí být tento soubor samozřejmě umístěn někde jinde na Internetu.)

Pomocí aplikace Dreamweaver také můžete vytvářet kompletní stránky XSLT používané s transformacemi na straně serveru. Kompletní stránka XSLT funguje přesně stejně jako fragment XSLT, až na to, že vložením odkazu na kompletní stránku XSLT využitím serverového chování Transformace XSL vkládáte kompletní obsah stránky HTML. Dynamickou stránku (stránku .cfm, .php, nebo .net, která funguje jako kontejner) je před vložením odkazu nutno zbavit veškerého kódu HTML.

Aplikace Dreamweaver podporuje transformace XSL na stránkách ColdFusion, ASP a PHP.

Poznámka:

Transformaci na straně serveru lze provádět, jen pokud je server správně nakonfigurován. Další informace vám poskytne správce serveru.

Transformace XSL na straně klienta

Transformace XSL můžete provádět na klientovi a nepotřebujete aplikační server. Pomocí aplikace Dreamweaver můžete vytvořit kompletní stránku XSLT, která to zajistí; transformace na straně klienta ale vyžaduje manipulaci se souborem XML, v němž jsou data, která chcete zobrazit. Transformace na straně klienta funguje jen v moderních prohlížečích (Internet Explorer 6, Netscape 8, Mozilla 1.8 a Firefox 1.0.2). 

Nejdříve vytvořte celou stránku XSLT a připojte zdroj dat XML. (Aplikace Dreamweaver vás vyzve k připojení datového zdroje při vytváření nové stránky.) Stránku XSLT můžete vytvořit od začátku, nebo můžete převést stávající stránku HTML na stránku XSLT. Při převodu stávající stránky HTML na stránku XSLT musíte připojit zdroj dat XML pomocí panelu Svázání (Okna > Svázání).

Po vytvoření stránky XSLT ji musíte propojit se souborem XML, v němž jsou data XML, vložením odkazu na stránku XSLT přímo do souboru XML (tak, jako vkládáte odkaz na externí kaskádový styl CSS do sekce <head> stránky HTML). Návštěvníci webového místa si musí v prohlížeči otevřít soubor XML (ne stránku XSLT). Při otevření stránky prohlížeč provede transformaci XSL a zobrazí data XML ve formátu určeném odkazovanou stránkou XSLT.

Vztah mezi odkazovanými stránkami XSLT a XML je koncepčně podobný, ale v něčem se od modelu externího CSS a stránky HTML liší. Pokud máte stránku HTML s obsahem (například text), formátujete její obsah externím kaskádovým stylem. Stránka HTML určuje obsah a externí kód CSS, který se uživateli vůbec nezobrazí, určuje formu prezentace. V případě XSLT a XML je tomu naopak. Soubor XML (který uživatel v nezpracované podobě nikdy nevidí) určuje obsah a stránka XSLT určuje formu prezentace. Stránka XSLT obsahuje tabulky, rozvržení, grafiku a tak dále, tedy prvky, které obvykle obsahuje standardní stránka HTML. Pokud uživatel v prohlížeči zobrazí soubor XML, stránka XSLT určuje formát obsahu.

A. Prohlížeč požaduje soubor XML. B. Server reaguje odesláním souboru XML do prohlížeče. C. Prohlížeč přečte instrukci XML a volá soubor XSLT. D. Server odešle soubor XSLT do prohlížeče. E. Prohlížeč převede data XML a zobrazí je v prohlížeči. 

Pokud pomocí aplikace Dreamweaver vytvoříte vazbu mezi stránkami XSLT a XML, aplikace Dreamweaver vloží na začátek stránky XML potřebný kód. Pokud jste vlastníky stránky XML, na kterou odkazujete (tedy pokud soubor XML existuje jen na vašem webovém serveru), stačí pomocí aplikace Dreamweaver vložit kód, který obě stránky propojí. Pokud jste vlastníky souboru XML, transformace XSL zajišťovaná klientem je plně dynamická. To znamená, že při každé aktualizaci dat v souboru XML bude automaticky aktualizován výstup HTML využívající odkazovanou stránku XSLT a budou zobrazeny nové informace.

Poznámka:

Soubory XML a XSL, které využíváte při transformacích na straně klienta, musí být umístěny ve stejné složce. Pokud tomu tak není, prohlížeč načte soubor XML a najde stránku XSLT definující transformaci, nenajde ale zdroje (kaskádové styly, obrazy a podobně) definované relativními odkazy ve stránce XSLT.

Pokud nejste vlastníkem stránky XML, na kterou odkazujete (například pokud chcete použít data XML z kanálu RSS někde na webu), je proces o něco komplikovanější. Transformace na straně klienta s využitím dat XML z vnějšího zdroje fungují jen pokud zdrojový soubor XML nejdříve stáhnete do stejné složky se stránkou XSLT. Poté, co máte stránku XML na svém webu, můžete pomocí aplikace Dreamweaver vložit kód, který stránku XML propojí se stránkou XSLT, a poté obě stránky (stažený soubor XML i odkazovanou stránku XSLT) umístit na webový server. Pokud uživatel v prohlížeči zobrazí soubor XML, stránka XSLT určuje formát obsahu, stejně jako v předchozím příkladu.

Nevýhodou provádění transformací XSL na straně klienta na datech pocházejících z externích zdrojů je to, že data XML jsou jen částečně „dynamická“. Soubor XML, který stáhnete a změníte, je jen „snímkem“ živého souboru z webu. Pokud se původní soubor XML na webu změní, musíte ho znovu stáhnout, propojit se stránkou XSLT a znovu umístit soubor XML na webový server. Prohlížeč poskytne jen data přijatá ze souboru XML umístěného na vašem webovém serveru, ne data obsažená v původním souboru XML.

Data XML a opakované elementy

Objekt Opakovaná oblast XSLT umožňuje zobrazit na stránce opakující se prvky ze souboru XML. Jakoukoliv oblast, která obsahuje vyhrazené místo pro data XML, lze změnit na opakovanou oblast. Ale nejběžnějšími oblastmi jsou tabulka, řádek tabulky nebo několik řádků tabulky.

Následující příklad uvádí, jak pomocí objektu Opakovaná oblast XSLT zobrazit řádek tabulky s informací o nabídce restaurace. První řádek zobrazuje tři různé prvky ze schématu XML: položka, popis a cena. Použitím objektu Opakovaná oblast XSLT na řádek tabulky a následným zpracováním tabulky aplikačním serverem nebo prohlížečem se tabulka začne opakovat s tím, že na každém řádku obsahuje nová data.

Při použití objektu Opakovaná oblast XSLT na element v okně dokumentu se okolo opakované oblasti zobrazí tenký šedý obrys. Při náhledu stránky v prohlížeči (Soubor > Náhled v prohlížeči) šedý obrys zmizí a výběr se zvětší, aby zobrazil opakované elementy ze souboru XML, jako na předchozím obrázku.

Při vložení objektu Opakovaná oblast XSLT na stránku je délka vyhrazeného místa pro data XML v okně dokumentu zkrácena. To proto, že aplikace Dreamweaver aktualizuje výraz XPath (jazyk XML Path) pro vyhrazené místo pro data XML tak, aby byl relativní vůči cestě k opakovanému elementu.

Například následující kód je pro tabulku se dvěma dynamickými vyhrazenými místy a na tabulku není aplikován objekt Opakovaná oblast XSLT:

<table width="500" border="1">
<tr>
<td><xsl:value-of select="rss/channel/item/title"/></td>
</tr>
<tr>
<td><xsl:value-of select="rss/channel/item/description"/></td>
</tr>
</table>
<table width="500" border="1"> <tr> <td><xsl:value-of select="rss/channel/item/title"/></td> </tr> <tr> <td><xsl:value-of select="rss/channel/item/description"/></td> </tr> </table>
<table width="500" border="1"> 
    <tr> 
        <td><xsl:value-of select="rss/channel/item/title"/></td> 
    </tr> 
    <tr> 
        <td><xsl:value-of select="rss/channel/item/description"/></td> 
    </tr> 
</table>

Následující kód definuje stejnou tabulku s aplikovaným objektem Opakovaná oblast XSLT:

<xsl:for-each select="rss/channel/item">
<table width="500" border="1">
<tr>
<td><xsl:value-of select="title"/></td>
</tr>
<tr>
<td><xsl:value-of select="description"/></td>
</tr>
</table>
</xsl:for-each>
<xsl:for-each select="rss/channel/item"> <table width="500" border="1"> <tr> <td><xsl:value-of select="title"/></td> </tr> <tr> <td><xsl:value-of select="description"/></td> </tr> </table> </xsl:for-each>
<xsl:for-each select="rss/channel/item"> 
    <table width="500" border="1"> 
        <tr> 
            <td><xsl:value-of select="title"/></td> 
        </tr> 
        <tr> 
            <td><xsl:value-of select="description"/></td> 
        </tr> 
    </table> 
</xsl:for-each>

V předchozím příkladu aplikace Dreamweaver aktualizovala výraz XPath u položek, které spadají do opakované oblasti (titulek a popis) tak, aby se změnil v relativní cestu vůči XPath mezi tagy <xsl:for-each> a ne vůči celému dokumentu.

Aplikace Dreamweaver vytváří výrazy XPath relativní vůči obsahu i v dalších případech. Pokud například přetáhnete vyhrazené místo pro data XML do tabulky, na kterou už byl aplikován objekt Opakovaná oblast XSLT, aplikace Dreamweaver automaticky zobrazí relativní výraz XPath vůči existujícímu výrazu XPath mezi tagy <xsl:for-each>.

Náhled dat XML

Při zobrazení náhledu dat XML vložených do fragmentu XSLT nebo celé stránky XSLT pomocí příkazu Náhled v prohlížeči (Soubor > Náhled v prohlížeči) se případ od případu liší modul, který provede transformaci XSL. U dynamických stránek s vloženými fragmenty XSLT transformaci vždy provede aplikační server. V ostatních případech může transformaci provést aplikace Dreamweaver nebo prohlížeč.

Následující tabulka shrnuje situace při použití příkazu Náhled v prohlížeči a uvádí, jaké moduly provádějí příslušné transformace:

Typ stránky, jejíž náhled je zobrazen v prohlížeči

Transformaci dat provádí

Dynamická stránka obsahující fragment XSLT

Aplikační server

Fragment XSLT nebo celá stránka XSLT

Dreamweaver

XML soubor s odkazem na celou stránku XSLT

Prohlížeč

Následující témata vám pomohou vybrat vhodnou metodu náhledu odpovídající vašim potřebám.

Náhled stránek pro transformace na straně serveru

Při transformacích na serveru je obsah, který vidí návštěvník webového místa, transformován aplikačním serverem. Při vytváření stránek XSLT a dynamických stránek určených k použití s transformací na straně serveru vždy doporučujeme zobrazit náhled dynamické stránky, v níž je vložen fragment XSLT, a ne náhled samotného fragmentu XSLT. V prvním případě využíváte aplikační server, což zaručuje zobrazení náhledu v té podobě, v jaké stránku uvidí uživatelé webového místa. V druhém případě transformaci provádí aplikace Dreamweaver a můžete obdržet mírně odlišné výsledky. Pomocí aplikace Dreamweaver můžete zobrazit náhled fragmentu XSLT během jeho návrhu, ale pokud chcete vidět nejpřesnější verzi zobrazení dat, využijte zobrazení náhledu dynamické stránky aplikačním serverem po vložení fragmentu XSLT.

Náhled stránek pro transformaci na straně klienta

V případě transformace na straně klienta uvidí návštěvníci obsah webového místa převedený prohlížečem. Stačí přidat odkaz ze souboru XML na stránku XSLT. Při otevření souboru XML v aplikaci Dreamweaver a zobrazení náhledu v prohlížeči přinutíte prohlížeč načíst soubor XML a provést transformaci. Tak získáváte možnost vidět přesně to, co uvidí návštěvník webového místa.

Při tomto přístupu je ale ladění stránky obtížnější, protože prohlížeč provádí převod XML a generování HTML interně. Pokud v prohlížeči vyberete volbu Zobrazit zdroj s cílem ladit generovaný HTML, uvidíte jen původní XML načtený prohlížečem, ne kompletní HTML (tagy, styly a podobně), podle něhož byla stránka zobrazena. Pokud chcete při zobrazení zdrojového kódu vidět kompletní HTML, musíte v prohlížeči zobrazit náhled stránky XSLT.

Zobrazení náhledu celých stránek XSLT a fragmentů XSLT

Při vytváření celých stránek XSLT a fragmentů XSLT kontrolujte svou práci, abyste ověřili, zda se data zobrazují správně. Pokud pomocí Náhled v prohlížeči zobrazíte kompletní stránku XSLT nebo fragment XSLT, aplikace Dreamweaver provede převod pomocí zabudovaného transformačního modulu. Tato metoda dává rychlé výsledky a usnadňuje postupné vytváření a ladění stránky. Umožňuje také zobrazení kompletního HTML (tagy, styly a podobně) výběrem možnosti Zobrazit zdroj v prohlížeči.

Poznámka:

Tato metoda náhledu se běžně využívá na začátku návrhu stránek XSLT, nezávisle na tom, zda k transformaci dat využíváte server nebo klienta.

Získejte pomoc rychleji a snáze

Nový uživatel?