icono_twiter icono Facebook
Carlos García Pérez

Técnico especialista en informática de empresa (CEU).

Ingeniero Técnico en Informática de Sistemas (UPM)

Creador de MobileTest, Haaala!, Girillo, toi18n.

Charla sobre desarrollo de aplicaciones en Android.

Ver todos los tutoriales del autor

Fecha de publicación del tutorial: 2009-03-15

Tutorial visitado 23.992 veces Descargar en PDF
Generación de XML Schema (XSD) y DTD a partir de documentos XML

Generación de XML Schema (XSD) y DTD a partir de documentos XML

En el siguiente tutorial, vamos a presentar de una forma rápida una herramienta java que desde mi punto de vista me parece muy interesante. Dicha herramienta se llama Trang y consiste en un simple jar con el que podemos a través de línea de comandos generar XML Schema (XSD) o DTD a partir de un documento XML. Ahorrándonos así un valioso esfuerzo :-).

Otra cosa que permite esta herramienta es convertir un XSD en un DTD y viceversa.

Aquí tienes la página de Trang: Descargar Trang.

Nota: Existen web como http://www.hitsw.com/xml_utilites/ que hacen lo mismo de forma OnLine, pero mi opinión es que Trang afina más y mejor.

A continuación, vamos a realizar un ejemplo de como realizar las tareas anteriormente expuestas:

XML a partir del cual generaremos el XMLSchema y el DTD: persona.xml

Jugando un poco con la aplicación: Generando XSD y DTD.

    
rem "Generamos un XML Schema que valide el documento"
c:\java\jdk1.6.0_11\bin\java -jar trang.jar persona.xml persona.xsd

rem "Generamos un DTD que valide el documento"
c:\java\jdk1.6.0_11\bin\java -jar trang.jar persona.xml persona.dtd

rem "Generamos un DTD a partir de un XML Schema"
c:\java\jdk1.6.0_11\bin\java -jar trang.jar persona.xsd persona2.dtd

rem "Generamos un XML Schema a partir de un DTD"
c:\java\jdk1.6.0_11\bin\java -jar trang.jar persona.dtd persona2.xsd

XMLSchema generado: persona.xsd

Pero claro, no es oro todo lo que reluce, siempre hay que hacer algún retoque. Por ejemplo en la línea 15 vemos que el campo estado civil lo ha generado de tipo NC:name, cuando seguramente querramos una restricción de valores: soltero, casado, ...

No está de más aprender a crear esquemas XML a manita. En el siguiente enlace tienes un tutorial que te enseña a realizarlo a través de algunos ejemplos, eso sí, no es un libro, así que se confia un poco en la intuición del lector (A buen entendedor pocas palabras bastan). Aprendiendo XMLSchema a través de ejemplos.

DTD generado: persona.dtd


<!ATTLIST persona
  xmlns CDATA #FIXED 'http://www.adictosaltrabajo.com'>

<!ELEMENT dni (#PCDATA)>
<!ATTLIST dni
  xmlns CDATA #FIXED 'http://www.adictosaltrabajo.com'>

<!ELEMENT estadoCivil (#PCDATA)>
<!ATTLIST estadoCivil
  xmlns CDATA #FIXED 'http://www.adictosaltrabajo.com'>

<!ELEMENT company (name,url,telefono)>
<!ATTLIST company
  xmlns CDATA #FIXED 'http://www.adictosaltrabajo.com'>

<!ELEMENT url (#PCDATA)>
<!ATTLIST url
  xmlns CDATA #FIXED 'http://www.adictosaltrabajo.com'>

<!ELEMENT telefono (#PCDATA)>
<!ATTLIST telefono
  xmlns CDATA #FIXED 'http://www.adictosaltrabajo.com'>

<!ELEMENT name (#PCDATA)>
<!ATTLIST name
  xmlns CDATA #FIXED 'http://www.adictosaltrabajo.com'>

Referencias

Conclusiones

Desde mi punto de vista aunque existan este tipo de herramientas, es muy importante aprender a realizar esquemas a manita, pues muchas otras tecnologías dependen directamente de este conocimiento, por ejemplo los WSDL que definen los servicios web.

Los XSD son un estándar para estructurar y validar información, ¿qué hay más importante que la información en una aplicación?.

Carlos García Pérez. Creador de MobileTest, un complemento educativo para los profesores y sus alumnos.
cgpcosmad@gmail.com

A continuación puedes evaluarlo:

Regístrate para evaluarlo

Por favor, vota +1 o compártelo si te pareció interesante

Share |
Anímate y coméntanos lo que pienses sobre este TUTORIAL:

Fecha publicación: 2011-07-15-14:16:44

Autor: Thunder

Si lo hubiera visto un día antes...Muy bueno Carlos.

Fecha publicación: 2009-07-18-02:52:45

Autor:

[roberto carlos] hola se ve interesante este tutorial solo que tengo un problema tengo un xml bastante grande y ese xml tiene varios xsd uno dentro de otro que son importados cuando utilizo la api de java jaxb me generan las clases pero cuando las llamo no me devuelven los valores me envia una exception que dice que no tiene memoria suficiente en verdad el xml es bantante grande pero necesito los valores de dicho xml si talvez puedes ayudarme