3.21

Sezione 3: Autori

Q 3.21: Quando dovrei usare una Sezione Marcata CDATA?

CDATA è solo per testo contenente caratteri simili a markup.

 

Non dovresti mai usare Sezioni CDATA. Il meccanismo CDATA è stato progettato per permettere ad un autore di citare frammenti di testo contenenti caratteri markup (la parentesi angolata aperta e l’ampersand), per esempio quando si documenta con XML (questo FAQ usa spesso Sezioni CDATA, per ovvi motivi). Una Sezione CDATA disattiva il riconoscimento del markup per la durata della sezione (viene riattivato solo dalla sequenza di chiusura composta da una doppia parentesi quadra chiusa e una parentesi angolata chiusa).

Di conseguenza, niente in una sezione CDATA potrà mai essere riconosciuto come qualcosa collegato al markup: è solo una stringa di caratteri oscuri, e se usi un linguaggio di trasformazione XML come XSLT, qualsiasi carattere markup sarà trasformato nella propria entità di carattere equivalente.

Se provi ad usare, per esempio:

some text with <![CDATA[<em>markup</em>]]&gt; in it.

nell’aspettativa che il markup rimanga intatto, questo non succederà: stamperà solo

some text with &lt;em>markup&lt;/em> in it.

In altre parole, le Sezioni CDATA  non possono preservare i markup incorporati come markup. Normalmente questo è esattamente ciò che dovresti fare dato che questa tecnica è stata progettata per dare la possibilità alle persone di fare cose come scrivere documentazione sul markup. Non è stato progettato per trasferire piccoli pezzi di HTML incorporato non interpretato non valido, corrotto, o fittizio all’interno del tuo XML attraverso il successivo processo – perché così si rischierebbe di invalidare l’output.

Come risultato non puoi aspettarti di mantenere il markup intatto semplicemente perché sembrava abbastanza ‘nascosto’ all’interno della sezione CDATA: non può essere usato come uno scudo magico per preservare il markup HTML per l’uso futuro come markup, solo come caratteri.

Leggi anche Come posso gestire l’HTML incorporato nel mio XML?, che è estremamente collegato.

Leave a Comment

Your email address will not be published. Required fields are marked *