jump to navigation

Definir la estructura Persona en XML Junio 10, 2007

Publicado por lineadecodigo en : XML , trackback

Lo que vamos a hacer es definir la estructura persona mediante el lenguaje XML. Para ello tendremos que hacer dos cosas: la primera será definir el DTD (Document Type Definition) donde se declara la estructura de la persona. En segundo lugar crearemos un fichero XML donde tendremos los datos de una persona en particular, los cuales deben de seguir la estructura definida en el anterior DTD.

Definir el DTD
El DTD es un documento que nos ayuda a definir las estructuras que queremos que sean utilizadas en nuestro documento XML, de tal manera que se establece una relación de validación entre el DTD y el documento XML.

Nuestra estructura persona se compone de una serie de elementos. Los elementos serían:

Para definir un elemento utilizaremos la etiqueta ELEMENT, la cual tiene la siguiente estructura:

<!ELEMENT nombre_atributo (tipo)>

En el caso que estemos definiendo elementos que van a contener texto, estos serán del tipo PCDATA. El código será el siguiente:

<!ELEMENT nombre (#PCDATA)>
<!ELEMENT apellido (#PCDATA)>
<!ELEMENT direccion (#PCDATA)>
<!ELEMENT telefono (#PCDATA)>
<!ELEMENT movil (#PCDATA)>
<!ELEMENT foto (#PCDATA)>

Hemos definido los elementos por separado. Ahora tendremos que definir la estructura persona, la cual contiene estos elementos y les aplica una serie de restricciones. Las restricciones son que los apellidos pueden ser más de uno, que tendremos teléfono o móvil y que la fotografía será opcional.

Veamos como contemplar cada una de estas restricciones por separado. Para el caso de que sean 1 o varios elementos, se utiliza el símbolo + detrás del elemento (apellidos+). Para identificar que es un elemento u otro se utiliza el símbolo |, de esta manera la estructura será (telefono | movil). Por último veremos que la opcionalidad se identifica con el símbolo de cierre de interrogación (foto?). Con todo esto, la definición de la estructura persona será la siguiente:

<!ELEMENT persona (nombre,apellido+,direccion,(telefono|movil),foto?)>

En el DTD solamente tendremos elementos, y no incluiremos ni atributos, ni entidades. Todos los elementos, quitando el elemento persona, serán, como hemos visto antes, del tipo #PCDATA.

El archivo lo llamaremos persona.dtd

Crear el documento XML
Una vez definido el DTD pasamos a crear el documento XML. Este le llamaremos persona.xml. En dicho documento lo primero que hay que identificar es que es un documento XML. Para ello tenemos la siguiente cabecera:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

En esta cabecera tenemos 3 atributos:

Lo siguiente será indicar cual es el DTD contra el que vamos a validar el documento. Esto lo hacemos con el DOCTYPE mediante la siguiente línea:

<!DOCTYPE persona SYSTEM "persona.dtd">

Deberemos de tener cuidado de no dejar espacios en blanco entre las interrogaciones y el texto o entre la exclamación inicial y el texto, ya que es este un error muy común de programación. Nos ahorrará muchos quebraderos de cabeza

Después de esto deberemos de insertar los elementos XML acordes a las reglas marcadas en nuestro DTD.

Visualizar el ejemplo | Descargar el código

| Print This Post/Page | 3941 visitas

 Votes | Average: 0 out of 5 Votes | Average: 0 out of 5 Votes | Average: 0 out of 5 Votes | Average: 0 out of 5 Votes | Average: 0 out of 5 (Todavia sin evaluar)
Loading ... Loading ...

Tags:

Comentarios»

1. David - Junio 11, 2007

Un ejemplo sencillo y bien explicado. Lo que me queda sin entender es a qué se refiere la palabra “person” en el DOCTYPE, en el ejemplo que se descarga pone “persona” pero para qué esta cadena de caracteres.

Un saludo.

2. lineadecodigo - Junio 11, 2007

Hola David,

En primer lugar gracias por el comentario. Con respecto al DOCTYPE, la verdad es que había un error, ya que quise poner persona, en vez de person (ya está corregido).

Si bien es verdad que daría igual, ya que este es un identificado del tipo de documento, podríamos ponerle el identificador que más rabia nos de. Si bien, se suele poner uno que se asocie al DTD especificado.


Close
E-mail It