O XML a XSLT

Naposledy aktualizováno 25. 4. 2024

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

Poznámka

Uživatelské rozhraní v aplikaci Dreamweaver 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 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

Extensible Markup Language (XML)\nje jazyk, který umožňuje strukturovat informace.Stejně jako HTML umožňuje XML\nstrukturovat informace pomocí značek, ale značky XML nejsou\npředem definované jako značky HTML.Místo toho vám XML umožňuje vytvořit značky,\nkteré nejlépe definují strukturu vašich dat (schéma).Značky jsou vnořené do\njiných a vytvářejí schéma nadřazených a podřazených značek.Stejně jako většina značek HTML\nmají všechny značky ve schématu XML otevírací a uzavírací značku.

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>

V tomto příkladu obsahuje každá nadřazená značka <book> tři podřazené značky: <pubdate>, <title> a <author>.Ale každá značka <book> je také podřazenou značkou prvku <mybooks>, který je o jednu úroveň výše ve schématu.Značky XML můžete pojmenovat a strukturovat\njakkoliv, pokud značky vhodně vnořujete do jiných\na každé otevírací značce přiřadíte odpovídající uzavírací značku.

Dokumenty XML neobsahují žádné formátování – jsou to jednoduše kontejnery strukturovaných informací.Jakmile máte schéma XML, můžete k zobrazení informací použít Extensible\nStylesheet Language (XSL).Stejným způsobem jako Kaskádové šablony stylů (CSS) umožňují formátovat HTML, XSL umožňuje formátovat data XML.V souboru XSL můžete definovat styly, elementy stránky, rozložení a podobně a připojit jej k souboru XML, takže když si uživatel prohlíží data XML v prohlížeči, data jsou formátována podle toho, co jste definovali v souboru XSL.Obsah (data XML) a prezentace (definovaná souborem XSL) jsou zcela oddělené, což vám poskytuje větší kontrolu nad tím, jak se vaše informace zobrazují na webové stránce.V podstatě je XSL prezentační technologií pro XML, kde primárním výstupem je HTML stránka.

Jazyk XSLT (Extensible Stylesheet Language Transformations) je podmnožinou jazyka XSL, který vám skutečně umožňuje zobrazit XML data na webové stránce a „transformovat" je spolu se styly XSL na čitelné, stylizované informace ve formě HTML.Pomocí aplikace Dreamweaver můžete vytvořit stránky XSLT, které vám umožní provádět transformace XSL pomocí aplikačního serveru nebo prohlížeče.Při transformaci XSL na straně serveru server provádí práci transformace XML a XSL a zobrazuje ji na stránce.Při transformaci na straně klienta tuto práci vykonává prohlížeč (například Internet Explorer).

Přístup, který nakonec zvolíte (transformace na straně serveru oproti transformacím na straně klienta), závisí na tom, čeho chcete dosáhnout jako konečný výsledek, na technologiích, které máte k dispozici, na úrovni přístupu k XML zdrojovým souborům 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 omezeny pouze na moderní prohlížeče (Internet Explorer 6, Netscape 8, Mozilla 1.8 a Firefox 1.0.2). Transformace na straně serveru vám umožňují dynamicky zobrazovat XML data z vašeho vlastního serveru nebo odkudkoliv jinde na webu, zatímco transformace na straně klienta musí používat XML data, která jsou lokálně hostována na vašem vlastním web serveru. Nakonec transformace na straně serveru vyžadují, abyste nasadili své stránky na konfigurovaný aplikační server, zatímco transformace na straně klienta vyžadují pouze přístup k web serveru.

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

Transformace XSL na straně serveru

Dreamweaver poskytuje metody pro vytváření XSLT stránek, které vám umožňují provádět XSL transformace na straně serveru. Když aplikační server provádí XSL transformaci, soubor obsahující XML data může být umístěn na vlastním serveru nebo kdekoli jinde na webu.Navíc transformovaná data může zobrazit jakýkoli prohlížeč. Nasazení stránek pro transformace na straně serveru je však poněkud složité a vyžaduje přístup k aplikačnímu serveru.

