java - uso - que son los elementos vacios xml
¿Cómo incluyo &,<,> etc. en los valores de atributos XML? (2)
Quiero crear un archivo XML que se utilizará para almacenar la estructura de un programa Java. Puedo analizar correctamente el programa Java y crear las etiquetas según sea necesario. El problema surge cuando intento incluir el código fuente dentro de mis etiquetas, ya que el código fuente de Java puede usar una gran cantidad de caracteres de referencia de entidad y caracteres reservados como &
, <
, >
, &
. No puedo crear un XML válido.
Mi XML debería ser así:
<?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>
Así, pero el problema son las expresiones condicionales de if
u otras declaraciones tienen una gran cantidad de &
u otros símbolos reservados en ellos que impiden que se valide el XML. Dado que todos estos datos (código fuente) los proporciona el usuario, tengo poco control sobre ellos. Escapar de los personajes será muy costoso en términos de tiempo.
Puedo usar CDATA para escapar del texto del elemento pero no se puede usar para valores de atributos que contengan expresiones condicionales. Estoy utilizando la gramática Java de Antlr para analizar el programa Java y obtener los atributos y el contenido de las etiquetas. Entonces, ¿hay alguna otra solución para ello?
En los atributos XML debes escapar
" with "
< with <
& with &
si ajusta los valores de los atributos entre comillas dobles ( "
), por ejemplo,
<MyTag attr="If a<b & b<c then a<c, it''s obvious"/>
significado tag MyTag
con atributo attr
con texto If a<b & b<c then a<c, it''s obvious
- nota: no es necesario usar '
para escapar ''
personaje.
Si ajusta los valores de los atributos en comillas simples ( ''
), debería escapar de estos caracteres:
'' with '
< with <
& with &
y puede escribir "
tal cual "
. No se requiere el escape de >
con >
en el texto del atributo, por ejemplo, <ab=">"/>
es un XML bien formado.
Tendras que escapar
" to "
'' to '
< to <
> to >
& to &
para xml.