archivos xml en java

51
ARCHIVOS XML EN JAVA Andrés Parra 20151057 Anyara Rojas 20150610 Julio Henríquez 20151023 Emerson Pichardo 20150437 Janne Luciano 20150472 <?XML?>

Upload: andres-parra-ramirez

Post on 15-Apr-2016

45 views

Category:

Documents


0 download

DESCRIPTION

archivos de tipo xml utilizados e implementados en java

TRANSCRIPT

Page 1: Archivos XML en Java

ARCHIVOS XML EN JAVA

Andrés Parra 20151057Anyara Rojas 20150610Julio Henríquez 20151023Emerson Pichardo 20150437Janne Luciano 20150472

<?XML?>

Page 2: Archivos XML en Java

¿QUE ES XML? XML, siglas en inglés de eXtensible Markup Language ('lenguaje de marcas extensible'), es un lenguaje de marcas desarrollado por el World Wide Web Consortium (W3C) utilizado para almacenar datos en forma legible. Proviene del lenguaje SGML y permite definir la gramática de lenguajes específicos (de la misma manera que HTML es a su vez un lenguaje definido por SGML) para estructurar documentos grandes. A diferencia de otros lenguajes, XML da soporte a bases de datos, siendo útil cuando varias aplicaciones deben comunicarse entre sí o integrar información.

Page 3: Archivos XML en Java

XML no ha nacido sólo para su aplicación para Internet, sino que se propone como un estándar para el intercambio de información estructurada entre diferentes plataformas. Se puede usar en bases de datos, editores de texto, hojas de cálculo y casi cualquier cosa imaginable.

XML es una tecnología sencilla que tiene a su alrededor otras que la complementan y la hacen mucho más grande y con unas posibilidades mucho mayores.

Page 4: Archivos XML en Java

HISTORIA DE XMLXML proviene de un lenguaje inventado por IBM en los años setenta, llamado GML (Generalized Markup Language), que surgió por la necesidad que tenía la empresa de almacenar grandes cantidades de información y compartirla en otros SO y plataformas. Este lenguaje gustó a la ISO, por lo que en 1986 trabajaron para normalizarlo, creando SGML (Standard Generalized Markup Language), capaz de adaptarse a un gran abanico de problemas. A partir de él se han creado otros sistemas para almacenar información.

Page 5: Archivos XML en Java

En el año 1989 Tim Berners Lee creó la web, y junto con ella el lenguaje HTML. Este lenguaje se definió en el marco de SGML y fue de lejos la aplicación más conocida de este estándar. Los navegadores web sin embargo siempre han puesto pocas exigencias al código HTML que interpretan y así las páginas web son caóticas y no cumplen con la sintaxis. Estas páginas web dependen fuertemente de una forma específica de lidiar con los errores y las ambigüedades, lo que hace a las páginas más frágiles y a los navegadores más complejos.

Page 6: Archivos XML en Java

VENTAJAS DEL XML Es extensible: Después de diseñado y puesto en producción, es posible

extender XML con la adición de nuevas etiquetas, de modo que se pueda continuar utilizando sin complicación alguna.

El analizador es un componente estándar, no es necesario crear un analizador específico para cada versión de lenguaje XML. Esto posibilita el empleo de cualquiera de los analizadores disponibles. De esta manera se evitan bugs y se acelera el desarrollo de aplicaciones.

Si un tercero decide usar un documento creado en XML, es sencillo entender su estructura y procesarla. Mejora la compatibilidad entre aplicaciones. Podemos comunicar aplicaciones de distintas plataformas, sin que importe el origen de los datos, es decir, podríamos tener una aplicación en Linux con una base de datos Postgres y comunicarla con otra aplicación en Windows y Base de Datos MS-SQL Server.

Page 7: Archivos XML en Java

CRITICASXML y sus extensiones han sido regularmente criticadas por su nivel de detalle y complejidad. El mapeo del modelo de árbol básico de XML hacia los sistema de tipos de lenguajes de programación o bases de datos puede ser difícil, especialmente cuando se utiliza XML para el intercambio de datos altamente estructurados entre aplicaciones, lo que no era su objetivo primario de diseño. Otras críticas intentan refutar la afirmación de que XML es un lenguaje auto descriptivo (aunque la especificación XML no hace ninguna afirmación de este tipo). Se propone a JSON y YAML frecuentemente como alternativas, centrándose ambas en la representación de datos estructurados, en lugar de documentos narrativos.

