Wat is het XSL-bestandsformaat?
Een .xsl-bestand is een XSLT-stylesheet - een XML-document in platte tekst dat transformatieregels bevat die zijn geschreven in de XSLT-taal. XSLT (Extensible Stylesheet Language Transformations) werd in november 1999 gestandaardiseerd door het W3C; de huidige versie, XSLT 3.0, verscheen in 2017. De stylesheet is geen data en geen voltooid document: het is een programma dat een XSLT-processor toepast op een XML-invoerbestand om HTML, platte tekst of een andere XML-output te genereren.
Binnen een .xsl-bestand is het root-element <xsl:stylesheet> of <xsl:transform>, gedeclareerd in de namespace http://www.w3.org/1999/XSL/Transform. Template-regels (<xsl:template match="...">) selecteren knooppunten uit de bronstructuur; output-instructies zoals <xsl:value-of>, <xsl:for-each> en <xsl:apply-templates> bouwen het resultaat op. Het version-attribuut op het root-element - 1.0, 2.0 of 3.0 - vertelt de processor welk taalniveau moet worden toegepast.
.xsl en .xslt verwijzen naar hetzelfde type bestand; .xsl is de oudere spelling uit het XSLT 1.0-tijdperk, terwijl .xslt gebruikelijker werd bij XSLT 2.0 en 3.0. Historisch gezien omvatte de .xsl-extensie ook XSL-FO (formatting objects voor PDF-output), een aparte tak van de XSL-familie die nu wordt geassocieerd met .fo-bestanden.
Veelvoorkomende toepassingen zijn het converteren van XML-datastreams naar leesbare webpagina's, het transformeren van configuratiebestanden tussen schema's en het genereren van PDF's via XSL-FO-processors zoals Apache FOP.
Beveiliging & veiligheid
RISICO: LOWEen .xsl is XML in platte tekst en bevat geen gecompileerde code, dus het lezen of bewerken ervan is veilig. De reële risico's liggen bij de PROCESSOR bij het uitvoeren van een NIET-VERTROUWDE stylesheet/invoer: XSLT 2.0/3.0 en sommige extensiefuncties kunnen bestanden lezen/schrijven of netwerkoproepen doen (document(), unparsed-text(), extensiefuncties), en XML-verwerking kan worden getroffen door XXE/entity-expansion aanvallen. Voer daarom geen stylesheets uit van onbetrouwbare bronnen met extensies of externe entiteiten ingeschakeld. Voor een eindgebruiker die alleen een .xsl opent om deze te lezen, is er geen gevaar.
Formaatdetails
in een notendopProgramma's die XSL-bestanden openen
Technische details
diepe specificaties| MIME-type | application/xslt+xml (ook geaccepteerd: text/xsl, application/xml, text/xml) |
| Bestandscodering | Standaard UTF-8; UTF-16 en andere door XML gedeclareerde coderingen zijn toegestaan; een UTF-8 BOM (EF BB BF) kan voorafgaan aan de XML-declaratie |
| Containerformaat | Welgevormd XML-document |
| Root-element | <xsl:stylesheet> of <xsl:transform> in de namespace http://www.w3.org/1999/XSL/Transform |
| Versiesignalering | version-attribuut op het root-element: 1.0, 2.0 of 3.0 - selecteert het XSLT-taalniveau dat de processor toepast |
| Bestandssignatuur (magic bytes) | 3C 3F 78 6D 6C („<?xml”) op offset 0; definitieve identiteit vereist het XSLT-root-element en de namespace, geen vast magisch getal |
| Typische bestandsgrootte | 1 KB - 200 KB; grote enterprise-stylesheets kunnen groter zijn |
| Output-modi | HTML, XHTML, platte tekst of XML - geselecteerd via de <xsl:output method="..."> declaratie in de stylesheet |
| Kerninstructie-elementen | <xsl:template>, <xsl:apply-templates>, <xsl:for-each>, <xsl:value-of>, <xsl:if>, <xsl:choose>, <xsl:call-template> |
| XPath-afhankelijkheid | Gebruikt XPath-expressies om knooppunten te adresseren en te selecteren: XPath 1.0 met XSLT 1.0, XPath 2.0 met XSLT 2.0, XPath 3.1 met XSLT 3.0 |
| Namespace URI | http://www.w3.org/1999/XSL/Transform (conventioneel gebonden aan het prefix xsl:) |
| Compressie | Geen ingebouwd; platte tekst, kan gzip-gecomprimeerd worden verzonden op HTTP-transportniveau |
| Processor-ondersteuning | xsltproc (libxslt), Saxon (2.0/3.0), Xalan-C/J, MSXML, .NET XslCompiledTransform, ingebouwde browser-engines (XSLT 1.0) |
| Platform-ondersteuning | Cross-platform: Windows, macOS, Linux en elke omgeving met een conforme XSLT-processor |
| Standaardeninstantie | W3C (World Wide Web Consortium) |
| Uitgebracht | 1999 (XSLT 1.0, W3C Recommendation, November 16, 1999) |
| Laatste versie | XSLT 3.0 (W3C Recommendation, June 8, 2017) |
| Open standaard | Ja · royaltyvrij |
| Specificatie | www.w3.org |
XSL conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over XSL-bestanden.