You are on page 1of 11

Programación Avanzada

Universidad del Aconcagua

Programación Avanzada
XML y JDOM

Esp. Ing. César Aranda


unidatos@gmail.com

Licenciatura en Informática y Desarrollo de Software


v.2014

Generalidades de XML
 eXtensible Markup Language
 Estándar W3C para la creación de lenguajes de
“etiquetas”
 Descripción de la información (de los datos)
 Independiente de la aplicación
 Subconjunto de SGML
 Etiquetado semántico, no de estilo
 Gran problema de HTML

Ing. César Omar Aranda 2

Ing. César Omar Aranda 1


Programación Avanzada
Universidad del Aconcagua

Componentes de Documento XML


 Elementos
 Delimitados por etiquetas

 Atributos
 Contenidos en las etiquetas

 Entidades
 Permiten referirnos a elementos externos

 Componentes avanzados
 Secciones CDATA y Processing Instructions
Ing. César Omar Aranda 3

Normas Básicas (1)


 XML es “case sensitive”
 Todos los tags deben cerrarse correctamente.
 Todos los elementos han de anidarse
correctamente.
 La primera línea es la declaración XML:
 <?xml version=“1.0” encoding=“utf-8” standalone=“no”?>
 Ha de existir siempre un elemento raíz.
 Los valores de los atributos deben estar
delimitados por comillas dobles.

Ing. César Omar Aranda 4

Ing. César Omar Aranda 2


Programación Avanzada
Universidad del Aconcagua

Normas Básicas (2)


 En atributos booleanos, su valor debe
explicitarse de manera redundante
 Los espacios en blanco se preservan
 Los comentarios se marcan como en HTML
 Los nombres de los elementos
 sólo pueden empezar por una letra o guión bajo,
 pueden contener letras, dígitos, guión, guión bajo y
punto, por ende no pueden contener espacios,
 no pueden empezar por las letras «xml» (o
combinación equivalente).

Ing. César Omar Aranda 5

Ejemplo de Documento XML

Ing. César Omar Aranda 6

Ing. César Omar Aranda 3


Programación Avanzada
Universidad del Aconcagua

¿Qué No es XML?
 No es un sustituto del HTML
 Diferentes objetivos: no define presentación
 HTML debería ser un sublenguaje de XML
(actualmente se dispone de XHTML)

 No es un lenguaje de marcas
 Las marcas las definimos nosotros: extensible

 No describe la estructura
 Se hace con un DTD

Ing. César Omar Aranda 7

Y ¿qué es un DTD?
 Document Type Definition
 Descripción lógica de los datos
 Permite cerrar la estructura del documento

 Permite validar la información

 Está siendo sustituido por XML Schemas


 La estructura se define en XML

Ing. César Omar Aranda 8

Ing. César Omar Aranda 4


Programación Avanzada
Universidad del Aconcagua

Calificación de Documentos XML


 Bien formados
 Cumplen las especificaciones del lenguaje respecto a
las reglas sintácticas
 No están sujetos a elementos fijados en un DTD

 Válidos
 Están bien formados
 Siguen la estructura y la semántica determinada por
un DTD (o esquema)
Los elementos, la estructura jerárquica y los atributos se
ajustan a lo que dicte un DTD

Ing. César Omar Aranda 9

Ejemplo de Documento DTD

Este es el DTD

Referencia incluida en
el documento XML

Este es el XML
Ing. César Omar Aranda 10

Ing. César Omar Aranda 5


Programación Avanzada
Universidad del Aconcagua

XML Schema
 “Diagrama representativo” de la estructura

 Los DTD están limitados


 Heredados de SGML
 Soporte pobre para tipos y espacios de nombres
 No es XML

 Los “Schemata” permiten una descripción más


rica y flexible
 Incluso rangos de valores de los elementos o atributos

Ing. César Omar Aranda 11

Ejemplo XML Schema

Ing. César Omar Aranda 12

Ing. César Omar Aranda 6


Programación Avanzada
Universidad del Aconcagua

Vista Integrada

Ing. César Omar Aranda 13

Diferencias: evolución
 SGML
 Lenguaje de Marcado Generalizado Estándar (1978)
 Basado en C. Goldfarb – E. Mosher y R. Lorie (1969)
 HTML
 Lenguaje de Marcado de Hipertexto
 T. Bernes Lee – D. Raggett (1992)
 XML
 Lenguaje de Marcado Extensible
 J. Bosak – T. Bray - C.M. Sperberg – J. Clark (1998)
 XHTML
 Lenguaje extensible de marcado de hipertexto
 Aplicación XML
Ing. César Omar Aranda 14

Ing. César Omar Aranda 7


