Eu queria saber se existe alguma maneira de escapar de um token final CDATA ( ]]>
) dentro de uma seção CDATA em um documento xml. Ou, de maneira mais geral, se houver alguma sequência de escape para uso em um CDATA (mas, se existir, acho que provavelmente só faria sentido escapar dos tokens iniciais ou finais).
Basicamente, você pode ter um token de início ou fim incorporado em um CDATA e dizer ao analisador para não interpretá-lo, mas tratá-lo como apenas mais uma sequência de caracteres.
Provavelmente, você deve refatorar sua estrutura xml ou seu código se tentar fazer isso, mas mesmo que eu trabalhe com xml diariamente nos últimos 3 anos ou mais e nunca tenha tido esse problema, Fiquei me perguntando se era possível. Apenas por curiosidade.
Editar:
Além de usar a codificação html ...
CDATA
foi projetado para permitir qualquer coisa : eles são usados para escapar de blocos de texto contendo caracteres que, de outra forma, seriam reconhecidos como marcação Isso CDATA
também implica, já que também é marcação. Mas, na verdade, você não precisa da codificação dupla que eu impliquei. ]]>
é um meio aceitável de codificar a CDEnd
dentro de a CDATA
.
>
como>
no CData para garantir que o incorporado]]>
não seja analisado como CDEnd. Significa simplesmente que é inesperado e que também&
deve ser primeiro codificado&
para que os dados possam ser decodificados corretamente. Os usuários do documento também devem saber decodificar esse CData. Não é algo inédito, pois parte do objetivo do CData é conter o conteúdo que um consumidor específico entende como lidar. Não se pode esperar que esse CData seja interpretado adequadamente por qualquer consumidor genérico.