Hvad er XSL-filformatet?
En .xsl-fil er et XSLT-stylesheet - et XML-dokument i almindelig tekst, der indeholder transformationsregler skrevet i XSLT-sproget. XSLT (Extensible Stylesheet Language Transformations) blev standardiseret af W3C i november 1999; den nuværende version, XSLT 3.0, kom i 2017. Stylesheetet er ikke data og ikke et færdigt dokument: det er et program, som en XSLT-processor anvender på en input-XML-fil for at producere HTML, almindelig tekst eller et andet XML-output.
Inden i en .xsl-fil er rodelementet <xsl:stylesheet> eller <xsl:transform>, erklæret i navnerummet http://www.w3.org/1999/XSL/Transform. Skabelonregler (<xsl:template match="...">) vælger noder fra kildetræet; output-instruktioner såsom <xsl:value-of>, <xsl:for-each> og <xsl:apply-templates> opbygger resultatet. version-attributten på rodelementet - 1.0, 2.0 eller 3.0 - fortæller processoren, hvilket sprogniveau der skal anvendes.
.xsl og .xslt henviser til den samme type fil; .xsl er den ældre stavemåde fra XSLT 1.0-æraen, mens .xslt blev mere almindelig med XSLT 2.0 og 3.0. Historisk set dækkede .xsl-filtypen også XSL-FO (formateringsobjekter til PDF-output), en separat gren af XSL-familien, der nu er forbundet med .fo-filer.
Almindelige anvendelser inkluderer konvertering af XML-datafeeds til læsbare websider, transformering af konfigurationsfiler mellem skemaer og generering af PDF-filer via XSL-FO-processorer som f.eks. Apache FOP.
Sikkerhed og tryghed
RISIKO: LOWEn .xsl er XML i almindelig tekst og indeholder ingen kompileret kode, så det er sikkert at læse eller redigere en. De realistiske risici ligger hos PROCESSOREN, når man kører et stylesheet/input, man IKKE HAR TILLID TIL: XSLT 2.0/3.0 og visse udvidelsesfunktioner kan læse/skrive filer eller foretage netværkskald (document(), unparsed-text(), udvidelsesfunktioner), og XML-behandling kan blive ramt af XXE/entitets-ekspansionsangreb. Kør derfor ikke stylesheets fra upålidelige kilder med udvidelser/eksterne entiteter aktiveret. For en slutbruger, der blot åbner en .xsl for at læse den, er der ingen fare.
Formatdetaljer
kort fortaltProgrammer der åbner XSL-filer
Tekniske detaljer
dyb specifikation| MIME-type | application/xslt+xml (også accepteret: text/xsl, application/xml, text/xml) |
| Filkodning | UTF-8 som standard; UTF-16 og andre XML-erklærede kodninger er tilladt; en UTF-8 BOM (EF BB BF) kan gå forud for XML-erklæringen |
| Container-format | Velformet XML-dokument |
| Rodelement | <xsl:stylesheet> eller <xsl:transform> i navnerummet http://www.w3.org/1999/XSL/Transform |
| Versionssignalering | version-attribut på rodelementet: 1.0, 2.0 eller 3.0 - vælger det XSLT-sprogniveau, som processoren anvender |
| Filsignatur (magic bytes) | 3C 3F 78 6D 6C ("<?xml") ved offset 0; definitiv identitet kræver XSLT-rodelementet og navnerummet, ikke et fast magisk nummer |
| Typisk filstørrelse | 1 KB - 200 KB; store virksomheds-stylesheets kan være større |
| Output-tilstande | HTML, XHTML, almindelig tekst eller XML - valgt via <xsl:output method="...">-erklæringen inde i stylesheetet |
| Kerneinstruktionselementer | <xsl:template>, <xsl:apply-templates>, <xsl:for-each>, <xsl:value-of>, <xsl:if>, <xsl:choose>, <xsl:call-template> |
| XPath-afhængighed | Bruger XPath-udtryk til at adressere og vælge noder: XPath 1.0 med XSLT 1.0, XPath 2.0 med XSLT 2.0, XPath 3.1 med XSLT 3.0 |
| Navnerums-URI | http://www.w3.org/1999/XSL/Transform (konventionelt bundet til præfikset xsl:) |
| Komprimering | Ingen indbygget; almindelig tekst, kan leveres gzip-komprimeret på HTTP-transportniveau |
| Processor-understøttelse | xsltproc (libxslt), Saxon (2.0/3.0), Xalan-C/J, MSXML, .NET XslCompiledTransform, indbyggede browsermotorer (XSLT 1.0) |
| Platform-understøttelse | Cross-platform: Windows, macOS, Linux og ethvert miljø med en kompatibel XSLT-processor |
| Standardiseringsorgan | W3C (World Wide Web Consortium) |
| Udgivet | 1999 (XSLT 1.0, W3C Recommendation, November 16, 1999) |
| Seneste version | XSLT 3.0 (W3C Recommendation, June 8, 2017) |
| Åben standard | Ja · royaltyfri |
| Specifikation | www.w3.org |
XSL-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om XSL-filer.