Transformări XSL

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
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
Diagramă

Î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 :

XHTML redat generat dintr-un fișier de intrare XML și o transformare XSLT.
 <? 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

linkuri externe

Controlul autorității LCCN (EN) sh2001001708 · GND (DE) 4613222-3
Internet Portal internet : accesați intrările Wikipedia care se ocupă de internet