Při práci s transformacemi XSL na straně serveru můžete použít Dreamweaver k vytvoření stránek XSLT, které generují úplné HTML dokumenty (celé stránky XSLT), nebo fragmenty XSLT, které generují část HTML dokumentu. Celá stránka XSLT se podobá běžné HTML stránce. Obsahuje značku <body> a značku <head> a umožňuje zobrazit kombinaci HTML a XML dat na stránce. Fragment XSLT je část kódu, kterou používá samostatný dokument a která zobrazuje formátovaná XML data. Na rozdíl od celé stránky XSLT je to nezávislý soubor, který neobsahuje značku <body> ani <head>. Pokud chcete zobrazit XML data na samostatné stránce, vytvořte celou stránku XSLT a propojte s ní XML data.Pokud byste naopak chtěli zobrazit XML data v konkrétní části existující dynamické stránky – například na dynamické domovské stránce obchodu se sportovními potřebami s výsledky ze sportovního RSS kanálu zobrazenými na jedné straně stránky –, vytvořili byste fragment XSLT a vložili odkaz na něj do dynamické stránky. Vytváření fragmentů XSLT a jejich použití v kombinaci s jinými dynamickými stránkami pro zobrazení XML dat je běžnějším scénářem.

Prvním krokem při vytváření těchto typů stránek je vytvoření fragmentu XSLT. Je to samostatný soubor, který obsahuje rozložení, formátování atd. XML dat, která chcete nakonec zobrazit v dynamické stránce. Jakmile vytvoříte fragment 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 podobně jako Server Side Include (SSI) — formátovaná XML data (fragment) se nacházejí v samostatném souboru, zatímco v zobrazení návrhu se na samotné dynamické stránce zobrazí zástupný symbol fragmentu.Když prohlížeč vyžádá dynamickou stránku obsahující odkaz na fragment, server zpracuje vloženou instrukci a vytvoří nový dokument, ve kterém se místo zástupného symbolu zobrazí formátovaný obsah fragmentu.

A. Prohlížeč požaduje dynamickou stránku B. Webový server vyhledá stránku 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. 

K vložení odkazu na XSLT fragment do dynamické stránky používejte chování serveru XSL Transformation.Po vložení odkazu aplikace Dreamweaver vygeneruje složku includes/MM_XSLTransform/ v kořenové složce webu, která obsahuje soubor běhové knihovny.Aplikační server používá funkce definované v tomto souboru při transformaci zadaných XML dat.Soubor je zodpovědný za načítání XML dat a XSLT fragmentů, vykonávání XSL transformace a výstup výsledků na webovou stránku.

Soubor obsahující XSLT fragment, XML soubor obsahující vaše data a vygenerovaný soubor běhové knihovny musí být všechny na serveru, aby se vaše stránka zobrazila správně.(Pokud jako zdroj dat vyberete vzdálený XML soubor — například z RSS kanálu — tento soubor musí být samozřejmě umístěn někde jinde na internetu.)

Můžete také použít aplikaci Dreamweaver k vytvoření celých XSLT stránek pro použití se serverovými transformacemi.Celá XSLT stránka funguje přesně stejným způsobem jako XSLT fragment, jen když vložíte odkaz na celou XSLT stránku pomocí chování serveru XSL Transformation, vkládáte úplný obsah HTML stránky.Proto musí být dynamická stránka (stránka .cfm, .php nebo .asp, která funguje jako kontejnerová stránka) před vložením odkazu vymazána ze všech HTML.

Dreamweaver podporuje XSL transformace pro stránky ColdFusion, ASP a PHP.

Poznámka

Váš server musí být správně nakonfigurován pro provádění serverských transformací.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 odpoví odesláním XML souboru 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. 