Page 8: Archivos XML en Java

Estructura de un archive XMLLa tecnología XML busca dar solución al problema de expresar información estructurada de la manera más abstracta y reutilizable posible. Que la información sea estructurada quiere decir que se compone de partes bien definidas, y que esas partes se componen a su vez de otras partes. Entonces se tiene un árbol de trozos de información. Ejemplos son un tema musical, que se compone de compases, que están formados a su vez por notas. Estas partes se llaman elementos, y se las señala mediante etiquetasUna etiqueta consiste en una marca hecha en el documento, que señala una porción de éste como un elemento. Un pedazo de información con un sentido claro y definido. Las etiquetas tienen la forma <nombre>, donde nombre es el nombre del elemento que se está señalando.

Page 9: Archivos XML en Java

Ejemplo de estructura:

Page 10: Archivos XML en Java

Documentos XML bien formados y control de erroresLos documentos denominados como «bien formados» (del inglés well formed) son aquellos que cumplen con todas las definiciones básicas de formato y pueden, por lo tanto, analizarse correctamente por cualquier analizador sintáctico (parser) que cumpla con la norma. Se separa esto del concepto de validez que se explica más adelante.• Los documentos han de seguir una estructura estrictamente jerárquica con lo que

respecta a las etiquetas que delimitan sus elementos. Una etiqueta debe estar correctamente incluida en otra, es decir, las etiquetas deben estar correctamente anidadas. Los elementos con contenido deben estar correctamente cerrados.

• Los documentos XML sólo permiten un elemento raíz del que todos los demás sean parte, es decir, solo pueden tener un elemento inicial.

• Los valores atributos en XML siempre deben estar encerrados entre comillas simples o dobles.

Page 11: Archivos XML en Java

• El XML es sensible a mayúsculas y minúsculas. Existe un conjunto de caracteres llamados espacios en blanco (espacios, tabuladores, retornos de carro, saltos de línea) que los procesadores XML tratan de forma diferente en el marcado XML.

• Es necesario asignar nombres a las estructuras, tipos de elementos, entidades, elementos particulares, etc. En XML los nombres tienen alguna característica en común.

• Las construcciones como etiquetas, referencias de entidad y declaraciones se denominan marcas; son partes del documento que el procesador XML espera entender. El resto del documento entre marcas son los datos «entendibles» por las personas.

Page 12: Archivos XML en Java
Page 13: Archivos XML en Java

Prólogo:Aunque no es obligatorio, los documentos XML pueden empezar con unas líneas que describen la versión XML, el tipo de documento y otras cosas. Cuerpo:A diferencia del prólogo, el cuerpo no es opcional en un documento XML, el cuerpo debe contener un y solo un elemento raíz, característica indispensable también para que el documento esté bien formado.

Elementos:Los elementos XML pueden tener contenido (más elementos, caracteres o ambos), o bien ser elementos vacíos.

Partes de un archivo XML

Page 14: Archivos XML en Java

Atributos:Los elementos pueden tener atributos, que son una manera de incorporar características o propiedades a los elementos de un documento. Deben ir entre comillas.

Entidades predefinidas:Entidades para representar caracteres especiales para que, de esta

forma, no sean interpretados como marcado en el procesador XML.

Secciones CDATA

