Ultimo Aggiornamento: 25 marzo, 2025

Cos’è XML?
XML (Extensible Markup Language) è un linguaggio di markup e un formato di file usato per memorizzare, trasmettere e ricostruire dati. Fornisce un approccio strutturato alla codifica delle informazioni, rendendole sia leggibili dall’uomo che dal computer.
Caratteristiche Principali di XML
1. Definito da Standard Aperti
- Stabilito dal World Wide Web Consortium (W3C) nel 1998 sotto le Specifiche XML 1.0.
- Segue regole rigide per garantire che i dati siano strutturati e facili da interpretare.
2. Obiettivi di Progettazione
- XML è progettato con semplicità, generalità e usabilità attraverso diverse piattaforme.
- Utilizza un formato basato su testo, rendendolo facile da leggere e modificare.
3. Supporto Unicode
- XML supporta Unicode, permettendo di memorizzare e processare testi in più lingue.
4. Versatilità
- Creato inizialmente per i documenti, XML è ora ampiamente usato per la rappresentazione dei dati in vari domini, inclusi servizi web, API, e file di configurazione.
5. Schema e API
- Le strutture XML possono essere definite usando Document Type Definition (DTD), XML Schema (XSD), o Relax NG.
- Varie API, come DOM (Document Object Model) e SAX (Simple API for XML), permettono l’elaborazione XML.
6. Usi Comuni di XML
- Scambio di dati tra diversi sistemi (e.g., servizi web, API).
- File di configurazione nelle applicazioni software.
- Memorizzazione di informazioni strutturate (e.g., feed RSS, grafica SVG, formati di documenti come DOCX).
- Sviluppo web (e.g., XHTML, SOAP, applicazioni basate su AJAX).
Panoramica su XML
1. Scopo Principale di XML: Serializzazione
La serializzazione in XML significa:
- Memorizzare i dati in un formato strutturato.
- Trasmettere dati tra diversi sistemi.
- Ricostruire dati in una forma utile.
Quando due sistemi devono scambiarsi informazioni, XML fornisce un formato di file standardizzato per l’interoperabilità. Agisce come una “lingua franca” per lo scambio di dati strutturati.
2. XML come Linguaggio di Markup
XML è un linguaggio di markup, il che significa che:
- Etichetta i dati con tag per una struttura chiara.
- Organizza informazioni gerarchicamente.
- Classifica dati con metadati.
Esempio:
<book>
<title>XML Basics</title>
<author>John Doe</author>
</book>
Qui, <book>
, <title>
, e <author>
sono tag che definiscono elementi di dati.
3. XML Schema (XSD) e Validazione
Un XML Schema (XSD) definisce le regole strutturali per i documenti XML.
I documenti XML possono essere:
- Ben formati → Seguono le regole sintattiche di base (nidificazione corretta, chiusura corretta dei tag).
- Validi → Conformi alle regole dello schema (elementi obbligatori, tipi di dati corretti).
Esempio di una Regola XSD:
<xs:element name="title" type="xs:string"/>
Questo garantisce che <title>
contenga un valore stringa.
4. Tipi di Media XML (RFC 7303)
L’IETF RFC 7303 definisce i tipi di media XML per la trasmissione dei dati:
- application/xml → Dati XML standard.
- application/xml-external-parsed-entity → Entità XML analizzate.
- application/xml-dtd → Documenti DTD XML.
Per i formati basati su XML, si utilizza il suffisso +xml (e.g., image/svg+xml
per le immagini SVG).
5. XML nelle Applicazioni di Rete (RFC 3470 / IETF BCP 70)
L’IETF BCP 70 (RFC 3470) delinea le migliori pratiche per l’uso di XML nelle applicazioni basate su rete, garantendo un’interoperabilità dei dati senza soluzione di continuità tra i sistemi.
1. Applicazioni di XML
XML è un linguaggio di markup flessibile progettato per lo scambio di dati su Internet. La sua sintassi ha influenzato numerosi formati di documenti e protocolli di comunicazione, rendendolo una tecnologia fondamentale in molte industrie.
Formati Comuni Basati su XML:
- Feed Web: RSS, Atom
- Documenti Office: Office Open XML, OpenDocument
- Grafica e Modelli 3D: SVG, COLLADA
- Tecnologie Web: XHTML
- Protocolli di Scambio Dati: SOAP, XMPP
- AJAX: Usa XML per lo scambio di dati asincrono
Standard del Settore che Usano XML:
- Sanità: HL7 (Health Level 7)
- Industria del Turismo: OpenTravel Alliance
- Finanza: FpML (Financial products Markup Language)
- Immobiliare e Mutui: MISMO
- Scambio di Dati Governativi: National Information Exchange Model
XML nella Scienza:
In meteorologia, XML è usato per la rappresentazione dei dati meteorologici operativi seguendo gli standard IWXXM. Allo stesso modo, Darwin Information Typing Architecture (DITA) è uno standard XML ampiamente usato nell’editoria.
2. Terminologia Chiave in XML
Comprendere la terminologia di base in XML è cruciale per lavorare efficacemente con i documenti XML.
Carattere
Un documento XML è una sequenza di caratteri Unicode. XML 1.1 consente quasi tutti i caratteri Unicode, eccetto il carattere Null (U+0000
), che è strettamente proibito.
Processore e Applicazione
- Il processore XML (o parser) legge e analizza il markup XML.
- L’applicazione riceve i dati strutturati dal processore e agisce su di essi.
Markup e Contenuto
XML divide i caratteri in markup e contenuto:
- Markup: Include elementi, attributi e entità (e.g.,
<tag>
e&
). - Contenuto: I dati effettivi all’interno degli elementi.
- Sezioni CDATA: Consentono testo che non dovrebbe essere interpretato come markup, racchiuso all’interno di
<![CDATA[ ... ]]>
.
Tag e Elementi
- Tag: Costrutti di markup racchiusi in
< >
.<section>
(Tag d’apertura)</section>
(Tag di chiusura)<line-break />
(Tag di elemento vuoto)
- Elementi: Componenti logici definiti dai tag.
- Esempio:
<greeting>Hello, world!</greeting>
- Esempio:
Attributi
Gli attributi forniscono metadati per gli elementi usando coppie nome-valore. Esempio:
<img src="image.jpg" alt="Description" />
src="image.jpg"
ealt="Description"
sono attributi dell’elemento<img>
.
3. Caratteri e Scaping in XML
Caratteri Unicode Validi in XML
I documenti XML permettono solo specifici caratteri Unicode per garantire una corretta analisi.
Caratteri Consentiti in XML 1.0:
- Caratteri di controllo:
U+0009
(Tab)U+000A
(Avanzamento Riga)U+000D
(Ritorno Carrello)
- Caratteri di testo:
U+0020–U+D7FF
U+E000–U+FFFD
U+10000–U+10FFFF
Miglioramenti di XML 1.1:
- Consente tutti i caratteri di controllo U+0001–U+001F ma richiede che siano scappati.
- U+0000 (Carattere Null) rimane proibito.
4. Codifica in XML
Codifiche XML Comuni:
XML supporta le codifiche basate su Unicode, inclusi:
- UTF-8 (Consigliata come predefinita)
- UTF-16 (Deve essere supportata da tutti i parser XML)
- ASCII, ISO-8859-X (Codifiche legacy)
Dichiarazione di Codifica in XML:
L’intestazione XML può specificare la codifica:
<?xml version="1.0" encoding="UTF-8"?>
- Se non è specificata una codifica, si presuppone UTF-8.
- UTF-16 richiede un BOM (Byte Order Mark) per un corretto rilevamento.
5. Scaping dei Caratteri Speciali in XML
Poiché la sintassi XML riserva alcuni caratteri, devono essere scappati per evitare conflitti.
Entità XML Predefinite:
Carattere | Forma Scappata | Esempio |
---|---|---|
< (Meno di) | < | I <3 XML → I <3 XML |
> (Maggiore di) | > | x > y → x > y |
& (E commerciale) | & | AT&T → AT&T |
' (Apice) | ' | "O'Reilly" → O’Reilly |
" (Virgolette) | " | She said "hello" → She said “hello” |
Riferimenti Numerici ai Caratteri:
Per i caratteri speciali che non possono essere digitati, usa riferimenti numerici:
- Decimale:
中 <!-- Carattere cinese "中" -->
- Esadecimale:
中 <!-- Carattere cinese "中" -->
- Esempio:Visualizzato come: I <3 Jörg
<message>I <3 Jörg</message>
Gestione dei Dati Binari:
L’XML non supporta i dati binari grezzi. Invece, usa la codifica Base64.
6. Commenti in XML
Sintassi del Commento XML:
<!-- Questo è un commento XML valido -->
Regole per i Commenti XML:
- Non possono comparire prima della dichiarazione XML.
- Non possono contenere
--
(doppio trattino) all’interno del commento. - I riferimenti alle entità sono ignorati nei commenti.
Esempio:
<!-- Questo è un commento con simboli < e & -->
Conclusione
XML è una tecnologia essenziale per lo scambio di dati strutturati, alimentando feed web, documenti office, dati scientifici e standard del settore. Comprendere la terminologia chiave di XML, le regole di codifica e i meccanismi di scaping garantisce documenti XML ben strutturati che funzionano correttamente attraverso diversi sistemi.
Seguendo le migliori pratiche di codifica e scaping dei caratteri, gli sviluppatori possono evitare errori di parsing e garantire la compatibilità nelle applicazioni basate su XML.