Vad är filformatet XSL?
En .xsl-fil är en XSLT-stilmall - ett XML-dokument i klartext som innehåller transformationsregler skrivna i språket XSLT. XSLT (Extensible Stylesheet Language Transformations) standardiserades av W3C i november 1999; den nuvarande versionen, XSLT 3.0, kom 2017. Stilmallen är inte data och inte ett färdigt dokument: det är ett program som en XSLT-processor tillämpar på en XML-inmatningsfil för att producera HTML, vanlig text eller en annan XML-utdata.
Inuti en .xsl-fil är rotelementet <xsl:stylesheet> eller <xsl:transform>, deklarerat i namnrymden http://www.w3.org/1999/XSL/Transform. Mallregler (<xsl:template match="...">) väljer noder från källträdet; utdatainstruktioner som <xsl:value-of>, <xsl:for-each> och <xsl:apply-templates> bygger resultatet. Attributet version på rotelementet - 1.0, 2.0 eller 3.0 - talar om för processorn vilken språknivå som ska tillämpas.
.xsl och .xslt avser samma typ av fil; .xsl är den äldre stavningen från XSLT 1.0-eran, medan .xslt blev vanligare med XSLT 2.0 och 3.0. Historiskt täckte filändelsen .xsl även XSL-FO (formateringsobjekt för PDF-utdata), en separat gren av XSL-familjen som numera förknippas med .fo-filer.
Vanliga användningsområden inkluderar konvertering av XML-dataflöden till läsbara webbsidor, transformering av konfigurationsfiler mellan scheman och generering av PDF-filer via XSL-FO-processorer som Apache FOP.
Säkerhet & trygghet
RISK: LOWEn .xsl är XML i klartext och innehåller ingen kompilerad kod, så det är säkert att läsa eller redigera en sådan. De faktiska riskerna finns hos PROCESSORN när man kör en OBETRODD stilmall/indata: XSLT 2.0/3.0 och vissa tilläggsfunktioner kan läsa/skriva filer eller göra nätverksanrop (document(), unparsed-text(), tilläggsfunktioner), och XML-bearbetning kan drabbas av XXE/entitetsexpansionsattacker. Kör därför inte stilmallar från obetrodda källor med tillägg eller externa entiteter aktiverade. För en slutanvändare som bara öppnar en .xsl för att läsa den finns ingen fara.
Formatdetaljer
i ett nötskalProgram som öppnar XSL-filer
Tekniska detaljer
djup specifikation| MIME-typ | application/xslt+xml (även accepterat: text/xsl, application/xml, text/xml) |
| Filkodning | UTF-8 som standard; UTF-16 och andra XML-deklarerade kodningar är tillåtna; en UTF-8 BOM (EF BB BF) kan föregå XML-deklarationen |
| Containerformat | Välformat XML-dokument |
| Rotelement | <xsl:stylesheet> eller <xsl:transform> i namnrymden http://www.w3.org/1999/XSL/Transform |
| Versionssignalering | version-attribut på rotelementet: 1.0, 2.0 eller 3.0 - väljer vilken XSLT-språknivå processorn tillämpar |
| Filsignatur (magic bytes) | 3C 3F 78 6D 6C ("<?xml") vid offset 0; definitiv identifiering kräver XSLT-rotelementet och namnrymden, inte ett fast magiskt nummer |
| Typisk filstorlek | 1 KB - 200 KB; stora företagstilmallar kan vara större |
| Utdatalägen | HTML, XHTML, vanlig text eller XML - väljs via deklarationen <xsl:output method="..."> inuti stilmallen |
| Kärninstruktionselement | <xsl:template>, <xsl:apply-templates>, <xsl:for-each>, <xsl:value-of>, <xsl:if>, <xsl:choose>, <xsl:call-template> |
| XPath-beroende | Använder XPath-uttryck för att adressera och välja noder: XPath 1.0 med XSLT 1.0, XPath 2.0 med XSLT 2.0, XPath 3.1 med XSLT 3.0 |
| Namnrymds-URI | http://www.w3.org/1999/XSL/Transform (konventionellt bunden till prefixet xsl:) |
| Komprimering | Ingen inbyggd; klartext, kan levereras gzip-komprimerad på HTTP-transportnivå |
| Processorstöd | xsltproc (libxslt), Saxon (2.0/3.0), Xalan-C/J, MSXML, .NET XslCompiledTransform, inbyggda webbläsarmotorer (XSLT 1.0) |
| Plattformsstöd | Plattformsoberoende: Windows, macOS, Linux och alla miljöer med en kompatibel XSLT-processor |
| Standardiseringsorgan | W3C (World Wide Web Consortium) |
| Släppt | 1999 (XSLT 1.0, W3C Recommendation, November 16, 1999) |
| Senaste version | XSLT 3.0 (W3C Recommendation, June 8, 2017) |
| Öppen standard | Ja · royaltyfri |
| Specifikation | www.w3.org |
XSL-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om XSL-filer.