Když použijete Dreamweaver k propojení XSLT stránky s XML stránkou, Dreamweaver vloží příslušný kód za vás na začátek XML stránky.Pokud vlastníte XML stránku, na kterou odkazujete (to znamená, pokud se XML soubor výhradně nachází na webovém serveru), stačí použít Dreamweaver k vložení příslušného kódu, který propojí obě stránky.Když vlastníte XML soubor, XSL transformace prováděné klientem jsou plně dynamické.To znamená, že kdykoli aktualizujete data v XML souboru, jakýkoli HTML výstup používající propojenou XSLT stránku bude automaticky aktualizován novými informacemi.

Poznámka

XML a XSL soubory, které používáte pro klientské transformace, se musí nacházet ve stejném adresáři.Pokud ne, prohlížeč přečte soubor XML a najde stránku XSLT pro transformaci, ale nepodaří se mu najít zdroje (stylové listy, obrázky a tak dále) definované relativními odkazy na stránce XSLT.

Pokud nevlastníte XML stránku, na kterou odkazujete (například pokud chcete použít XML data z RSS kanálu někde na webu), pracovní postup je trochu složitější.Pro provádění klientských transformací pomocí XML dat z externího zdroje musíte nejprve stáhnout zdrojový XML soubor do stejného adresáře, kde se nachází XSLT stránka.Když je XML stránka v místním webu, můžete použít Dreamweaver k přidání příslušného kódu, který ji propojuje s XSLT stránkou, a odeslat obě stránky (stažený XML soubor a propojenou XSLT stránku) na webový server.Když uživatel zobrazí XML stránku v prohlížeči, XSLT stránka naformátuje obsah, stejně jako v předchozím příkladu.

{"translatedText": [ "Nevýhodou provádění transformací XSL na straně klienta\nu dat XML, která pocházejí z externího zdroje, je, že data XML\njsou pouze částečně „dynamická". Soubor XML, který stáhnete a\nupravíte, je pouhým „snímkem" souboru, který se nachází jinde na\nwebu.",Pokud se původní soubor XML na webu změní, musíte soubor znovu stáhnout, propojit ho se stránkou XSLT a znovu odeslat soubor XML na webový server.Prohlížeč vykresluje pouze data, která obdrží ze souboru XML na webovém serveru, nikoli data obsažená v původním zdrojovém souboru XML.

Data XML a opakované elementy

"Objekt XSLT Opakující se oblast\nvám umožňuje zobrazit opakující se prvky\nze souboru XML na stránce.","Libovolná oblast obsahující zástupný symbol dat XML\nmůže být převedena na opakující se oblast.","Nejčastějšími oblastmi jsou však tabulka, řádek tabulky nebo série řádků tabulky.",

"Následující příklad ukazuje, jak je objekt XSLT Opakující se oblast\naplikován na řádek tabulky, který zobrazuje informace o nabídce restaurace.\n",První řádek zobrazuje tři různé prvky ze schématu XML: položku, popis a cenu."Když je objekt XSLT Opakující se oblast\naplikován na řádek tabulky a stránka je zpracována aplikačním\nserverem nebo prohlížečem, tabulka se opakuje s jedinečnými daty vloženými\ndo každého nového řádku tabulky.",

"Když aplikujete objekt XSLT Opakující se oblast na prvek v\nokně Dokument, kolem\nopakované oblasti se zobrazí tenký, záložkový, šedý obrys.",Když si svou práci zobrazíte v náhledu v prohlížeči (Soubor > Náhled v prohlížeči), šedý obrys zmizí a výběr se rozšíří a zobrazí zadané opakující se prvky v souboru XML, jak je znázorněno na předchozí ilustraci.

"Když přidáte objekt XSLT Opakující se oblast na stránku,\ndélka zástupného symbolu dat XML v okně Dokument je zkrácena.\n","Je to proto, že aplikace Dreamweaver aktualizuje výraz XPath\n(jazyk XML Path) pro zástupný symbol dat XML tak, aby\nbyl relativní k cestě opakujícího se prvku.",

"Například následující kód je pro tabulku, která obsahuje\ndva dynamické zástupné symboly, bez objektu XSLT Opakující se oblast\naplikovaného na tabulku:",

"<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 je pro stejnou tabulku s objektem XSLT Opakující se oblast\naplikovaným na ni:",

<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\naktualizovala XPath pro položky, které spadají do Opakující se oblasti\n(title & description), aby byly relativní k XPath v obklopujících <xsl:for-each> značkách,\nspíše než k celému dokumentu.",

"Aplikace Dreamweaver generuje kontextově relativní\nvýrazy XPath i v jiných případech." ]}Pokud například přetáhnete zástupný symbol dat XML do tabulky, která již má použitý objekt XSLT Opakující se oblast, Dreamweaver automaticky zobrazí XPath relativní k existujícímu XPath v ohraničujících značkách <xsl:for-each>.