Es una construcción en XML para especificar datos utilizando cualquier carácter sin que se interprete como marcado XML. No confundir con 2(#PCDATA) que es para los elementos. Permite

que caracteres especiales no rompan la estructura.

Page 15: Archivos XML en Java

ELEMENTOS DE XML

Los elementos componen la espina dorsal de los documentos XML, ya que crean estructuras que pueden se manipular con programas u hojas de estilos. Los elementos identifican secciones de información con nombres y se crean mediante etiquetas de marcado que identifican el nombre, el inicio y el final del elemento.

Los elementos también pueden incluir valores y nombres de atributos, que proporcionan información adicional sobre el contenido

Page 16: Archivos XML en Java

ELEMENTOS DE XML Un elemento suele incluir las etiquetas de apertura y cierre, y todo el

contenido queda delimitado dentro de ellas.

<person><Name>Peter</Name> <Family>Kress</Family></person>

En este caso, el elemento <person> contiene otros dos elementos, <Name> y <Family>, junto con un espacio que los separa. El elemento <Name> contiene el texto Peter mientras que el elemento <Family> contiene el texto Kress.

Page 17: Archivos XML en Java

ATRIBUTO

Un atributo es una definición de tipo simple con nombre que no puede contener otros elementos. Los atributos también pueden asignarse a un valor predeterminado opcional y deben aparecer en la parte inferior de las definiciones de tipo complejo.

Por ejemplo, un elemento «estudiante» puede tener un atributo «Mario» y un atributo «tipo», con valores «come croquetas» y «taleno» respectivamente.

Page 18: Archivos XML en Java

REGLAS DE ATRIBUTOS ELEMENTO

XML distingue entre mayúsculas y minúsculas. Así, un elemento denominado "statecode" es distinto de un elemento denominado "stateCode."

Los valores de atributos deben estar siempre entre comillas.

Los nombres de elementos no pueden empezar por un número o un signo de subrayado ni por las letras "XML".

Los nombres de elementos no pueden contener espacios.

Page 19: Archivos XML en Java

ENTIDADES PREDEFINIDAS

Entidades para representar caracteres especiales para que, de esta forma, no sean interpretados como marcado en el procesador XML.

Ejemplo: entidad predefinida: & carácter: &.

< !ENTITY nom "Juan Pérez López">

Si escribo en mi documento (en el código fuente, si estas dentro de un editor wysiwyg): &nom; es como si estuviera escribiendo Juan Pérez López.

Page 20: Archivos XML en Java

ENTIDADES PREDEFINIDAS

Las entidades pueden incluir referencias a otras entidades internas, con la salvedad de q se forme un ciclo entre ellas. XML tiene 5 entidades internas predefinidas:

& lt; Es sustitído por el símbolo <& gt; Es sustitído por el símbolo >& amp; Es sustitído por el símbolo && apos; Es sustitído por el símbolo '& quot; Es sustitído por el símbolo "

Page 21: Archivos XML en Java

SECCIONES CDATA

Es una construcción en XML para especificar datos utilizando cualquier carácter sin que se interprete como marcado .

<![CDATA[contenido especial: \n áéíóúñ&]]>

Sección CData - Personajes entre estos dos recintos son interpretados como caracteres, y no como el markup. Esta sección puede contener caracteres de markup ( <, >, y & ), pero son ignoradas por el procesador XML.

Page 22: Archivos XML en Java

CDATA REGLAS

Las normas son necesarias para ser seguido para XML CDATA:

CDATA no puede contener la cadena "]]>" en cualquier parte del documento XML.

Anidación no está permitido en sección CDATA.

Page 23: Archivos XML en Java

COMENTARIOS El contenido que no es apto para el analizador de XML, como

notas sobre la estructura o edición del documento, puede incluirse en un comentario. Los comentarios comienzan por <!-- y terminan por -->; por ejemplo

Los comentarios pueden aparecer en el prólogo del documento, incluyendo la definición de tipo de documento (DTD), en el contenido textual o después del documento. Los comentarios no aparecen dentro de valores de atributo. Tampoco pueden aparecer dentro de etiquetas.

Page 24: Archivos XML en Java

VALIDEZ Que un documento esté «bien formado» solamente se refiere a

su estructura sintáctica básica, es decir, que se componga de elementos, atributos y comentarios como XML especifica que se escriban. Ahora bien, cada aplicación de XML, es decir, cada lenguaje definido con esta tecnología, necesitará especificar cuál es exactamente la relación que debe verificarse entre los distintos elementos presentes en el documento.

Esta relación entre elementos se especifica en un documento externo o definición (expresada como DTD —Document Type Definition, 'Definición de Tipo de Documento'— o como XSchema). Crear una definición equivale a crear un nuevo lenguaje de marcado, para una aplicación específica.

Page 25: Archivos XML en Java

DOCUMENT TYPE DEFINITION

La Document Type Definition o DTD (en español "definición de tipo de documento") define los tipos de elementos, atributos y entidades permitidas, y puede expresar algunas limitaciones para combinarlos. Los documentos XML que se ajustan a su DTD son denominados válidos.

Page 26: Archivos XML en Java

Una DTD establece tanto los elementos que forman un tipo de documento dado, como las relaciones que se dan entre ellos.El conjunto de reglas que define los documentos del tipo correo electrónico puede ser el siguiente, escrito en el fichero www.sitio.es/DTDs/email.dtd:

Page 27: Archivos XML en Java

<!element email (head, body)><!attlist email id ID #REQUIRED><!element head (from, to+, cc*, subject)><!element from (name?, address)><!element to (name?, address)><!element cc (name?, address)><!element name (#PCDATA)><!element address (#PCDATA)><!element subject (#PCDATA)><!element body (p | attach)*><!element p (#PCDATA)><!element attach EMPTY><!attlist attach encoding (mime|binhex) "mime" name CDATA #REQUIRED>

Page 28: Archivos XML en Java

Existen cuatro tipos de declaraciones: tipos de elemento, listas de atributos, entidades y de notación:

declaración de elementos: identifican los nombres de los elementos, su contenido y las relaciones entre los distintos elementos.

declaración de atributos: identifican los elementos que tienen atributos, qué atributos tendrán y cuáles son los valores por defecto.

declaración de entidades: permiten asociar nombres con contenidos que por ejemplo se repiten mucho

<!entity uva "Universidad de Valladolid"> declaración de notación: identifican tipos específicos de datos binarios

externos:<!notation GIF87A system "gif">Una DTD puede estar en la misma máquina que el documento asociado o en otra distinta.

Page 29: Archivos XML en Java

Un documento XML puede estár distribuido a lo largo de varios ficheros:<!doctype libro system "libro.dtd"[ <!entity indice system "indice.xml"> <!entity cap1 system "capitulos/cap1.xml"> <!entity cap2 system "capitulos/cap2.xml">]><libro><cabecera> &indice;</cabecera><cuerpo> &cap1; &cap2;</cuerpo></libro>

Page 30: Archivos XML en Java

Declaraciones tipo elementoLos elementos deben ajustarse a un tipo de documento declarado en una DTD para que el documento sea considerado como válido. Modelos de contenidoUn modelo de contenido es un patrón que establece los subelementos aceptados, y el orden en que se aceptan. Declaraciones de lista de atributosLos atributos se usan para añadir información adicional a los elementos de un documento. Tipos de atributos• Atributos CDATA y NMTOKEN• Atributos enumerados y notaciones• Atributos ID e IDREF

Page 31: Archivos XML en Java

Declaración de entidadesXML hace referencia a objetos que no deben ser analizados sintácticamente según las reglas XML, mediante el uso de entidades. Las entidades pueden ser: Internas o externas Analizadas o no analizadas Generales o parametrizadas Espacios de nombresLos espacios de nombres XML permiten separar semánticamente los elementos que forman un documento XML.

Page 32: Archivos XML en Java

XML Schemas (XSD)Un Schema es algo similar a un DTD. Define qué elementos puede contener un documento XML, cómo están organizados y qué atributos y de qué tipo pueden tener sus elementos. Ventajas de los Schemas frente a los DTD Usan sintaxis de XML, al contrario que los DTD. Permiten especificar los tipos de datos. Son extensibles.

Page 33: Archivos XML en Java

LIBRERÍAS PARA EL TRATAMIENTO DE XML EN JAVA XML, es un metalenguaje extensible de etiquetas

desarrollado por el World Wide Web Consortium (W3C) que  permite definir la gramática de lenguajes específicos. Por lo tanto XML no es realmente un lenguaje en particular, sino una manera de definir lenguajes para diferentes necesidades. Algunos de estos lenguajes que usan XML para su definición son XHTML, SVG, MathML.

XML no ha nacido sólo para su aplicación en Internet, sino que se propone como un estándar para el intercambio de información estructurada entre diferentes plataformas. Se puede usar en bases de datos, editores de texto, hojas de cálculo y casi cualquier cosa imaginable. Tiene un papel muy importante en la actualidad ya que permite la compatibilidad entre sistemas para compartir la información de una manera segura, fiable y fácil.

Page 34: Archivos XML en Java

Usar las librerías Xerces2, JDOM y JAXP para el procesamiento de documentos XML

Es necesario tener claro qué librería se adapta con mayor facilidad a nuestras necesidades. Xerces2 permite el procesamiento de documentos XML tanto con el estándar

DOM o con el estándar SAX, y errores. Además, integra a otras librerías independientes de parseado.

JDOM permite leer, escribir, crear y manipular ficheros XML de forma sencilla e intuitiva. Está totalmente programada en Java, lo que le permite utilizar las capacidades particulares del lenguaje, simplificando significativamente su manejo para programadores expertos en Java. Se basa en el procesamiento de un documento XML y la construcción de un árbol. Una vez construido el árbol se puede acceder directamente a cualquiera de sus componentes.

Page 35: Archivos XML en Java

JAXP (Java API for XML Processing) permite procesar tanto el estándar DOM como el estándar SAX. Este API está diseñado para ser flexible y uniformar el desarrollo de aplicaciones Java con Xml. Además, proporciona una capa intermedia que nos permite usar cualquier analizador XML compatible dentro de nuestra aplicación, reduciendo el acoplamiento de los coponentes de la aplicación con la implementación del analizador.

Page 36: Archivos XML en Java

Emplear las librerías JiXB, JAXB o XMLBeans para vincular los documentos XML con objetos Java

Usando JiBX, JAXB o XMLBeans podemos vincular datos en XML con objetos Java. Con cualquiera de las tres librerías podemos, o partir de un esquema XML generar código Java. Se recomienda utilizar una de estas tres librerías para la vinculación de los documentos XML con los objetos Java.

Para leer un fichero XML existen dos formas básicas (dos APIs): SAX y DOM. Por medio de SAX, una clase standard de java se va encargando de leer el

fichero y nos va avisando según va leyendo tags de XML. Nosotros debemos hacer unas clases con unos métodos concretos que son los que van recibiendo estos tags.

Por medio de DOM, una clase standar de java se encarga de leer todo el fichero XML de golpe. Luego nos lo da en forma de Document para que nosotros lo vayamos analizando y haciendo lo que debamos con él.

Page 37: Archivos XML en Java

CREACIÓN DE ARCHIVOS XML EN JAVA

Page 38: Archivos XML en Java

DECLARACIÓN DE UN XML

La declaración XML que se puede escribir al principio de un documento XML, empieza con los caracteres "<?" y termina con "?>" al igual que las instrucciones de procesamiento. Sin embargo, la declaración XML no es una instrucción de procesamiento (o proceso).

“En un documento XML, una instrucción de procesamiento (processing instruction) sirve para indicar cierta información al programa que procese dicho documento. Las instrucciones de proceso se escriben empezando con la pareja de caracteres "<?" y finalizando con "?>".”

Page 39: Archivos XML en Java

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

En esta declaración XML, se está indicando que 1.0 es la versión de XML utilizada en el documento y UTF-8 (8-bit Unicode Transformation Format, Formato de Transformación Unicode de 8 bits) es la codificación de caracteres empleada.En un documento XML no es obligatorio que aparezca la declaración XML.Ahora bien, si se incluye, tiene que aparecer en la primera línea del documento, y el carácter "<" debe ser el primero de dicha línea, es decir, antes no pueden aparecer espacios en blanco.

<?xml-stylesheet type="text/css" href="estilo-animales.css"?>

Page 40: Archivos XML en Java
Page 41: Archivos XML en Java
Page 42: Archivos XML en Java
Page 43: Archivos XML en Java
Page 44: Archivos XML en Java
Page 45: Archivos XML en Java
Page 46: Archivos XML en Java
Page 47: Archivos XML en Java
Page 48: Archivos XML en Java
Page 49: Archivos XML en Java
Page 50: Archivos XML en Java
Page 51: Archivos XML en Java