Che cos'è il formato di file XSL?
Un file .xsl è un foglio di stile XSLT - un documento XML in formato testo semplice che contiene regole di trasformazione scritte nel linguaggio XSLT. XSLT (Extensible Stylesheet Language Transformations) è stato standardizzato dal W3C nel novembre 1999; la versione attuale, XSLT 3.0, è arrivata nel 2017. Il foglio di stile non è un dato né un documento finito: è un programma che un processore XSLT applica a un file XML di input per produrre HTML, testo semplice o un altro output XML.
All'interno di un file .xsl, l'elemento radice è <xsl:stylesheet> o <xsl:transform>, dichiarato nel namespace http://www.w3.org/1999/XSL/Transform. Le regole dei template (<xsl:template match="...">) selezionano i nodi dall'albero sorgente; le istruzioni di output come <xsl:value-of>, <xsl:for-each> e <xsl:apply-templates> costruiscono il risultato. L'attributo version sull'elemento radice - 1.0, 2.0 o 3.0 - indica al processore quale livello di linguaggio applicare.
.xsl e .xslt si riferiscono allo stesso tipo di file; .xsl è la grafia più vecchia, dell'era XSLT 1.0, mentre .xslt è diventata più comune con XSLT 2.0 e 3.0. Storicamente l'estensione .xsl copriva anche XSL-FO (formatting objects per l'output PDF), un ramo separato della famiglia XSL ora associato ai file .fo.
Gli usi comuni includono la conversione di feed di dati XML in pagine web leggibili, la trasformazione di file di configurazione tra diversi schemi e la generazione di PDF tramite processori XSL-FO come Apache FOP.
Sicurezza e incolumità
RISCHIO: LOWUn file .xsl è un XML in testo semplice e non contiene codice compilato, quindi leggerne o modificarne uno è sicuro. I rischi reali si presentano a livello di PROCESSORE quando si esegue un foglio di stile o un input NON ATTENDIBILE: XSLT 2.0/3.0 e alcune funzioni di estensione possono leggere/scrivere file o effettuare chiamate di rete (document(), unparsed-text(), funzioni di estensione), e l'elaborazione XML può essere colpita da attacchi XXE/espansione di entità. Pertanto, non eseguire fogli di stile da fonti non attendibili con estensioni o entità esterne abilitate. Per un utente finale che apre semplicemente un file .xsl per leggerlo, non c'è alcun pericolo.
Dettagli del formato
in sintesiProgrammi che aprono file XSL
Dettagli tecnici
specifiche approfondite| Tipo MIME | application/xslt+xml (accettati anche: text/xsl, application/xml, text/xml) |
| Codifica file | UTF-8 per impostazione predefinita; sono consentite UTF-16 e altre codifiche dichiarate nell'XML; un BOM UTF-8 (EF BB BF) può precedere la dichiarazione XML |
| Formato contenitore | Documento XML ben formato |
| Elemento radice | <xsl:stylesheet> o <xsl:transform> nel namespace http://www.w3.org/1999/XSL/Transform |
| Segnalazione versione | attributo version sull'elemento radice: 1.0, 2.0 o 3.0 - seleziona il livello del linguaggio XSLT applicato dal processore |
| Firma del file (magic bytes) | 3C 3F 78 6D 6C («<?xml») all'offset 0; l'identità definitiva richiede l'elemento radice e il namespace XSLT, non un magic number fisso |
| Dimensione tipica del file | 1 KB - 200 KB; i fogli di stile aziendali di grandi dimensioni possono essere più pesanti |
| Modalità di output | HTML, XHTML, testo semplice o XML - selezionate tramite la dichiarazione <xsl:output method="..."> all'interno del foglio di stile |
| Elementi di istruzione principali | <xsl:template>, <xsl:apply-templates>, <xsl:for-each>, <xsl:value-of>, <xsl:if>, <xsl:choose>, <xsl:call-template> |
| Dipendenza XPath | Utilizza espressioni XPath per indirizzare e selezionare i nodi: XPath 1.0 con XSLT 1.0, XPath 2.0 con XSLT 2.0, XPath 3.1 con XSLT 3.0 |
| URI del namespace | http://www.w3.org/1999/XSL/Transform (convenzionalmente legato al prefisso xsl:) |
| Compressione | Nessuna integrata; testo semplice, può essere servito compresso con gzip a livello di trasporto HTTP |
| Supporto processore | xsltproc (libxslt), Saxon (2.0/3.0), Xalan-C/J, MSXML, .NET XslCompiledTransform, motori browser integrati (XSLT 1.0) |
| Supporto piattaforma | Multipiattaforma: Windows, macOS, Linux e qualsiasi ambiente con un processore XSLT conforme |
| Organismo di standardizzazione | W3C (World Wide Web Consortium) |
| Rilasciato | 1999 (XSLT 1.0, W3C Recommendation, November 16, 1999) |
| Ultima versione | XSLT 3.0 (W3C Recommendation, June 8, 2017) |
| Standard aperto | Sì · royalty-free |
| Specifica | www.w3.org |
Conversioni XSL
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file XSL.