Esquemas XSD que permiten caracteres especiales / reservados en la etiqueta del elemento de cadena

StackOverflow https://stackoverflow.com/questions/806191

  •  03-07-2019
  •  | 
  •  

Pregunta

En una etiqueta de elemento de cadena, el analizador XML se confundirá si encuentra los siguientes caracteres

'
"
<
>

& amp;

(es decir, digamos que el nombre de la compañía se ha recuperado de un campo de base de datos, y se ve así: " Smith & amp; Sons ")

La pregunta es: ¿cómo puede diseñar su XSD para ignorar estos caracteres si se encuentran dentro de un elemento?

¿Fue útil?

Solución

No puedes hacer que ignore estos caracteres.

Son inválidos en XML y, por lo tanto, deben escaparse o envolverse en secciones CDATA. No hay forma de que estos caracteres aparezcan en XML a menos que cree el XML utilizando medios incorrectos (a saber: concatenación de cadenas).

Si construye su XML utilizando los medios adecuados (una biblioteca XML de algún tipo), estos caracteres se reemplazan por sus contrapartes con escape XML de forma transparente y ningún analizador se quejará.

Otros consejos

La respuesta es que no.

El creador del contenido XML debe colocarlos en secciones CDATA.

Si extrae " Smith & amp; Hijos & Quot; de la base de datos, se debe escapar cuando se inserta en su XML

p. lo anterior se convertirá en 'Smith & amp; amp; Hijos '

De manera similar para los otros caracteres anteriores.

Cómo sucede esto depende de cómo construyas tu contenido XML. Si usa una API como DOM, esto debería suceder automáticamente. Si está ensamblando su XML a mano, entonces debe preocuparse por esto (y otros problemas como la codificación de caracteres, lo que significa que usar una API es la opción preferible aquí).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top