Skip to content
Cerca

Extensible Markup Language (XML): definizione e controllo

XML (Extensible Markup Language) è un linguaggio di markup testuale che definisce tag personalizzati per strutturare, validare e scambiare dati tra sistemi; si usa ancora per feed, sitemaps, configurazioni e interscambio aziendale.

Linguaggio di marcatura estensibile (XML): basi e applicazioni

Panoramica

Extensible Markup Language (XML) è un formato testuale per rappresentare dati gerarchici usando tag definiti dall'autore. A differenza di HTML, XML non impone un set di tag: crei una struttura che rispecchia il dominio dei dati (ad esempio feed, sitemaps, configurazioni o scambi B2B). XML supporta dichiarazioni di validazione (DTD, XSD, Relax NG), namespace e metadati, ed è ancora usato nei casi in cui la rigidità dello schema, la leggibilità umana e l'interoperabilità sono importanti.

Nel contesto del web, i file XML più visibili sono le sitemap XML e alcuni feed (RSS/Atom). Le sitemap sono un aiuto per la scoperta e l'indicizzazione: forniscono a motori di ricerca e crawler URL e metadati, ma non determinano in modo univoco il posizionamento nei risultati di ricerca. Dal luglio 2024 Google esegue la scansione per Search con Googlebot Smartphone per impostazione predefinita; ciò influisce su come i contenuti collegati dalle sitemap vengono recuperati, ma l'ordine dei risultati dipende da molti segnali oltre alla mera presenza di una sitemap.

Passo per passo

1) Crea il file XML: comincia con la dichiarazione prolog: <?xml version="1.0" encoding="UTF-8"?>. Poi definisci un elemento root che contiene i figli. Esempio minimo: <note><to>Mario</to><body>Ciao</body></note>.

2) Scegli e applica uno schema di validazione se serve: usa DTD per casi semplici, XSD (XML Schema) per tipizzazione forte, o Relax NG per maggior flessibilità. Lo schema aiuta a verificare che i documenti rispettino le aspettative delle applicazioni che li consumeranno.

3) Gestisci namespace quando combini elementi da vocabolari diversi: dichiara prefissi con xmlns e usa nomi qualificati per evitare collisioni.

4) Serializzazione e encoding: salva i file in UTF-8 a meno che non sia richiesto altro. Verifica che il prolog corrisponda all'encoding effettivo del file.

5) Validazione e parsing automatico: integra controlli con strumenti di build o pipeline (ad es. xmllint, librerie di parsing in Java/Python/.NET) per bloccare documenti non validi prima della pubblicazione.

Confronto: XML vs JSON (sintesi)

XML e JSON sono entrambi usati per lo scambio di dati; la scelta dipende dal caso d'uso.

XML — pro: schema robusti (XSD), namespace, metadati nei tag, migliore per documenti gerarchici complessi e casi che richiedono validazione forte. contro: più verboso, parsers più pesanti.

JSON — pro: compatto, nativo per JavaScript e API moderne, parsing rapido. contro: meno adatto quando servono validazioni di tipo complesse o namespace.

Controllare XML: checklist tecnica

**Sintassi well-formed** — dove verificare — passes when il parser non segnala errori di struttura; ad esempio, xmllint restituisce zero errori.

**Validazione rispetto a uno schema (XSD/Relax NG/DTD)** — dove verificare — passes when il documento rispetta lo schema usato dai consumer; usa xmllint --noout --schema per XSD o uno strumento dedicato per Relax NG.

**Encoding** — dove verificare — passes when il prolog (es. <?xml version="1.0" encoding="UTF-8"?>) corrisponde all'encoding reale del file; controlla con un editor o con file command su sistemi Unix.

**Accessibilità via HTTP** — dove verificare — passes when una richiesta HTTP restituisce 200 e Content-Type corretto (ad es. application/xml o text/xml); usa curl per verificare intestazioni e corpo.

Strumenti pratici e comandi

Usa xmllint per validazione e controllo di well-formed: xmllint --noout file.xml e xmllint --noout --schema schema.xsd file.xml. Per verificare l'Hosted XML via HTTP: curl -I https://example.com/file.xml per le intestazioni; curl -L -A "Mozilla/5.0" https://example.com/file.xml per recuperare il corpo completo (ricorda: curl -I restituisce solo le intestazioni).

Per sitemap sul tuo sito: invia o controlla la sitemap tramite Google Search Console (per il dominio che controlli) e usa il rapporto Performance/URL Inspection per verificare l'indicazione di indicizzazione di singole pagine. Per controllare indexing a scopo pubblico, il comando site: può essere un'indicazione ma non è diagnostico definitivo.

Problemi comuni

Entità non escape-ate: caratteri speciali come & devono essere scritti come &. Errore tipico che rende il documento non well-formed.

Mismatch di encoding: il prolog dichiara UTF-8 ma il file è salvato in un altro charset; questo causa parsing fallito o caratteri corrotti.

Namespace gestiti male: elementi con lo stesso nome ma namespace diversi non vengono riconosciuti correttamente dai consumer se i prefissi/non-prefissi non sono coerenti.

Content-Type errato: server che servono XML con Content-Type text/html o senza header possono impedire a client e motori di interpretare correttamente il file. Controlla sempre l'header HTTP Content-Type.

Sitemap indicizzata ma URL non recuperati: una sitemap non garantisce che ogni URL venga indicizzato o che influenzi il ranking; è uno strumento di scoperta e di segnalazione dei cambiamenti alle pagine.

Leggi la guida Technical SEO

Domande frequenti

Che differenza c'è tra "well-formed" e "valid"?

Un documento XML è "well-formed" quando rispetta le regole di sintassi XML (tag chiusi, struttura gerarchica corretta). È "valid" quando, oltre a essere well-formed, rispetta uno schema esterno (XSD/DTD/Relax NG) che ne definisce struttura e tipi.

Posso usare XML per le API moderne?

Sì, ma oggi molte API preferiscono JSON per la leggerezza e la compatibilità con JavaScript. XML resta utile quando servono validazioni robuste, namespace o formati documentali consolidati.

Come verifico che una sitemap XML sia stata letta dai motori di ricerca?

Per il sito che gestisci, controlla Google Search Console: invia la sitemap e usa il rapporto relativo alle sitemap per vedere errori di parsing o URL scansionati. Per domini esterni, usa curl per ispezionare il file e query pubbliche come site: per indicazioni, ricordando che site: non è un check definitivo di indicizzazione.

Qual è il Content-Type corretto per i file XML?

I Content-Type comunemente accettati sono application/xml o text/xml; alcuni servizi potrebbero richiedere specifiche intestazioni o charset espliciti (es. application/xml; charset=UTF-8).

Termini correlati