Análisis XML y manejo de espacios en blanco

Durante el análisis XML explícito, puede controlar la conservación o eliminación de los caracteres de espacio en blanco de los límites al almacenar los datos en la base de datos.

De acuerdo con el estándar XML, los espacio en blanco son los caracteres de espacio (U+0020), los retornos de carro (U+000D), saltos de línea (U+000A) o tabulaciones (U+0009) que están en el documento para mejorar la legibilidad. Cuando alguno de estos caracteres aparece como parte de una serie de texto, no se considera un espacio en blanco.

Un espacio en blanco de límite es un carácter de espacio en blanco que aparece entre elementos. Por ejemplo, en el documento siguiente, los espacios entre <a> y <b> y entre </b> y </a> son espacios en blanco de límite.
<a> <b> and between </b> </a>

Con la invocación explícita de XMLPARSE, se utiliza la opción STRIP WHITESPACE o PRESERVE WHITESPACE para controlar la conservación del espacio en blanco de límite. El valor predeterminado es eliminar el espacio en blanco de límite.

El estándar XML especifica un atributo xml:space que controla la eliminación o la conservación del espacio en blanco en los datos XML. Los valores posibles son preserve o default. El servidor de base de datos Db2 ignora cualquier otro valor. El valor " preserve " hace que se conserven los espacios en blanco de los límites dentro de un elemento, independientemente de la configuración de la aplicación, como la configuración de espacios en blanco XMLPARSE. El valor " default " hace que se utilicen los ajustes de la aplicación para el manejo de los espacios en blanco de los límites. xml:space anulan cualquier configuración de espacios en blanco para el análisis XML implícito o explícito, excepto para el procesamiento de fin de línea. Para el procesamiento de fin de línea, cuando un carácter de retorno de carro y un carácter de avance de línea aparecen juntos, se reemplazan por un carácter de avance de línea. Un carácter de retorno de carro que aparece solo se sustituye por un carácter de avance de línea. Estos reemplazos ocurren, independientemente del atributo xml:space .

Por ejemplo, en el siguiente documento, los espacios inmediatamente antes y después de <b> se conservan siempre, independientemente de las opciones de análisis XML, porque los espacios están dentro de un nodo con el atributo xml:space="preserve":
<a xml:space="preserve"> <b> <c>c</c>b </b></a>
Sin embargo, en el siguiente documento, los espacios inmediatamente antes y después de <b> pueden controlarse mediante las opciones de análisis XML, porque los espacios están dentro de un nodo con el atributo xml:space="default":
<a xml:space="default"> <b> <c>c</c>b </b></a>