Movatterモバイル変換


[0]ホーム

URL:


Přeskočit na obsah
WikipedieWikipedie: Otevřená encyklopedie
Hledání

Extensible Stylesheet Language Transformations

Z Wikipedie, otevřené encyklopedie
Příklad XSL transformace v editoru jEdit

TransformaceXSLT (Extensible Stylesheet Language Transformations) slouží k převodům zdrojových dat ve formátuXML do libovolného jiného požadovaného formátu, nejčastěji HTML, jiného XML nebo libovolných jiných datových struktur.

Obecný úvod

[editovat |editovat zdroj]

XSLT je transformace, která se provádí pomocí procesoru XSLT. Procesorem je míněn program podporující tuto transformaci. Procesor XSLT může být napsán v libovolném programovacím jazyce nebo využít knihovny XSLT daného programovacího jazyka.

K provedení transformace jsou potřeba dva soubory:

  • První soubor obsahuje zdrojová data, která budou transformována. Struktura tohoto souboru vyjma obecných vlastností XML není blíže specifikována.
  • Druhý soubor obsahuje vzorec pro transformaci a musí být napsán v jazyce XSL.

Vlastnosti XSLT

[editovat |editovat zdroj]

Standardní způsob transformování dat

[editovat |editovat zdroj]

Transformace se provádí pouze na známých datových strukturách. Tyto datové struktury, které a pomocí kterých se bude transformovat, jsou definovány mezinárodnímkonzorciem W3C. Správnost implementace a podpora všech standardem definovaných vlastností je v kompetenci a na zodpovědnosti autorů konkrétního procesoru XSLT.

Mezinárodní podpora

[editovat |editovat zdroj]

Zdrojová data pro transformaci mohou obsahovat libovolné znakové sady, nejen angličtinu, ale též např. znaky s diakritikou nebo znaky asijských písem, popřípadě jejich kombinace. V zdrojovém dokumentu však musí být v záhlaví označeno kódování znaků. V poslední době se často užívá a je doporučeno užívat kódováníUTF-8 pro správnou funkci jiných znaků nežASCII. Většina operačních systémů, programovacích jazyků a editorů je již podporou kódováníUTF-8 vybavena.

Vysoká přístupnost k datům

[editovat |editovat zdroj]

Soubory pro XSLT jsou v textovém formátu, který je čitelný bez žádného zvláštního editoru. Díky tomuto principu je i možné tyto soubory snadno generovat pomocí počítačových programů. Příkladem může být získání dat z databáze či jiných datových struktur, jejich konverze doXML, která je velmi snadná, a následovná aplikace XSLT například pro převod doHTML.

Nezávislost na platformě

[editovat |editovat zdroj]

Procesory nebo též programy pro provedení vlastní transformace existují pro všechny známé platformy používané na PC nebo na serverech. V mnoha programovacích jazycích jsou dnes již implementovány knihovny pro XSLT.

Cíle XSLT

[editovat |editovat zdroj]

Smyslem XSLT je na základě zdrojového souboru a šablony vygenerovat jiný, třetí dokument nebo obecně soubor. Struktura tohoto výstupu XSLT není definována přímo standardem a je závislá na procesoru XSLT. Nejčastěji se používá výstup doHTML neboXML, případně prostý textový formát, označovaný též TXT. Dalšími velmi známými výstupy jsou formátyPDF aRTF. Zcela pochopitelně to však mohou být i libovolné jiné soubory nebo formáty dat.

Procesory XSLT

[editovat |editovat zdroj]

Procesory XSLT se obvykle nachází jako součást programovacích jazyků nebo jako knihovny, které lze dodatečné získat z internetu. Příkladem jsou knihovny Xalan, Saxon, libxslt, přímou implementaci lze nalézt např. v jazycích PHP, Java, C#. Více aktuálních informací na stránkáchkonzorcia W3CXSL a XSLT.

Příklad užití XSLT

[editovat |editovat zdroj]

V následujícím příkladu je reálná ukázka z WWW stránek. Zdrojem dat je diskový soubor XML a transformační soubor, který je též diskový. Výstupem jeHTML, přesněji řečeno dle standarduHTML5. Jako procesor je užit interní procesor XSLT v PHP5 nebo PHP7.Pozn. autora:„Bez bližšího vysvětlení principu uvedu příklad reálného využití XSLT na www stránkách. Nerad bych, aby toto někdo vnímal jako skrytou reklamu.“

Ukázka zdrojového souboru (XML)

