La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

FUNDAMENTOS BÁSICOS DE XML Y LIBRERÍAS DISPONIBLES PARA TRATARLO EN JAVA XML en JAVA JOSÉ LUIS REDONDO GARCÍA. GRUPO QUERCUS ENGINEERING SOFTWARE, UEX.

Presentaciones similares


Presentación del tema: "FUNDAMENTOS BÁSICOS DE XML Y LIBRERÍAS DISPONIBLES PARA TRATARLO EN JAVA XML en JAVA JOSÉ LUIS REDONDO GARCÍA. GRUPO QUERCUS ENGINEERING SOFTWARE, UEX."— Transcripción de la presentación:

1 FUNDAMENTOS BÁSICOS DE XML Y LIBRERÍAS DISPONIBLES PARA TRATARLO EN JAVA XML en JAVA JOSÉ LUIS REDONDO GARCÍA. GRUPO QUERCUS ENGINEERING SOFTWARE, UEX

2 Contenidos 2 XML DTD Schema XML Parsing SAX API DOM API XSLT

3 ¿Qué es XML? 3 eXtensible Mark-up Language. Es un metalenguaje que permite diseñar otros lenguajes (WML, MathML, XHTML,..). Cualquiera puede desarrollar su propio lenguaje de etiquetas adecuado al tipo de aplicación que más le convenga. En realidad hay muchas tecnologías basadas en XML (XPath, XLink, XPointer, XSL,...). XML 1.0 Specification

4 HTML y XML 4 SGML (Standard Generalized Markup Language) HTML es una aplicación de SGML XML es subconjunto más fácil de usar de SGML XHTML es una aplicación de XML

5 XML describe estructura y semántica 5 Ipiña Altzariak excelente azul 200

6 HTML describe formato 6 Comedor Comedor Fabricante: Ipiña Altzariak Mesa redonda de madera de arce Dos sillas de madera de arce, de excelente calidad, con un cojín azul cada una. 3 sillas de madera de roble.

7 Ventajas XML 7 Una de las mayores utilidades de XML es poder etiquetar los datos con su significado (self- describing data). Permite la estructuración de la información. Ello lleva el tratamiento automático de la información a límites insospechados. XML es la base de la nueva generación de aplicaciones web intercambio de datos

8 Usos XML 8 Sitios web Permite separar contenido y presentación Comunicación intercambio datos Servicios web Como configuración de programas Deployment descriptos en servidores J2EE Ant make system

9 Componentes documento XML 9 Los documentos XML constan de: Instrucciones de procesamiento (processing instructions – PI) Declaraciones de tipo de documento Comentarios Elementos Referencias a entidades Secciones CDATA

10 Instrucciones de procesamiento 10 Las PI son instruccciones para el procesador del documento XML. Siempre hay al menos una PI, que pertenece al prólogo del documento: Hola, mundo!

11 Comentarios en XML 11 Los comentarios no se procesan. Tienen la siguiente sintaxis:

12 Elementos y atributos en XML 12 Los elementos son los que aportan estructura semántica al documento. Se delimitan por etiquetas de apertura, cierre y etiquetas sin elementos interiores (etiquetas vacías). Las etiquetas de apertura y las vacías suelen venir acompañadas de atributos, que parametrizan el elemento. El valor de los atributos siempre se encierra entre comillas, dobles o simples. Hola

13 Elementos vs. Atributos 13 Demasiados atributos hacen que los documentos XML se puedan leer difícilmente. No se puede indicar estructura de documento mediante atributos

14 Elementos vs. Atributos (cont) 14 Smith Sam October 15, 2001 Tomatoes 8 $1.25

15 Referencias a entidades 15 Las referencias a entidades sirven para insertar un determinado contenido definido previamente. Creado por &Empresa;

16 Códigos de escape 16 Existen 5 referencias a entidades predefinidas: & el carácter & < el carácter < > el carácter > ' el carácter ` " el caracter Se incluyen los caracteres del juego ISO ‘ ⼱

17 Secciones CDATA 17 Las secciones CDATA (character data) contienen texto que no debe ser procesado. Se tratan como una secuencia de caracteres sin estructura. Hola, mundo! ]]>

