Como incluo &, <,> etc nos valores de atributo XML

Eu quero criar um arquivo XML que será usado para armazenar a estrutura de um programa Java. Consigo analisar com êxito o programa Java e criar as tags, conforme necessário. O problema surge quando tento incluir o código-fonte nas minhas tags, pois o código-fonte Java pode usar um grande número de referências de entidades e caracteres reservados como&, < ,> , &. Não consigo criar um XML válido.

Meu XML deve ficar assim:

<?xml version="1.0"?>
<prg name="prg_name">
  <class name= "class_name>
    <parent>parent class</parent>
      <interface>Interface name</interface>
.
.
.
      <method name= "method_name">
        <statement>the ordinary java statement</statement>
        <if condition="Conditional Expression">
          <statement> true statements </statement>
        </if>
        <else>
          <statement> false statements </statement>
        </else>
        <statement> usual control statements </statement>
 .
 .
 .
      </method>
    </class>
 .
 .
 .
 </prg>

Assim, mas o problema são expressões condicionais deif ou outras instruções têm muito& ou outros símbolos reservados, o que impede a validação do XML. Como todos esses dados (código fonte) são fornecidos pelo usuário, tenho pouco controle sobre eles. Escapar dos caracteres será muito caro em termos de temp

Eu posso usar o CDATA para escapar do texto do elemento, mas não pode ser usado para valores de atributos que contêm expressões condicionais. Estou usando Antlr Gramática Java para analisar o programa Java e obter os atributos e o conteúdo das tags. Então, existe alguma outra solução alternativa para isso?

questionAnswers(2)

yourAnswerToTheQuestion