Estoy creando documentos XML con valores obtenidos de un DB. Ocasionalmente, debido a una implementación heredada, retiraré un valor que contiene un carácter que no es válido cuando no se ha escapado correctamente (&, por ejemplo).¿Cuándo CDATA vs. Escape & Vice Versa?
Entonces la pregunta es, ¿debería CDATA o Escape? ¿Son ciertas situaciones más apropiadas para una frente a la otra?
Ejemplos:
<Email>foo&[email protected]</Email>
que se inclinaba hacia CDATA aquí.
<Name>Bob & Tom</Name>
Me inclino por escapar aquí.
Quiero evitar a ciegas CDATA'ing cada vez, pero desde una perspectiva de rendimiento, parece que esa es la opción lógica. Eso siempre será más rápido que buscar un char inválido, y si existe, entonces envuelva.
¿Pensamientos?
CDATA también es más compatible con la red para cadenas más grandes que deben ser escapadas, por lo que debería usarse en la mayoría de los casos en que el archivo XML se transmitirá a través de una red. –