XSL-transformasjoner

XSLT
programmeringsspråk
ForfatterW3C
Opprinnelsesdato1998
Siste versjon2.0
Paradigmerdeklarativ
Vanlige utvidelser.xsl, .xml
Påvirket avDSSSL
Referanseimplementering
NettstedW3C-transformasjon

Innen datavitenskap er XSLT (og X tensible S tylesheet Språktransformasjoner ) transformasjonsspråket til XML , som ble en nettstandard med en W3C - anbefaling av 16. november 1999 . Hovedformålet som XSLT ble opprettet for er å gjøre det mulig å transformere et XML-dokument til et annet dokument. Det stammer direkte fra XSL -språket , faktisk er filene i dette formatet i hovedsak tekstfiler, inneholder elementer og attributter og har utvidelsen ".xsl".

Beskrivelse

Det kan være to spesifikke tilfeller av transformasjon: fra et XML-dokument til et annet XML-dokument (egnet for spesifikke applikasjoner), eller fra et XML-dokument til et annet format (for eksempel HTML , XHTML , WML og RTF , men også til en hvilken som helst annen tekst- bare format). XSLT kan brukes i begge tilfeller.

For å generere en XSLT-transformasjon kreves det to filer: dokumentet som skal transformeres (i XML) og et dokument som inneholder XSL -stilarket , som gir semantikken for transformasjonen. XSLT-stilarket ser et XML-dokument som en serie trestrukturerte noder. Den består av et sett med maler som inneholder transformasjonsreglene til XML-dokumentkodene. I XSL-syntaks er i templateelementer, som hver tilsvarer attributtet match, knyttet til noden som skal transformeres. I strukturelle termer spesifiserer XSL-stilarket derfor transformasjonen av et nodetre til et annet nodetre.

Det er også mulig å legge til helt nye elementer i det transformerte dokumentet eller ikke ta hensyn til enkelte elementer i kildedokumentet, omorganisere elementene, foreta utdypninger basert på resultatet av visse forhold osv.

Detaljer

En XSLT-prosessor kan håndtere syv typer noder i et XML-dokument:

Transformasjonen skjer gjennom et spesielt program kalt XSLT-prosessor , som mottar XML-dokumentet som input, hvorfra den henter innholdet (fil 1), tar deretter strukturen og presentasjonsreglene fra stilarket (fil 2) og produserer utdataene. det transformerte XML-dokumentet (fil 3). XSLT-prosessoren følger den hierarkiske strukturen til startdokumentet (1), identifiserer hver node takket være instruksjonene i stilarket (2), som den kjører rekursivt, node for node. Når prosessoren finner en match, blir reglene for malen i (2) brukt på innholdet i elementet i (1).

Det første malelementet inneholder transformasjonsreglene til rotelementet til inngangsfilen, vanligvis indikert med "/".

Noen eksempler på regler brukt av XSLT-prosessoren:

Et XML-dokument kan assosieres med flere XSL-stilark, som hver vil generere forskjellige utdata. Den samme prosedyren er også gyldig omvendt: samme stilark kan brukes på flere XML-dokumenter, for å produsere dokumenter med forskjellig innhold, men lignende format.

XSLT-eksempler

Eksempel på et innkommende XML-dokument

<? xml versjon = "1.0"?> <persons> <person brukernavn = "JS1" > <navn> John </name> <family-name> Smith </family-name> </person> <person brukernavn = " MI1 " > <navn> Morka </name> <family-name> Ismincius </family-name> </person> </persons>

Eksempel 1 (XML til XML-transformasjon)

XSLT-stilarket inneholder maler for å transformere XML-dokumentet:

<? xml-versjon = "1.0"-koding = "UTF-8"?> <xsl: stilark xmlns: xsl = "http://www.w3.org/1999/XSL/Transform" versjon = "1.0" > <xsl : utdatametode = "xml" innrykk = "ja" /> <xsl: template match = "/ personer" > <root> <xsl: application-templates select = "person" /> </root> </ xsl: template> <xsl: template match = "person" > <name username = "{@username}" > <xsl: value-of select = "name" /> </name> </ xsl: template> </ xsl: stilark>

Evalueringen resulterer i et nytt XML-dokument, som har en ny struktur:

<? xml version = "1.0" encoding = "UTF-8"?> <root> <name username = "JS1" > John </name> <name username = "MI1" > Morka </name> </root>

Eksempel 2 (XML til XHTML transformasjon)

Ved å behandle følgende XSLT-dokument

<? xml-versjon = "1.0"-koding = "UTF-8"?> <xsl: stilarkversjon = "1.0" xmlns: xsl = "http://www.w3.org/1999/XSL/Transform" xmlns = " http://www.w3.org/1999/xhtml " > <xsl: output method = "xml" indent = "yes" -koding = "UTF-8" /> <xsl: template match = "/ personer" > <html> <head> <title> Eksempel på testing av XML </title> </head> <body> = Personer = <ul> <xsl: application-templates select = "person" > <xsl: sort select = "family-name" /> </ xsl: application-templates> </ul> </body> </html> </ xsl: mal> <xsl: template match = "person" > <li> <xsl: value-of select = "family-name" /> <xsl: text> , </ xsl: text> <xsl: value-of select = "navn " /> </li> </ xsl: mal> </ xsl: stilark>

med input viser XML-dokumentet resultatet i følgende XHTML (innrykket er endret for klarhetens skyld):

<? xml-versjon = "1.0"-koding = "UTF-8"?> <html xmlns = "http://www.w3.org/1999/xhtml" > <head> <title> Eksempel på test av XML </title> </head> <body> = Personer = <ul> <li> Ismincius, Morka </li> <li> Smith, John </li> </ul> </body> </html>

Denne XHTML genererer følgende utdata når den gjengis av en nettleser :

<? xml-stylesheet href = "eksempel2.xsl" type = "tekst / xsl"?>

Merk: Eksemplet text/xsler teknisk feil i henhold til W3C-spesifikasjonene, men det er den eneste multimedietypen som støttes bredt av alle større nettlesere .

Relaterte elementer

Andre prosjekter

Eksterne lenker