18 Gramáticas en XML 18 La gramática que restringe los elementos válidos dentro de un nuevo derivado de XML puede expresarse en forma de: DTD (Document Type Definitions) o Esquemas XML

19 XML Schemas 19 Los DTD no son muy potentes para definir gramáticas. Otra forma de hacerlo es con Esquemas XML basados en el propio XML y que soporta más tipos de datos.

20 Ejemplo Schema 20 DTD : XML Schema:

21 Ejemplo Schema (cont) 21 XML Document: The deadline of ISO3 assigment is November 21th 2003.

22 XML bien formado y/o XML válido 22 Hay dos tipos de documentos XML: Bien formados : son aquellos que cumplen las reglas sintácticas de XML Válidos : son aquellos que, además de ser bien formados, siguen las reglas de una gramática (definida en un DTD o XML Schema)

23 Reglas para que un documento esté bien formado 23 Para que un documento esté bien formado: Debe tener un prólogo Debe tener una etiqueta raíz Las etiquetas se hallan correctamente anidadas Se usan caracteres válidos y bien aplicados Los valores de los atributos vienen encerrados entre comillas...

24 Reglas para que un documento sea válido 24 Para que un documento sea válido debe declarar el DTD o XML Schema contra el cual debe validarse. Se hace mediante DOCTYPE, pudiendo ser los DTD públicos o de sistema. También se puede insertar el DTD entero en ese punto, en lugar de referenciar al fichero.

25 Proceso de validación documento XML 25

26 Lenguajes basados en XML 26 Chemical Markup Language (CML) Mathematical Markup Language (MathML) Channel Definition Format (CDF) Synchronized Multimedia Integration Language (SMIL) XHTML Scalable Vector Graphics (SVG) SOAP y WSDL VoiceML Wireless Markup Language (WML)

27 Herramientas de XML 27 Editores gratis XML Spy, XML parsers Lee un documento XML Verifica que XML está bien formado Verifican que XML es válido expat, parser written in C by James Clark (www.jclark.com)www.jclark.com Lark, written in Java (www.textuality.com/Lark/)www.textuality.com/Lark/ Apache Jakarta Xerces (www.apache.org)www.apache.org XML Validators Verifican que XML es válido XML.com's Validator based on Lark (xml.com)

28 ¿Por qué usar XML? 28 Un documento XML puede ser fácilmente procesado y sus datos manipulados Existen APIs para procesar esos documentos en Java, C, C++, Perl.. (y por supuesto Python) XML define datos portables al igual que Java define código portable

29 XML Parsing 29

30 XML Parsing (cont) 30 SAX Define interfaz dirigido por eventos (event-driven) para el procesamiento de un documento XML Definido por David Megginson y lista correo XML-DEV : DOM Provee una representación de un documento XML en forma de un árbol Carga todo el documento XML en memoria

31 Características de SAX 31 Analizador o parser SAX: Detecta cuándo empieza y termina un elemento o el documento, o un conjunto de caracteres, etc. (genera eventos) Gestiona los espacios de nombres Comprueba que el documento está bien formado Las aplicaciones necesitan implementar manejadores de los eventos notificados SAX lee secuencialmente de principio a fin, sin cargar todo el documento en memoria Ventaja: eficiencia en cuanto al tiempo y la memoria empleados en el análisis Desventaja: no disponemos de la estructura en árbol de los documentos

32 Java JAXP 32 Define clase SAXParserFactory para crear una instancia de un objeto SAXParser (independiente de implementación SAX parser) factory = SAXParserFactory.newInstance(); SAXParser saxParser = factory.newSAXParser(); Objeto SAXParser define method parse() para arrancar procesamiento Es necesario registrar SAXHandlers con cada SAXParser Los 4 SAX Handlers principales son: EntityResolver – maneja entidades externas DTDHandler – maneja eventos de DTD ContentHandler – maneja contenido de un documento ErrorHandler – maneja errores

33 W3C Document Object Model (DOM) 33 Documentos XML son tratados como un árbol de nodos Cada elemento es un nodo Los elementos hijos y el texto contenido dentro de un elemento son subnodos W3C DOM Site: DOM Java Language Binding: binding.html binding.html