Náhled dat XML

Když použijete Náhled v prohlížeči (Soubor > Náhled v prohlížeči) k náhledu dat XML, která jste vložili do fragmentu XSLT nebo celé stránky XSLT, systém, který provádí XSL transformaci, se liší podle situace.U dynamických stránek obsahujících fragmenty XSLT aplikační server vždy provádí transformaci.V jiných případech může transformaci provádět buď Dreamweaver nebo prohlížeč.

Následující tabulka shrnuje situace při použití Náhledu v prohlížeči a systémy, které 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 poskytují pokyny, které vám pomohou určit vhodné metody náhledu podle vašich potřeb.

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

V případě transformací na straně serveru je obsah, který návštěvník webu nakonec vidí, transformován aplikačním serverem.Při tvorbě stránek XSLT a dynamických stránek pro použití s transformacemi na straně serveru je vždy lepší zobrazit náhled dynamické stránky, která obsahuje fragment XSLT, než samotného fragmentu XSLT.V prvním scénáři využijete aplikace server, který zajistí, že váš náhled bude konzistentní s tím, co uvidí návštěvníci vašeho webu když navštíví vaši stránku.V tomto druhém scénáři Dreamweaver provádí transformaci a může poskytnout mírně nekonzistentní výsledky.Můžete použít Dreamweaver k náhledu fragmentu XSLT během jeho vytváření, ale nejpřesnější výsledky vykreslování dat uvidíte, pokud použijete aplikační server k zobrazení dynamické stránky poté, co jste vložili fragment XSLT.

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

V případě transformací na straně klienta je obsah, který návštěvník webu nakonec vidí, transformován prohlížečem.Dosáhnete toho přidáním odkazu ze souboru XML na stránku XSLT.Pokud otevřete soubor XML v aplikaci Dreamweaver a zobrazíte jeho náhled v prohlížeči, přinutíte prohlížeč načíst soubor XML a provést transformaci.Tím získáte stejnou zkušenost jako návštěvník vašeho webu.

Použití tohoto přístupu však ztěžuje ladění stránky, protože prohlížeč transformuje XML a generuje HTML interně.Pokud vyberete v prohlížeči možnost Zobrazit zdroj pro ladění generovaného HTML, uvidíte pouze původní XML, které prohlížeč obdržel, nikoli celé HTML (značky, styly a tak dále) odpovědné za vykreslování stránky.Chcete-li zobrazit celé HTML při prohlížení zdrojového kódu, musíte místo toho zobrazit náhled stránky XSLT v prohlížeči.

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

Při tvorbě celých stránek XSLT a fragmentů XSLT budete chtít zobrazit náhled svojí práce, abyste se ujistili, že se vaše data zobrazují správně. Pokud použijete Náhled v prohlížeči k zobrazení celé stránky XSLT nebo fragmentu XSLT, Dreamweaver provede transformaci pomocí vestavěného transformačního systému.Tato metoda vám poskytuje rychlé výsledky a usnadňuje vám postupné vytváření a ladění stránky.Poskytuje také způsob, jak zobrazit celé HTML (značky, styly a tak dále) výběrem možnosti Zobrazit zdroj v prohlížeči.

Poznámka

Tato metoda náhledu se běžně používá, když začínáte vytvářet stránky XSLT, bez ohledu na to, zda používáte klienta nebo server k transformaci dat.