# Lenguaje XML/Sintaxis/Texto completo

* Si imprimes esta página, o eliges la opción de Vista preliminar de impresión de tu navegador, verás que desaparecen este cuadro y los elementos de navegación de arriba y de la izquierda, pues no son útiles en una versión impresa.
* Pulsando antes en Refrescar esta página te asegurarás de obtener los últimos cambios del libro antes de imprimirlo.
* Para más información, puedes ver Wikilibros:Versión para imprimir.

# Toma de contacto

Este es un pequeño ejemplo de un documento XML:
El ejemplo anterior podría ser una tarjeta de contacto. Como se puede ver, tiene varios elementos: etiquetas, atributos, un prólogo, etc.
Para empezar, el elemento <contacto> contiene a todos los demás elementos. El elemento <nombre> contiene texto. El elemento <tel> también, pero además contiene un atributo (clase), el cual contiene un valor (casa). Si vamos más abajo, también veremos un elemento vacío (<sexo>), el cual contiene un atributo (valor). Por último, vemos al elemento <dirección>, el cual no contiene texto como los demás elementos, sino que contiene otros elementos.
Como se puede ver, un documento XML tiene varios tipos de elementos (y más que no vimos aquí). Éstos se irán viendo conforme se vayan avanzando en las lecciones de este wikilibro.

# Normas básicas

Para crear un documento XML bien-formado, se deben de respetar algunas normas básicas de la sintaxis de este lenguaje:

## Estructura jerárquica de los elementos

Esta es la más importante: dado que XML es para estructurar datos, todos los elementos deben de estar dentro de otro elemento definido, por ello, un elemento debe estar correctamente incluido dentro de otro de manera jerárquica. Si esto no es así, la jerarquía se rompe y el documento no estará bien-formado. Por ejemplo, esto es correcto:
No así esto:

## Elemento raíz

En los documentos XML, debe de haber un solo elemento raíz. Esto quiere decir que solo debe haber un elemento que contenga a todos los demás. Este elemento debe llamarse según lo hayamos especificado es la declaración DTD. Por ejemplo, este código sería válido:
Pero este no:

## Nombre de etiqueta

Cuando se crea un elemento en XML, este debe de llevar un nombre. Según la especificación 1.0, los nombres deben de cumplir las siguientes características:
* Los nombres deben empiezan una letra o uno o más signos de puntuación.
* Pueden contener —pero no necesariamente empezar con ello— letras, números, guiones, rayas, dos puntos o puntos.
* Los nombres que empiezan con la cadena "xml", en ninguna de sus variantes mayúsculas y minúsculas, no se pueden utilizar para nombrar un elemento, ya que estos se reservan para la estandarización de esta o de futuras versiones de XML.
* Los demás caracteres, como espacios en blanco, no se pueden usar.
Por ejemplo, estos nombres son válidos:
Pero no estos:

## Comillas en los atributos

Todos los valores de los atributos deben de estar encerrados entre comillas simples o dobles (""). En otros lenguajes de marcado, como HTML, se tolera el no encerrar un atributo entre comillas, en XML no. Por ejemplo, esto es válido:
Pero no esto:

## Espacios en blanco

XML permite utilizar un grupo de caracteres conocidos como «espacios en blanco» para separar los elementos, y permitir una mejor legibilidad del código. En general son ignorados, aunque no dentro de un elemento de texto o mixto. Estos caracteres son los siguientes:
| Caracter | Código Unicode |
| Espacios | U+032 |
| Tabuladores | U+009 |
| Retornos de carro | U+013 |
| Saltos de línea | U+010 |

# Espacios de nombre

Lenguaje XML/Sintaxis/Espacios de nombre