34 Características DOM 34 Documento se carga totalmente en memoria en una estructura de árbol Ventaja: fácil acceder a datos en función de la jerarquía de elementos, así como modificar el contenido de los documentos e incluso crearlos desde cero. Desventaja: coste en tiempo y memoria que conlleva construir el árbol

35 W3C XML DOM Objects 35 Element – un elemento XML Attribute – un attributo Text – texto contenido en un elemento o atributo CDATAsection – sección CDATA EntityReference – Referencia a una entidad Entity – Indicación de una entidad XML ProcessingInstruction – Una instrucción de procesamiento Comment – Contenido de un comentario de XML Document – El objeto documento DocumentType – Referencia al elemento DOCTYPE DocumentFragment – Referencia a fragmento de documento Notation – Contenedor de una anotación

36 Objetos relacionados con Nodos 36 Node – un nodo en el árbol de un documento NodeList – una lista de objetos nodos NamedNodeMap – permite interacción y acceso por nombre a una colección de atributos

37 Documento XML como un árbol de nodos 37 Hello from XML Welcome to Programing XML in Java

38 Documento XML como un árbol de nodos (cont) 38

39 Clase DocumentBuilder 39 Método parse() analiza el fichero entrada Método Document getDocument() devuelve el documento generado durante parsing parser.parse(fich); Document doc = parser.getDocument();

40 Métodos del objecto Document 40 Attr createAttribute(String name) Crea un atributo con el nombre dado Element createElement(String tagName) Crea un elemento con el nombre dado Text createTextNode(String data) Crea un nodo de texto Element getDocumentElement() Devuelve el elemento raíz el documento Element getElementById(String elementId) Devuelve el elemento identificado por elementId NodeList getElementsByTagName(String tagname) Devuelve una lista de elementos identificados por el nombre de etiqueta dado

41 Métodos del interfaz Node 41 Node NamedNodeMap getAttributes() Devuelve lista de atributos en un nodo Node getFirstChild() Devuelve el primer hijo de este nodo Node getFirstChild() Devuelve el último hijo de este nodo NodeList getChildNodes() Devuelve todos los hijos de este nodo Node getParentNode() Devuelve nodo padre del nodo actual short getNodeType() Devuelve tipo de nodo actual String getNodeName() Devuelve nombre nodo String getNodeValue() Devuelve contenido nodo

42 Métodos del interfaz NodeList y NamedNodeMap 42 NodeList int getLength() Devuelve número de nodos en lista Node item(int index ) Devuelve el nodo identificado por index en una colección NamedNodeMap int getLength() Devuelve número de nodos en lista Node getNamedItem(String name) Recupera un nodo dado su nombre Node item(int index ) Devuelve el nodo identificado por index en una colección

43 Ejemplo DOM I 43

44 Ejemplo DOM II 44

45 Ejemplo DOM III 45 import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import java.io.IOException; public class EjemploDOM { public static void main(String[] args) {... DocumentBuilderFactory fact = DocumentBuilderFactory.newInstance(); // Crear nueva instancia de DOMBuilder a través factoria DocumentBuilder parser = fact.newDocumentBuilder(); parser.parse(fich); Document doc = parser.getDocument(); EjemploDOM.tratarNodo(doc);... }

46 Ejemplo DOM IV 46 public static void tratarNodo(Node nodo) { switch (nodo.getNodeType()) { case Node.DOCUMENT_NODE: break; case Node.ELEMENT_NODE: break; case Node.ATTRIBUTE_NODE: break; case Node.TEXT_NODE: break; case Node.CDATA_SECTION_NODE: break; case Node.PROCESSING_INSTRUCTION_NODE: break; case Node.ENTITY_REFERENCE_NODE: break; case Node.DOCUMENT_TYPE_NODE: break; }

47 Ejemplo DOM V 47 case Node.DOCUMENT_NODE: System.out.println(" "); Document doc = (Document)nodo; tratarNodo(doc.getDocumentElement()); break;


Descargar ppt "FUNDAMENTOS BÁSICOS DE XML Y LIBRERÍAS DISPONIBLES PARA TRATARLO EN JAVA XML en JAVA JOSÉ LUIS REDONDO GARCÍA. GRUPO QUERCUS ENGINEERING SOFTWARE, UEX."

Presentaciones similares


Anuncios Google