Transformări XSL
XSLT limbaj de programare | |
---|---|
Autor | W3C |
Data de origine | 1998 |
Ultima versiune | 2.0 |
Paradigme | declarativ |
Extensii comune | .xsl, .xml |
Influențată de | DSSSL |
Implementare referință | |
Site-ul web | Transformarea W3C |
În informatică, XSLT (și X tensible S tylesheet L anguage T ransformations) este limbajul de transformare XML , care a devenit un standard web cu recomandarea W3C din 16 noiembrie 1999 . Scopul principal pentru care a fost creat XSLT este de a face posibilă transformarea unui document XML într-un alt document. Acesta derivă direct din limbajul XSL , de fapt fișierele acestui format sunt în esență fișiere text , conțin elemente și atribute și au extensia „.xsl”.
Descriere
Pot exista două cazuri specifice de transformare: de la un document XML la alt document XML (potrivit pentru aplicații specifice) sau de la un document XML la alt format (de exemplu HTML , XHTML , WML și RTF , dar și în orice alt text) numai format). XSLT poate fi utilizat pentru ambele cazuri.
Pentru a genera o transformare XSLT, sunt necesare două fișiere: documentul de transformat (în XML) și un document care conține foaia de stil XSL , care oferă semantica transformării. Foaia de stil XSLT vede un document XML ca o serie de noduri structurate în arbori. Acesta constă dintr-un set de șabloane care conțin regulile de transformare a etichetelor de document XML. În sintaxa XSL, șabloanele sunt elemente, fiecare dintre ele corespunzând atributului de potrivire asociat cu nodul care va fi transformat. Prin urmare, în termeni structurali, foaia de stil XSL specifică transformarea unui arbore de nod într-un alt arbore de nod.
De asemenea, este posibil să adăugați elemente complet noi la documentul transformat sau să nu luați în considerare anumite elemente ale documentului sursă, să reordonați elementele, să faceți elaborări pe baza rezultatului anumitor condiții etc.
Detalii
Un procesor XSLT poate gestiona șapte tipuri de noduri prezente într-un document XML:
- Element rădăcină
- Atribute
- Comentarii
- Elemente
- Spațiu de nume
- Instrucțiuni de procesare (recunoscute prin faptul că etichetele se deschid cu un <? )
- Text
Transformarea are loc printr-un program special numit procesor XSLT , care primește documentul XML ca intrare, din care preia conținutul (fișierul 1), apoi ia structura și regulile de prezentare din foaia de stil (fișierul 2) și produce ieșirea documentul XML transformat (fișierul 3). Procesorul XSLT urmează structura ierarhică a documentului de pornire (1), identifică fiecare nod grație instrucțiunilor conținute în foaia de stil (2), pe care o execută recursiv, nod cu nod. Când procesorul găsește o potrivire, regulile șablonului conținute în (2) sunt aplicate conținutului elementului din (1).
Primul element șablon conține regulile de transformare a elementului rădăcină al fișierului de intrare, în mod normal indicat cu „/”.
Câteva exemple de reguli aplicate de procesorul XSLT:
- Generați o pagină HTML pornind de la date scrise în XML (de exemplu pentru a le prezenta pe acestea din urmă);
- Sortați conținutul nodurilor XML în conformitate cu instrucțiunile furnizate de foaia de stil XSL;
- Ascundeți - sau afișați - informațiile bazate pe foaia de stil;
- Convertiți tabele în grafică sau în imagini Scalable Vector Graphics (SVG).
Un document XML poate fi asociat cu mai multe foi de stil XSL, fiecare dintre acestea generând rezultate diferite. Aceeași procedură se aplică și invers: aceeași foaie de stil poate fi aplicată mai multor documente XML, pentru a produce documente cu conținut diferit, dar format similar.
Exemple XSLT
Exemplu de document XML primit
<? xml version = "1.0"?>
<persoane>
<person username = "JS1" >
<name> John </name>
<family-name> Smith </family-name>
</person>
<person username = "MI1" >
<name> Morka </name>
<family-name> Ismincius </family-name>
</person>
</persons>
Exemplul 1 (transformare XML în XML)
Foaia de stil XSLT oferă șabloane pentru transformarea documentului XML:
<? xml version = "1.0" encoding = "UTF-8"?>
<xsl: stylesheet xmlns: xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" >
<xsl: output method = "xml" indent = "yes" />
<xsl: template match = "/ persons" >
<root>
<xsl: apply-templates select = "person" />
</root>
</ xsl: șablon>
<xsl: template match = "person" >
<name username = "{@username}" >
<xsl: value-of select = "name" />
</name>
</ xsl: șablon>
</ xsl: foaie de stil>
Evaluarea sa are ca rezultat un nou document XML, având o nouă structură:
<? xml version = "1.0" encoding = "UTF-8"?>
<root>
<name username = "JS1" > John </name>
<name username = "MI1" > Morka </name>
</root>
Exemplul 2 (transformarea din XML în XHTML)
Prin procesarea următorului document XSLT
<? xml version = "1.0" encoding = "UTF-8"?>
<xsl: foaie de stil
versiune = "1.0"
xmlns: xsl = "http://www.w3.org/1999/XSL/Transform"
xmlns = "http://www.w3.org/1999/xhtml" >
<xsl: output method = "xml" indent = "yes" encoding = "UTF-8" />
<xsl: template match = "/ persons" >
<html>
<head> <title> Exemplu XML de testare </title> </head>
<corp>
= Persoane =
<ul>
<xsl: apply-templates select = "person" >
<xsl: sort select = "family-name" />
</ xsl: apply-templates>
</ul>
</body>
</html>
</ xsl: șablon>
<xsl: template match = "person" >
<li>
<xsl: value-of select = "family-name" /> <xsl: text> , </ xsl: text> <xsl: value-of select = "name" />
</li>
</ xsl: șablon>
</ xsl: foaie de stil>
cu intrare, documentul XML arată rezultatul în următorul XHTML (indentarea a fost modificată pentru claritate):
<? xml version = "1.0" encoding = "UTF-8"?>
<html xmlns = "http://www.w3.org/1999/xhtml" >
<head> <title> Exemplu XML de testare </title> </head>
<corp>
= Persoane =
<ul>
<li> Ismincius, Morka </li>
<li> Smith, John </li>
</ul>
</body>
</html>
Acest XHTML generează următoarea ieșire atunci când este redat de un browser web :
<? xml-stylesheet href = "example2.xsl" type = "text / xsl"?>
Notă: exemplul text/xsl
este incorect din punct de vedere tehnic în conformitate cu specificațiile W3C, dar este singurul tip de suport acceptat pe scară largă de toate browserele majore.
Elemente conexe
Alte proiecte
- Wikimedia Commons conține imagini sau alte fișiere despre XSL Transformations
linkuri externe
- ( EN ) Document W3C care introduce XSLT 1.0 (datat 16 noiembrie 1999) , pe w3.org .
- ( EN ) Document W3C pe XSLT 2.0 (23 ianuarie 2007) , pe w3.org .
- Ghid complet pentru XSLT , pe giuseppesicari.it (arhivat din adresa URL originală pe 16 mai 2016) .
- Ghid XSLT , pe xml.html.it.
- (RO) Ghid introductiv XSLT , pe w3schools.com. Adus pe 5 mai 2019 (arhivat din original la 14 octombrie 2016) .
- ( RO ) O listă de etichete XSLT cu exemple , pe zvon.org .
- ( RO ) Tutorial XSLT , pe data2type.de .
- ( DE ) Referință XSLT 2.0 , la data2type.de .
- ( RO ) Referință XSLT și XPath , la data2type.de .
- ( EN ) Saxon , un procesor XSLT și XQuery (open source) , la saxon.sourceforge.net .
- ( EN ) EasySaxon , un capăt frontal care face Saxon ușor de utilizat , pe github.com .
Controlul autorității | LCCN (EN) sh2001001708 · GND (DE) 4613222-3 |
---|