[editovat |editovat zdroj]

Zdrojový soubor XML (menu.xml):

<?xml version="1.0" encoding="utf-8"?><!DOCTYPE data SYSTEM "./data/menu.dtd"><?xml-stylesheet type="text/xsl" href="menu.xsl"?><data><rootmenu><menuname="Osobní vozy"ref="./?cat=cars"target=""description=""><itemname="C1"ref="./?cat=car&amp;model=c1"target=""description=""/><itemname="C2"ref="./?cat=car&amp;model=c2"target=""description=""/><itemname="C3"ref="./?cat=car&amp;model=c3"target=""description=""/><itemname="C4"ref="./?cat=car&amp;model=c4"target=""description=""/><itemname="C4 Picasso"ref="./?cat=car&amp;model=c4picasso"target=""description=""/><itemname="Xsara Picasso"ref="./?cat=car&amp;model=xsarapi"target=""description=""/><itemname="Berlingo"ref="./?cat=car&amp;model=berlingo"target=""description=""/><itemname="Leasing"ref="./?cat=leasing"target=""description=""/><itemname="Vozy na prodejně"ref="./?cat=shopcars"target=""description=""/></menu><itemname="Předváděcí vozy"ref="./?cat=showcars"target=""description=""/><itemname="Autobazar"ref="./?cat=oldcars"target=""description=""/><menuname="Další informace"ref="./?cat=other"target=""description=""><itemname="Co je to Acrobat Reader?"ref="./?cat=acrobat"target=""description=""/><itemname="Prodej odtahové služby"ref="./?cat=towsale"target=""description=""/><itemname="Akce zimní pneu 2006"ref="./redir.php?uri=./info/wpneu2006-2.pdf"target="_blank"description=""/><itemname="Akce a novinky!"ref="./?cat=news"target=""description=""/></menu></rootmenu></data>

Ukázka definičního souboru (DTD) - není třeba pro XSLT

[editovat |editovat zdroj]

Následující soubor není nezbytný, je přiložen pro úplnost (menu.dtd):

