Lenguaje XML/Sintaxis/Texto completo
Toma de contacto
editarEste es un pequeño ejemplo de un documento XML:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE SYSTEM contacto>
<contacto>
<nombre>Alondra</nombre>
<apellido>Jiménez Frías</apellido>
<tel clase="casa">123 45 67</tel>
<sexo valor="f"/>
<direccion>
<numero>1600</numero>
<calle>Amphitheatre Parkway</calle>
<ciudad>Mountain View</ciudad>
<estado>CA</estado>
<cp>94043</cp>
<pais>Estados Unidos</país>
</dirección>
</contacto>
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
editarPara 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
editarEsta 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:
<páginas><url>google.com</url><title>google</title></páginas>
No así esto:
<páginas><url>google.com<title></url>google</title></páginas>
Elemento raíz
editarEn 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:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE SYSTEM contacto>
<contacto>
<nombre>Alondra</nombre>
<apellido>Jiménez Frías</apellido>
<tel clase="casa">123 45 67</tel>
<sexo valor="f"/>
</contacto>
Pero este no:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE SYSTEM contacto>
<contacto>
<nombre>Alondra</nombre>
<apellido>Jiménez Frías</apellido>
<tel clase="casa">123 45 67</tel>
<sexo valor="f"/>
</contacto>
<contacto>
<nombre>Omar</nombre>
<apellido>Altonar Gamas</apellido>
<tel clase="casa">987 65 43</tel>
<sexo valor="m"/>
</contacto>
Nombre de etiqueta
editarCuando 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:
<elemento>
<etiqueta1>
<mi-etiqueta>
Pero no estos:
<etiqueta nueva>
<2periodo>
Comillas en los atributos
editarTodos 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:
<sexo valor="m"/>
Pero no esto:
<sexo valor=m/>
Espacios en blanco
editarXML 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 |