Espacios en blanco en XML
En un documento XML, los espacios en blanco, las tabulaciones y los retornos de carro pueden ser tratados de un modo especial.
Espacios en blanco en el contenido (texto) de un elemento
EJEMPLO Dado el archivo XML "peliculas.xml":
<?xml version="1.0" encoding="UTF-8"?>
<peliculas>
<pelicula>El discurso del rey</pelicula>
<pelicula>En tierra hostil</pelicula>
<pelicula>Una
mente
maravillosa</pelicula>
</peliculas>
Al visualizar dicho archivo en Google Chrome, se verá algo parecido a:
Esto es debido a que, las tabulaciones, los retornos de carro y varios espacios en blanco contenidos en el texto de los elementos del documento, han sido representados como un único espacio en blanco.
Espacios en blanco en atributos
EJEMPLO De igual modo ocurre con los valores de los atributos. Por ejemplo, dado el archivo "series.xml":
<?xml version="1.0" encoding="UTF-8"?>
<series>
<serie numeros="2 4 6 8"/>
<serie numeros="3
6
9
12 15"/>
</series>
En un navegador web se podrá visualizar:
Espacios en blanco entre elementos
EJEMPLO Obsérvese que, los siguientes documentos XML contienen la misma información, pero, escrita de distinta forma:
<?xml version="1.0" encoding="UTF-8"?>
<datos>
<dato>1</dato>
<dato>2</dato>
<dato>3</dato>
</datos>
<?xml version="1.0" encoding="UTF-8"?>
<datos><dato>1</dato><dato>2</dato><dato>3</dato></datos>
<?xml version="1.0" encoding="UTF-8"?>
<datos><dato>1</dato> <dato>2</dato>
<dato>3</dato></datos>
En todos los casos, en Google Chrome veremos:
Las aplicaciones que hacen uso de documentos XML suelen hacer este tratamiento de las tabulaciones, retornos de carro y espacios en blanco.
Uso del atributo xml:space
EJEMPLO Por otra parte, los elementos de un documento XML pueden contener el atributo predefinido xml:space con el valor "preserve" para indicar que los espacios que aparecen en el contenido (texto) de dicho elemento, y sus sucesores, deben ser preservados:
<clasificacion xml:space="preserve">
1 Fernando Alonso 1:55.341
2 Lewis Hamilton 1:55.729
3 Sebastian Vettel 1:56.122
</clasificacion>
Los únicos valores que admite el atributo xml:space son "preserve" y "default", siendo este último su valor por defecto cuando no se escribe dicho atributo.
El valor "default" indica que la aplicación que haga uso del documento XML es la encargada de decidir cómo tratar los espacios en blanco. Ahora bien, aún indicando el valor "preserve", hay que tener en cuenta que no todos los programas que hacen uso de documentos XML reconocen este atributo.