<!ENTITY apos   '''><!ENTITY quot   '"'><!ENTITY nbsp   ' '><!ENTITY mdash  '&#x2014;'><!ENTITY ldquo  '&#x201C;'><!ENTITY rdquo  '&#x201D;'><!ENTITY % DataContent    "(rootmenu)"><!ENTITY % MenuContent    "(menu | item)*"><!ENTITY % DataAttrs "ref         CDATA       #REQUIRED  name        CDATA       #REQUIRED  target      CDATA       ''  target2     CDATA       #IMPLIED  description CDATA       #REQUIRED"  ><!ELEMENT data       %DataContent;><!ELEMENT rootmenu   %MenuContent;><!ELEMENT menu       %MenuContent;><!ELEMENT item       EMPTY><!ATTLIST data  ><!ATTLIST rootmenu><!ATTLIST menu  %DataAttrs;  ><!ATTLIST item  %DataAttrs;  >

Ukázka transformačního souboru (XSL)

[editovat |editovat zdroj]

Transformace v jazyce XSL, soubor XML (menu.xsl):

<?xml version="1.0" encoding="utf-8"?><xsl:stylesheetversion="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:outputmethod="html"encoding="utf-8"doctype-system="about:legacy-compat"/><xsl:templatematch="/"><htmllang="cs"dir="ltr"><head><metahttp-equiv="content-type"content="text/html; charset=utf-8"/><metahttp-equiv="content-language"content="cs"/><metahttp-equiv="content-style-type"content="text/css"/><titleid="Header_Title">ABC</title><linkrel="StyleSheet"href="./menu.css"type="text/css"media="all"/></head><body><divid="global"><h1>Napis</h1><divid="menu-div"><ulid="myTree"><xsl:apply-templatesselect="*"/></ul></div></div></body></html></xsl:template><xsl:templatematch="rootmenu"><xsl:call-templatename="menu"/></xsl:template><xsl:templatematch="rootmenu | menu"name="menu"mode="root"><xsl:for-eachselect="*"><li><xsl:iftest="position()=last()"><xsl:attributename="class">last</xsl:attribute></xsl:if><a><xsl:attributename="href"><xsl:value-ofselect="@ref"/></xsl:attribute><xsl:iftest="not(@target='')"><xsl:attributename="onclick">window.open(this.href,'<xsl:value-ofselect="@target"/>');return(false);</xsl:attribute></xsl:if><xsl:value-ofselect="@name"/></a><xsl:iftest="name(.)='menu'"><ul><xsl:call-templatename="menu"/></ul></xsl:if></li></xsl:for-each></xsl:template></xsl:stylesheet>

Ukázka aplikace XSLT v jazyce PHP

[editovat |editovat zdroj]

Vlastní transformační proces v jazyce PHP (index.php):

<?phpheader('Content-Type: text/html; charset=utf-8');$doc=newDomDocument();$doc->load("./menu.xml");$doc->validate();$xslt=newDomDocument();$xslt->load("./menu.xsl");$xsltProc=newXsltProcessor();$xsltProc->importStylesheet($xslt);$outputDom=$xsltProc->transformToDoc($doc);echo$outputDom->saveHTML($outputDom);

Ukázka výstupu

[editovat |editovat zdroj]

Výstup zmíněné transformace – v tomto případě data ve formátu HTML:

<!DOCTYPE html><htmllang="cs"dir="ltr"><head><metahttp-equiv="content-type"content="text/html; charset=utf-8"><metahttp-equiv="content-language"content="cs"><metahttp-equiv="content-style-type"content="text/css"><titleid="Header_Title">ABC</title><linkrel="StyleSheet"href="./menu.css"type="text/css"media="all"></head><body><divid="global"><h1>Napis</h1><divid="menu-div"><ulid="myTree"><li><ahref="./?cat=cars">Osobní vozy</a><ul><li><ahref="./?cat=car&amp;model=c1">C1</a></li><li><ahref="./?cat=car&amp;model=c2">C2</a></li><li><ahref="./?cat=car&amp;model=c3">C3</a></li><li><ahref="./?cat=car&amp;model=c4">C4</a></li><li><ahref="./?cat=car&amp;model=c4picasso">C4 Picasso</a></li><li><ahref="./?cat=car&amp;model=xsarapi">Xsara Picasso</a></li><li><ahref="./?cat=car&amp;model=berlingo">Berlingo</a></li><li><ahref="./?cat=leasing">Leasing</a></li><liclass="last"><ahref="./?cat=shopcars">Vozy na prodejně</a></li></ul></li><li><ahref="./?cat=showcars">Předváděcí vozy</a></li><li><ahref="./?cat=oldcars">Autobazar</a></li><liclass="last"><ahref="./?cat=other">Další informace</a><ul><li><ahref="./?cat=acrobat">Co je to Acrobat Reader?</a></li><li><ahref="./?cat=towsale">Prodej odtahové služby</a></li><li><ahref="./redir.php?uri=./info/wpneu2006-2.pdf"onclick="window.open(this.href,'_blank');return(false);">Akce zimní pneu 2006</a></li><liclass="last"><ahref="./?cat=news">Akce a novinky!</a></li></ul></li></ul></div></div></body></html>

Odkazy

[editovat |editovat zdroj]

Související články

[editovat |editovat zdroj]

Externí odkazy

[editovat |editovat zdroj]
ikona
Tento seznam externích odkazů potřebuje upravit.
Můžete pomoci Wikipedii tím, že doplníte relevantní vnější odkazy, rozepíšete stávající, případně odstraníte nevyhovující. Inspiraci k vylepšení může přinést stránkaWikipedie:Externí odkazy.
Pahýl
Pahýl
Tento článek je příliš stručný nebopostrádá důležité informace.
Pomozte Wikipedii tím, že jej vhodněrozšíříte. Nevkládejte všakbez oprávnění cizí texty.
Programovací jazyky
abecední seznam programovacích jazyků
multiparadigmatické

AdaC++Common LispDF#GoOberonPerlPHPPythonRakuRubyRustScalaSwiftTcl (Tk) •Vala

strukturované (procedurální)

AWKCCOBOLDCLForthFortranLuaModula-2 /Modula-3PascalPawnPL/SQL

objektové
funkcionální
dotazovací

LINQSPARQLSQLXQueryXSL (XSLTXSL-FOXPath)

logické
výukové
ezoterické
historické

ALGOLAPLBBASICCPL (BCPL) •JMUMPSPL/ISimula 67SNOBOL

další
skriptovací/strojový kódkompilované/interpretovanéinteraktivní/dávkovéWYSIWYG
Citováno z „https://cs.wikipedia.org/w/index.php?title=Extensible_Stylesheet_Language_Transformations&oldid=22261158
Kategorie:
Skryté kategorie:

[8]ページ先頭

©2009-2026 Movatter.jp