Seção 3: Autores

Q 3.21: Quando eu deveria usar CDATA Marked Section?

CDATA é apenas para texto contendo caracteres com aparência de marcação.

Você quase nunca precisará usar as seções CDATA. O mecanismo CDATA foi projetado para permitir que um autor cite fragmentos de texto contendo caracteres de marcação (o suporte de ângulo aberto e o “e” comercial), por exemplo, ao documentar XML (esta FAQ usa as seções CDATA bastante, por motivos óbvios). Uma seção de CDATA desativa o reconhecimento de marcação durante a duração da seção (ele é ativado novamente somente pela seqüência de fechamento de colchetes duplos e um suporte de ângulo próximo).

Conseqüentemente, nada em uma seção CDATA nunca pode ser reconhecido como qualquer coisa a fazer com marcação: é apenas uma série de caracteres opacos, e se você usar uma linguagem de transformação XML como XSLT, qualquer caractere de marcação será transformado em equivalentes de sua entidade de personagem.

Se você tentar, por exemplo, usar:

      Algum texto com <![CDATA[<em>markup</em>]]&gt; nisso.
  

Na expectativa de que a marcação embutida permaneceria intocada, não será: ele apenas produzirá

    Algum texto com &lt;em>markup&lt;/em> nela.
  

Em outras palavras, as seções CDATA não podem preservar a marcação incorporada como marcação. Normalmente, isso é exatamente o que você quer porque essa técnica foi projetada para permitir que pessoas façam coisas como escrever documentação sobre marcação. Não foi projetado para permitir a passagem de pequenos fragmentos de HTML sem falhas falsos, corruptos ou inválidos inseridos dentro do seu próprio XML até um processo subseqüente - porque isso arriscaria invalidar a saída.

Como resultado, você não pode esperar manter a marcação intocada simplesmente porque parecia que estava "escondido" de segurança dentro de uma seção CDATA: não pode ser usado como um escudo mágico para preservar a marcação HTML para uso futuro como marcação, apenas como caracteres.

Leia Como lidar com HTML embutido no meu XML? Também, porque está intimamente relacionado.