CDATA

Da Wikipedia, l'enciclopedia libera.

CDATA (Character data) viene usato in vari ambiti nei linguaggi di markup come SGML o XML. Il termine indica una certa porzione di documento contenente caratteri generici, piuttosto che caratteri rappresentanti dati o una struttura marcata da tag.

Sezioni CDATA in XML[modifica | modifica sorgente]

In un documento XML, una sezione CDATA viene trattata esclusivamente come testo semplice, il parser non interpreta quindi il contenuto come marcatura. Non esiste una differenza semantica tra il testo racchiuso in una sezione CDATA e quello convertito in entità (per esempio, "&" viene rappresentato con & o "<" con <).

Sintassi ed interpretazione[modifica | modifica sorgente]

Una sezione CDATA inizia con:

<![CDATA[

e termina con la prima occorrenza di:

]]>

Tutti i caratteri racchiusi tra queste due sequenze sono interpretati come testo semplice, non markup o entità. Per esempio, in una linea tipo

<mittente>Mario Rossi</mittente>

l'apertura e la chiusura di mittente viene interpretata come marcatura. Tuttavia, se scritto così:

<![CDATA[<mittente>Mario Rossi</mittente>]]>

tutta la stringa verrà trattata come testo e il tag mittente non considerato come marcatura.

Uso delle sezioni CDATA[modifica | modifica sorgente]

Le prime volte che un programmatore scrive un documento XML abusa delle sezioni CDATA, credendo che serva semplicemente a "proteggere" dati.

Le sezioni CDATA sono molto utili per includere codice XML come testo semplice dentro un documento XML. Per esempio, se qualcuno scrive uno libro in XML (formattandolo con XSL) per parlare di XML stesso, per fornire degli esempi di codice, deve racchiuderli necessariamente dentro delle sezioni CDATA. Tuttavia, una sezione CDATA non può contenere la stringa "]]>" - questo problema può essere tuttavia aggirato spezzando le parentesi dal simbolo maggiore, come in questo esempio:

 <![CDATA[]]]]><![CDATA[>]]>

CDATA nelle DTD[modifica | modifica sorgente]

CDATA come tipo[modifica | modifica sorgente]

Nei file Document Type Definition (DTD), ad un attributo può essere assegnato il tipo CDATA: il valore assegnato sarà trattato come testo e sarà quindi possibile inserire, senza errori di parsing, caratteri ed entity. Per esempio, se una DTD XML contiene

 <!ATTLIST stringa spiegazione CDATA #IMPLIED>

vuol dire che gli elementi chiamati stringa potrebbero avere un attributo chiamato spiegazione di tipo CDATA. Un esempio valido può essere questo:

 <stringa spiegazione="1 &amp; 2 sono &lt; di &#51;">

e un parser XML interpreterebbe il valore dell'attributo spiegazione come "1 & 2 sono < di 3".

Collegamenti esterni[modifica | modifica sorgente]

W3C: Sintassi CDATA