A maior parte de um documento XML são elementos e texto, mas três outras construções aparecem regularmente, e cada uma tem um trabalho específico. Conhecê-las de imediato impede que sejam lidas como ruído.

Seções CDATA

Uma seção CDATA guarda texto que deve ser tomado literalmente, sem o parser interpretar < e & como marcação. Ela é escrita <![CDATA[ ... ]]>, e tudo entre os colchetes é dado de caractere cru:

<summary><![CDATA[Usa <tags> & símbolos livremente]]></summary>

Sem CDATA, esse conteúdo teria que ser escapado como Usa &lt;tags&gt; &amp; símbolos. CDATA é uma conveniência para blocos que contêm muitos caracteres que de outra forma precisariam de escape, como código embutido ou amostras de marcação. A única coisa que não pode conter é a sequência ]]>, já que é isso que a fecha. Importante: CDATA muda apenas como o texto é escrito, não o que significa: o conteúdo parseado é idêntico à versão escapada.

Comentários

Um comentário é escrito <!-- ... --> e é ignorado como conteúdo. Ele existe para leitores humanos, para anotar ou desabilitar temporariamente parte de um documento. Comentários não podem ser aninhados e não podem conter um hífen duplo -- dentro deles. Como um comentário não é dado, um consumidor bem comportado nunca trata seu texto como parte da informação do documento.

Instruções de processamento

Uma instrução de processamento (PI) carrega uma diretiva para uma aplicação que consome o XML, escrita <?target data?>. O target nomeia para quem a instrução se destina, e o data é o que quer que aquela aplicação entenda. O exemplo clássico é uma associação de folha de estilo: <?xml-stylesheet type="text/css" href="style.css"?>. A declaração XML no topo de um arquivo parece uma PI mas é tecnicamente um caso especial, não uma.

Por que elas são agrupadas

Estas três compartilham um traço comum: nenhuma delas é um elemento, então nenhuma aparece na árvore de elementos como um nó com filhos. Elas ficam ao lado dos elementos como uma espécie de irmãos, anotações e instruções e escapes de texto literal tecidos pelo documento. Quando você está mapeando a estrutura de um documento, ajuda separá-las da hierarquia de elementos: os elementos carregam o modelo de dados, enquanto comentários, PIs e CDATA são, respectivamente, notas, direções e uma conveniência de escrita.