XSD (XML Schema Definition)

XSD (XML Schema Definition) è una raccomandazione del World Wide Web Consortium (W3C) che specifica come descrivere formalmente gli elementi in un documento XML (Extensible Markup Language). Questa descrizione può essere utilizzata per verificare che ogni elemento di contenuto in un documento aderisca alla descrizione dell'elemento in cui il contenuto deve essere posizionato. XSD 1.1 è diventato uno standard W3C approvato nell'aprile 2012.

XSD può essere utilizzato anche per generare documenti XML che possono essere trattati come oggetti di programmazione. Inoltre, una varietà di strumenti di elaborazione XML può anche generare documentazione leggibile dall'uomo, il che semplifica la comprensione di documenti XML complessi.

In generale, uno schema è una rappresentazione astratta delle caratteristiche di un oggetto e della relazione con altri oggetti. Uno schema XML rappresenta l'interrelazione tra gli attributi e gli elementi di un oggetto XML (ad esempio, un documento o una parte di un documento). Il processo di creazione di uno schema per un documento implica l'analisi della sua struttura e la definizione di ogni elemento strutturale incontrato. Ad esempio, uno schema per un documento che descrive un sito Web definirà un elemento del sito Web, un elemento di una pagina Web e altri elementi che descrivono le possibili divisioni di contenuto all'interno di qualsiasi pagina di quel sito. Proprio come in XML e HTML, gli elementi sono definiti all'interno di un insieme di tag.

XSD presenta diversi vantaggi rispetto ai precedenti linguaggi XML Schema, come DTD (Document Type Definition) o SOX (Simple Object XML). XSD è scritto in XML, il che significa che non richiede l'elaborazione intermedia da parte di un parser. Altri vantaggi includono l'auto-documentazione, la creazione automatica dello schema e la possibilità di essere interrogato tramite XML Transformations (XSLT).

Ci sono anche molte sfide e limitazioni con XSD. Alcuni detrattori hanno sostenuto che è inutilmente complesso, manca di una descrizione matematica formale e ha un supporto limitato per contenuti non ordinati.