Programación Avanzada
Universidad del Aconcagua

Requisitos XHTML
 El elemento raíz del documento debe ser <html>
 El elemento raíz debe indicar el espacio nominal XHTML usando el
atributo xmlns. El espacio nominal para XHTML es
http://www.w3.org/1999/xhtml
 Debe haber una declaración DOCTYPE en el documento antes del
elemento raíz según las formas:
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

Ing. César Omar Aranda 15

Soporte XML en Java


 JAXP: Java API for XML Processing
 Define interfaces para las API:
XSL: eXtensible Stylesheet Language
SAX: W3C Simple API for XML
DOM: W3C Document Object Model
 Interfaces para parsers: javax.xml.parsers, javax.xml.transform
 Xerces (“javax.xml.parsers”)
 Origen: “XML4J” de IBM. Proyecto Apache (OpenSource)
 Implementa DOM y SAX
 Xalan (“javax.xml.transform”)
 Origen: “LotusXSL” de XSL. Proyecto Apache (!)
 Utilizado para transformaciones
 JDOM: Java Document Object Model
 Origen: CA, JUG,J.Huntin. Proyecto www.jdom.org
 Implementa DOM y SAX
Ing. César Omar Aranda 16

Ing. César Omar Aranda 8


Programación Avanzada
Universidad del Aconcagua

¿Qué es DOM?
 DOM (Document Object Model)
 Serie de recomendaciones W3C
 API que define objetos presentes en documentos XML
 Evolución
 DOM nivel 0
Javascript como mecanismo de los navegadores para manipular las páginas
 DOM Nivel 1
Soporte XML 1.0 y HTML
Cada elemento HTML representado mediante una interfaz
 DOM Nivel 2
Incluye soporte para namespaces
También incorpora soporte para CSS, y eventos
 DOM nivel 3.
Sólo algunas son ya recomendaciones
Mejora el soporte para: crear Objeto Document, namespaces y XPath
Presenta DOM Level 3 Core, DOM Level 3 Validation

Ing. César Omar Aranda 17

Generalidades
 Un Document DOM es un árbol de nodos
 Jerarquía contiene nodos que representan nodos XML (raíz,
elemento, comentario, …)
 SAX era una API muy simple
 El programador debe implementar toda la lógica
 No hay estado
 No se puede modificar archivo
 DOM abstrae al programador de la representación del
árbol
 Simplemente se carga el archivo y se obtiene un objeto
Document con toda la estructura en memoria representada en
base a objetos
 Permite editar, copiar, eliminar nodos/ramas del árbol

Ing. César Omar Aranda 18

Ing. César Omar Aranda 9


Programación Avanzada
Universidad del Aconcagua

¿Qué es JDOM?
 JDOM es un API para leer, crear y manipular
documentos XML
 Pensada para Java: sencilla e intuitiva
 No es un parser, pero usa un parser
 Aporta una capa de abstracción
 API formado por 5 packages

Ing. César Omar Aranda 19

JDOM

Ing. César Omar Aranda 20

Ing. César Omar Aranda 10


Programación Avanzada
Universidad del Aconcagua

Leer XML desde Java


 Construir un objeto SAX o DOM según corresponda:
 SAXBuilder builder = new SAXBuilder( Parser, validar );
 DOMBuilder builder = new SAXBuilder( Adaptador, validar );
 Construir el arbol en memoria desde archivo XML dado:
 Document doc = builder.build( “archivo.xml” );
 Capturar el elemento raiz
 Element raiz = doc.getRootElement();
 Listar los hijos que tengan un identificador específico
 List grupos = raiz.getChildren( “id” );
 Obtener elemento de datos desde objeto compuesto
 Element objSimple = (Element) objComp.getChild(“identificador”);
 Obtener valor almacenado en el elemento de datos
 String valor = objSimple.getText();

Ing. César Omar Aranda 21

Referencias
 http://www.ulpgc.es/otros/tutoriales/xml/
 http://www.ulpgc.es/otros/tutoriales/xml/DTD.html
 http://www.w3.org/XML/
 http://www.w3.org/XML/Schema
 http://java.sun.com/xml/
 http://www.w3schools.com/
 http://www.webtaller.com/construccion/lenguajes/java/lecciones/java
-xml-jdom.php
 http://www.jdom.org/downloads/docs.html
 http://docstore.mik.ua/orelly/xml/jxml/ch07_01.htm
 http://xml.apache.org/
 http://es.tz8.de/style-styling-xml.html
 http://www.solotuweb.org/articulos.asp?recordn=13
 http://www.reloco.com.ar/xml.html.es

Ing. César Omar Aranda 22

Ing. César Omar Aranda 11

You might also like