jump to navigation

Definir la estructura Persona en XML Junio 10, 2007

Publicado por lineadecodigo en : XML , 7 comentarios

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:

  1. <!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:

  1. <!ELEMENT nombre (#PCDATA)>
  2. <!ELEMENT apellido (#PCDATA)>
  3. <!ELEMENT direccion (#PCDATA)>
  4. <!ELEMENT telefono (#PCDATA)>
  5. <!ELEMENT movil (#PCDATA)>
  6. <!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:

  1. <!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 documentoXML Para ello tenemos la siguiente cabecera:

  1. <?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:

  1. <!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.

|- Descargar el código
|- Reportar error en el código
|- Foro sobre XML

TheServerSide Java Symposium-Europe Junio 10, 2007

Publicado por lineadecodigo en : Eventos, Java , Hasta ahora 1 comentario

TheServerSide Java SymposiumEntre el 27 y 29 de junio se celebra en Barcelona TheServerSide Java Symposium-Europe, donde la gente de TheServerSide junta un buen elenco de expertos, evangelistas y fundadores de tecnologías orientados a la plataforma Java EE.

(más...)

Plugin Share This Junio 10, 2007

Publicado por lineadecodigo en : Linea de Codigo , Añadir un comenario

Hacía tiempo que tenía pendiente incluir el plugin "Share This" en Linea de Código. Este plugin permite, si te interesa, guardar el post en los principales websites como del.icio.us, google bookmarks, technorati,...

Su creador es Alex King y podéis encontrar su plugins en http://alexking.org/projects/wordpress.

Espero que os sea de utilidad.