Hva er XSL-filformatet?
En .xsl-fil er et XSLT-stilark - et XML-dokument i ren tekst som inneholder transformeringsregler skrevet i språket XSLT. XSLT (Extensible Stylesheet Language Transformations) ble standardisert av W3C i november 1999; den nåværende versjonen, XSLT 3.0, kom i 2017. Stilarket er ikke data og ikke et ferdig dokument: det er et program som en XSLT-prosessor bruker på en inndata-XML-fil for å produsere HTML, ren tekst eller et annet XML-resultat.
Inne i en .xsl-fil er rotelementet <xsl:stylesheet> eller <xsl:transform>, deklarert i navnerommet http://www.w3.org/1999/XSL/Transform. Malregler (<xsl:template match="...">) velger noder fra kildetreet; utdatainstruksjoner som <xsl:value-of>, <xsl:for-each> og <xsl:apply-templates> bygger resultatet. version-attributtet på rotelementet - 1.0, 2.0 eller 3.0 - forteller prosessoren hvilket språknivå som skal brukes.
.xsl og .xslt refererer til samme type fil; .xsl er den eldre skrivemåten fra XSLT 1.0-tiden, mens .xslt ble mer vanlig med XSLT 2.0 og 3.0. Historisk sett dekket .xsl-utvidelsen også XSL-FO (formateringsobjekter for PDF-utdata), en separat gren av XSL-familien som nå er assosiert med .fo-filer.
Vanlige bruksområder inkluderer konvertering av XML-datastrømmer til lesbare nettsider, transformering av konfigurasjonsfiler mellom skjemaer, og generering av PDF-er via XSL-FO-prosessorer som Apache FOP.
Sikkerhet og trygghet
RISIKO: LOWEn .xsl er XML i ren tekst og inneholder ingen kompilert kode, så det er trygt å lese eller redigere en. De reelle risikoene ligger hos PROSESSOREN når man kjører et STILARK/INNDATA MAN IKKE STOLER PÅ: XSLT 2.0/3.0 og enkelte utvidelsesfunksjoner kan lese/skrive filer eller foreta nettverkskall (document(), unparsed-text(), utvidelsesfunksjoner), og XML-prosessering kan rammes av XXE/entitets-ekspansjonsangrep. Kjør derfor ikke stilark fra upålitelige kilder med utvidelser eller eksterne entiteter aktivert. For en sluttbruker som bare åpner en .xsl for å lese den, er det ingen fare.
Formatdetaljer
i et nøtteskallProgrammer som åpner XSL-filer
Tekniske detaljer
dyp spesifikasjon| MIME-type | application/xslt+xml (også akseptert: text/xsl, application/xml, text/xml) |
| Filkoding | UTF-8 som standard; UTF-16 og andre XML-deklarerte kodinger er tillatt; en UTF-8 BOM (EF BB BF) kan forekomme før XML-deklarasjonen |
| Container-format | Velformet XML-dokument |
| Rotelement | <xsl:stylesheet> eller <xsl:transform> i navnerommet http://www.w3.org/1999/XSL/Transform |
| Versjonssignalering | version-attributt på rotelementet: 1.0, 2.0 eller 3.0 - velger XSLT-språknivået prosessoren bruker |
| Filsignatur (magic bytes) | 3C 3F 78 6D 6C («<?xml») ved posisjon 0; endelig identitet krever XSLT-rotelementet og navnerommet, ikke et fast magisk tall |
| Typisk filstørrelse | 1 KB - 200 KB; store bedriftsstilark kan være større |
| Utdatamoduser | HTML, XHTML, ren tekst eller XML - valgt via <xsl:output method="...">-deklarasjonen inne i stilarket |
| Kjerneinstruksjonselementer | <xsl:template>, <xsl:apply-templates>, <xsl:for-each>, <xsl:value-of>, <xsl:if>, <xsl:choose>, <xsl:call-template> |
| XPath-avhengighet | Bruker XPath-uttrykk for å adressere og velge noder: XPath 1.0 med XSLT 1.0, XPath 2.0 med XSLT 2.0, XPath 3.1 med XSLT 3.0 |
| Navnerom-URI | http://www.w3.org/1999/XSL/Transform (konvensjonelt bundet til prefikset xsl:) |
| Komprimering | Ingen innebygd; ren tekst, kan leveres gzip-komprimert på HTTP-transportnivå |
| Prosessorstøtte | xsltproc (libxslt), Saxon (2.0/3.0), Xalan-C/J, MSXML, .NET XslCompiledTransform, innebygde nettlesermotorer (XSLT 1.0) |
| Plattformstøtte | Kryssplattform: Windows, macOS, Linux og alle miljøer med en kompatibel XSLT-prosessor |
| Standardiseringsorgan | W3C (World Wide Web Consortium) |
| Utgitt | 1999 (XSLT 1.0, W3C Recommendation, November 16, 1999) |
| Siste versjon | XSLT 3.0 (W3C Recommendation, June 8, 2017) |
| Åpen standard | Ja · royalty-fri |
| Spesifikasjon | www.w3.org |
XSL-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om XSL-filer.