Che cos'è il formato di file XML?
I file .xml memorizzano dati nel formato Extensible Markup Language, uno standard di testo semplice sviluppato dal W3C. I file XML possono rappresentare qualsiasi struttura dati in testo semplice, rendendoli adatti per l'archiviazione, la condivisione e il trasporto di dati tra applicazioni attraverso Internet.
L'XML utilizza strutture di markup - tag e attributi nidificati - che definiscono le regole che un processo di codifica deve seguire per produrre documenti che siano leggibili sia dalle macchine che dagli esseri umani. È stato progettato come un'implementazione più accessibile di SGML (Standard Generalized Markup Language), semplificata per l'uso sul web. I file iniziano tipicamente con la dichiarazione <?xml version="1.0" encoding="UTF-8"?> e il tipo MIME è application/xml.
I file XML utilizzano la codifica Unicode (UTF-8 per impostazione predefinita) e possono essere aperti e modificati con qualsiasi editor di testo standard. Poiché il formato è auto-descrittivo - ogni elemento è nominato e nidificato all'interno di una chiara gerarchia - i dati possono essere ispezionati senza software dedicato, sebbene l'elaborazione o l'interrogazione programmatica richiedano un parser o un linguaggio di query come XPath.
L'XML è per molti versi simile a .HTML, poiché entrambi i formati utilizzano un linguaggio di markup per rappresentare contenuti strutturati. L'HTML si concentra sulla presentazione e l'interazione delle pagine web, mentre l'XML descrive il contenuto in relazione ai dati stessi. I due formati sono usati insieme in molte applicazioni web. L'XML funge anche da base per standard correlati come gli schemi di validazione .XSD, i fogli di stile di trasformazione .XSL e i feed di syndication .RSS.
Sicurezza e incolumità
RISCHIO: MEDIUMUn file XML è testo semplice e non contiene codice eseguibile, quindi leggerne uno è sicuro. I rischi reali risiedono nel PARSER, non nel file: gli attacchi XML External Entity (XXE) abusano delle dichiarazioni <!DOCTYPE>/<!ENTITY> per leggere file locali o attivare richieste di rete, e l'espansione di entità «billion laughs» può esaurire la memoria (denial of service). Questi problemi rilevano solo quando un software analizza XML non attendibili con entità esterne e l'elaborazione DTD abilitata - i parser moderni li disabilitano per impostazione predefinita. Per un utente finale che apre semplicemente un .xml per leggerlo, non c'è pericolo; la cautela è per gli sviluppatori che elaborano XML non attendibili. Attenzione anche ai file che sembrano «data.xml» ma sono in realtà qualcos'altro rinominato.
Dettagli del formato
in sintesiProgrammi che aprono file XML
Dettagli tecnici
specifiche approfondite| Codifica del file | Solo Unicode; UTF-8 è l'impostazione predefinita quando non è presente alcuna dichiarazione; UTF-16 e UTF-32 sono supportati e devono essere dichiarati nel prologo XML |
| Tipo MIME | `application/xml` (primario, secondo RFC 7303); `text/xml` accettato per compatibilità legacy; dialetti specifici possono registrare il proprio tipo (es. `application/rss+xml`) |
| Firma del file | Nessun numero magico binario fisso; i file si aprono tipicamente con la dichiarazione XML opzionale `<?xml` (hex `3C 3F 78 6D 6C`); un BOM UTF-8 (`EF BB BF`) o un BOM UTF-16 (`FF FE` / `FE FF`) può precederlo |
| Struttura del documento | Gerarchia rigorosa: esattamente un elemento radice; nidificazione illimitata di elementi figli; i tag di apertura possono contenere attributi nominati e tra virgolette; l'intero albero deve essere ben formato |
| Regole di buona formazione | Tutti i tag devono essere chiusi o auto-chiusi; gli elementi non devono incrociarsi nella nidificazione; i valori degli attributi devono essere tra virgolette; cinque entità predefinite (&, <, >, ", ') gestiscono i caratteri riservati |
| Meccanismi di validazione | DTD (Document Type Definition - file `.dtd` interno o esterno, standard più vecchio) e XSD (XML Schema Definition - un file `.xsd` scritto esso stesso in XML, con un sistema di tipi più ricco); Schematron offre una validazione basata su regole |
| Supporto Namespace | Le dichiarazioni `xmlns` e `xmlns:prefix` legano i nomi di elementi e attributi a un URI, prevenendo collisioni quando si combinano vocabolari da più fonti |
| Sezioni CDATA | I blocchi `<![CDATA[...]]>` consentono al testo grezzo contenente <, >, e & di apparire senza l'escape delle entità; utile per incorporare frammenti HTML o codice script |
| Istruzioni di elaborazione | La sintassi `<?target istruzione?>` incorpora direttive specifiche per l'applicazione (es. `<?xml-stylesheet type="text/xsl" href="style.xsl"?>`) al di fuori del modello dati XML |
| Linguaggi di query | XPath 1.0/2.0/3.1 indirizza i singoli nodi all'interno di un documento; XQuery fornisce query in stile SQL su dataset XML; entrambi sono standardizzati dal W3C |
| Trasformazione XSLT | I file `.xml` possono essere trasformati in HTML, testo semplice o altri vocabolari XML a runtime da un processore XSLT che unisce il documento sorgente con un foglio di stile `.xsl` o `.xslt` |
| Sintassi dei commenti | I commenti `<!-- testo -->` possono apparire ovunque al di fuori di un tag; i doppi trattini sono vietati all'interno del corpo del commento; i commenti sono esclusi dal modello dati XML |
| Normalizzazione dei fine riga | I parser conformi normalizzano le sequenze \r\n e \r singole in \n prima dell'elaborazione, garantendo un comportamento coerente dei fine riga su tutte le piattaforme |
| Dichiarazioni di entità | Le entità nominate (&nome;) e i riferimenti a caratteri numerici (&#nnnn; decimale o &#xHHHH; esadecimale) incorporano qualsiasi punto di codice Unicode; le entità personalizzate possono essere dichiarate in un DTD |
| Struttura del prologo | Un documento XML consiste in una dichiarazione XML opzionale, una dichiarazione DOCTYPE opzionale, istruzioni di elaborazione e commenti opzionali, seguiti da esattamente un elemento radice |
| Ecosistema dei dialetti | L'XML è la sintassi di base per XHTML, SVG, RSS, Atom, DOCX (Office Open XML), EPUB, KML e i formati di configurazione usati da Android, Maven, Spring e Java EE |
| Rilasciato | 1998 (XML 1.0 W3C Recommendation, February 10, 1998) |
| Standard aperto | Sì · royalty-free |
| Specifica | www.w3.org |
Conversioni XML
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file XML.