Este documento presenta un curso sobre XML. Explica los requisitos técnicos para usar XML en entornos Microsoft y Java. Luego describe los elementos clave del estándar XML como DOM, XSL y aplicaciones prácticas de XML. Finalmente, introduce conceptos básicos de XML como su definición, características y ejemplos de documentos XML.
Este documento describe los requisitos técnicos y el contenido de un curso sobre XML. El curso cubre temas como las características y elementos de XML, el estándar DOM para acceder a datos XML, XSL para dar formato a documentos XML, y aplicaciones prácticas de XML en entornos Java y Microsoft. El curso proporciona conocimientos técnicos fundamentales sobre XML y su uso.
Este documento describe las tecnologías XML, incluyendo DTD, esquemas XML, parsing XML, XSLT y más. Explica qué es XML, sus ventajas, y cómo se pueden definir la estructura y semántica de los documentos XML. También cubre el uso de atributos, elementos, entidades y otros componentes de documentos XML.
Este documento proporciona una introducción al lenguaje XML, explicando conceptos clave como elementos, atributos, espacios de nombres y normas de sintaxis. Se define XML como un metalenguaje basado en SGML utilizado para el almacenamiento e intercambio de datos estructurados. Además, se explican las reglas para crear documentos XML bien formados y se incluyen varios ejemplos ilustrativos.
This document provides an overview of XML including:
1) What is XML and how it is used to store and exchange structured data.
2) The basic syntax rules for XML including elements, attributes, and the document structure.
3) Examples of how to write elements, attributes, and the XML declaration.
Este documento presenta un examen de 20 preguntas sobre conceptos básicos de XML como la sintaxis, elementos, atributos, comentarios y espacios de nombres. El examen contiene afirmaciones sobre la validez y corrección sintáctica de diferentes fragmentos de código XML y pide identificar cuáles son verdaderas.
XML es un lenguaje de marcado que permite almacenar e intercambiar datos estructurados entre distintas plataformas. Un documento XML está formado por texto plano y etiquetas definidas por el desarrollador. Todo documento XML debe tener un elemento raíz único del que desciendan los demás elementos de forma jerárquica. Para que un documento XML sea válido, no solo debe seguir las normas de sintaxis sino también las reglas establecidas en su definición formal.
1) El documento describe las tecnologías XML, incluyendo DTD, esquemas XML, parsing con SAX y DOM, y usos comunes de XML como sitios web y servicios web.
2) XML permite etiquetar datos con su significado para estructurar información de manera que pueda ser procesada automáticamente.
3) Para que un documento XML sea válido, debe declarar el DTD o esquema XML al que se valida y seguir las reglas de dicha gramática.
El documento presenta una introducción a XML, incluyendo su sintaxis y elementos básicos como etiquetas, atributos y comentarios. Luego explica conceptos como espacios de nombres, validación a través de DTD y esquemas XML, y lenguajes basados en XML como XPath, XQuery, XSLT y su aplicación en la transformación de documentos.
Este documento describe los requisitos técnicos y el contenido de un curso sobre XML. El curso cubre temas como las características y elementos de XML, el estándar DOM para acceder a datos XML, XSL para dar formato a documentos XML, y aplicaciones prácticas de XML en entornos Java y Microsoft. El curso proporciona conocimientos técnicos fundamentales sobre XML y su uso.
Este documento describe las tecnologías XML, incluyendo DTD, esquemas XML, parsing XML, XSLT y más. Explica qué es XML, sus ventajas, y cómo se pueden definir la estructura y semántica de los documentos XML. También cubre el uso de atributos, elementos, entidades y otros componentes de documentos XML.
Este documento proporciona una introducción al lenguaje XML, explicando conceptos clave como elementos, atributos, espacios de nombres y normas de sintaxis. Se define XML como un metalenguaje basado en SGML utilizado para el almacenamiento e intercambio de datos estructurados. Además, se explican las reglas para crear documentos XML bien formados y se incluyen varios ejemplos ilustrativos.
This document provides an overview of XML including:
1) What is XML and how it is used to store and exchange structured data.
2) The basic syntax rules for XML including elements, attributes, and the document structure.
3) Examples of how to write elements, attributes, and the XML declaration.
Este documento presenta un examen de 20 preguntas sobre conceptos básicos de XML como la sintaxis, elementos, atributos, comentarios y espacios de nombres. El examen contiene afirmaciones sobre la validez y corrección sintáctica de diferentes fragmentos de código XML y pide identificar cuáles son verdaderas.
XML es un lenguaje de marcado que permite almacenar e intercambiar datos estructurados entre distintas plataformas. Un documento XML está formado por texto plano y etiquetas definidas por el desarrollador. Todo documento XML debe tener un elemento raíz único del que desciendan los demás elementos de forma jerárquica. Para que un documento XML sea válido, no solo debe seguir las normas de sintaxis sino también las reglas establecidas en su definición formal.
1) El documento describe las tecnologías XML, incluyendo DTD, esquemas XML, parsing con SAX y DOM, y usos comunes de XML como sitios web y servicios web.
2) XML permite etiquetar datos con su significado para estructurar información de manera que pueda ser procesada automáticamente.
3) Para que un documento XML sea válido, debe declarar el DTD o esquema XML al que se valida y seguir las reglas de dicha gramática.
El documento presenta una introducción a XML, incluyendo su sintaxis y elementos básicos como etiquetas, atributos y comentarios. Luego explica conceptos como espacios de nombres, validación a través de DTD y esquemas XML, y lenguajes basados en XML como XPath, XQuery, XSLT y su aplicación en la transformación de documentos.
El documento proporciona información sobre XML, incluyendo su origen y objetivos, aplicaciones, estructura básica de documentos XML, y la diferencia entre documentos XML bien formados y válidos. Explica que XML se originó de SGML y HTML con el objetivo de separar el contenido de la presentación, y que los documentos XML pueden tener múltiples usos. Además, describe los componentes clave de la estructura de un documento XML como las etiquetas, atributos, entidades y más.
Este documento proporciona una introducción a XPath, incluyendo que es un lenguaje para seleccionar y hacer referencia a partes de un documento XML, y describe cómo XPath permite navegar por la estructura de árbol de un documento XML usando ejes como child, parent y descendant.
Este documento presenta un curso introductorio sobre XML. El curso cubre las características básicas de XML como lenguaje estándar para el intercambio de datos, su estructura jerárquica basada en etiquetas, y su validación mediante DTDs. El curso también explica cómo XML puede transformarse en otros formatos como HTML usando XSLT, y su uso junto con CSS y esquemas XML.
Este documento resume los conceptos clave del lenguaje XML: su historia y objetivos, su relación con SGML, su utilidad para el intercambio de información semiestructurada, especialmente en el comercio electrónico, y sus características fundamentales como la estructura en elementos anidados y el uso de etiquetas, atributos y comentarios.
Este documento proporciona una introducción a XML Schema (XSD). Explica qué es XSD y cómo se puede usar para validar documentos XML. También cubre conceptos como elementos simples y complejos, atributos, espacios de nombres, tipos de datos y más. El documento contiene varios ejemplos prácticos de cómo definir esquemas XSD y validar documentos XML.
Este documento presenta una introducción al lenguaje XML. Explica los objetivos de aprender XML y sus esquemas, transformaciones y consultas. Describe la estructura básica de los documentos XML, incluyendo elementos, atributos, entidades y la necesidad de que sean bien formados. También introduce conceptos como procesamiento, DTDs y validación.
El documento explica cómo validar documentos XML utilizando DTD (Definición de Tipo de Documento). Las DTD permiten definir la estructura de documentos XML y SGML, y validar que un documento cumpla con dicha estructura. Las DTD pueden escribirse de forma interna o externa al documento XML. Un documento XML es válido si cumple con las reglas establecidas en su DTD asociada respecto a la estructura de elementos, atributos, entidades y notaciones.
El documento habla sobre XML, sus objetivos, temas, definiciones, evolución, mitos, aplicaciones y ventajas. También cubre JSON, la web semántica, ejemplos de mecanismos como RDF, y fuentes RSS. Explica las diferencias entre XML y JSON, y provee ejemplos y recursos sobre temas como ontologías y actividades de W3C sobre la web semántica.
1) XML permite definir lenguajes de marcado para usos específicos y los documentos XML contienen datos autodefinidos. 2) Se presenta un ejemplo de código XML. 3) Para comprender mejor la estructura XML, los documentos XML pueden verse de forma gráfica.
XML es un lenguaje de marcado que permite definir nuevos lenguajes y estructurar documentos. Los documentos XML incluyen elementos anidados con etiquetas, atributos y comentarios. Los documentos deben seguir una gramática definida en un DTD que declara los elementos y atributos permitidos.
El documento explica que XML es un lenguaje de marcado extensible que permite definir lenguajes de marcado para usos específicos. XML separa el contenido de la presentación y puede ser procesado por máquinas y humanos. Los documentos XML pueden validarse usando una definición de tipo de documento (DTD) que especifica los elementos y atributos permitidos.
Este documento proporciona una introducción al lenguaje XML. Explica que XML es un lenguaje de marcado extensible desarrollado a partir de SGML en 1996. XML se centra en los datos y es muy estructurado, permitiendo crear etiquetas personalizadas. También describe el uso de XML para la integración de datos y el intercambio de información entre aplicaciones, y explica conceptos clave como etiquetas, atributos, DTDs y el formato bien formado.
XML y XML Schema. El documento introduce XML como lenguaje de marcado extensible para estructurar datos, los espacios de nombres en XML para evitar conflictos de nombres, y XML Schema como mecanismo para validar documentos XML y definir su estructura.
El documento proporciona una comparación detallada entre XML, HTML, SGML y PDF. Explica las ventajas y desventajas de cada uno, así como sus usos comunes. Luego describe las metas de diseño de XML, incluyendo ser sencillo, extensible y compatible con HTML y SGML. Finalmente, explica conceptos clave de XML como sintaxis, documentos bien formados y válidos, y el uso de DTDs.
El documento describe los esquemas XML (XML Schema), incluyendo su estructura, tipos de datos, validación de documentos XML y más. Explica que un esquema define la estructura de un conjunto de documentos XML y permite validarlos. Luego entra en detalles sobre los tipos de datos, complejos y simples, y cómo crear y restringir tipos propios.
La DTD define la estructura de documentos XML permitiendo su validación. Puede escribirse internamente o externamente al archivo XML mediante una declaración DOCTYPE. La DTD especifica los elementos, atributos, entidades y notaciones que puede contener un documento XML para que sea válido. También puede incluir secciones condicionales y comentarios.
Este documento presenta una introducción a las declaraciones de tipo de documento (DTD) en XML. Explica que las DTD permiten especificar la estructura de un documento XML, incluyendo los elementos, atributos y anidamientos permitidos. También cubre temas como DTD internas, externas y mixtas, así como el uso de entidades para reutilizar definiciones y referenciar contenido externo.
El documento explica que el DOM es una estructura de objetos generada por el navegador cuando se carga una página XHTML, permitiendo acceder y manipular dinámicamente el contenido y aspecto de la página. El DOM transforma la página en un árbol de nodos interconectados representando cada elemento. JavaScript permite acceder a estos nodos para modificar o crear elementos en la página.
El documento introduce las JavaServer Pages (JSP), una tecnología que permite separar la lógica de negocio de la presentación en aplicaciones web. JSP utiliza etiquetas para incrustar código Java en páginas HTML y generar contenido dinámico. Las páginas JSP se compilan en servlets Java para procesar solicitudes y responder con páginas HTML, lo que mejora la velocidad y escalabilidad con respecto a otras tecnologías como ASP. El documento también explica cómo manejar formularios y crear componentes reutiliz
Caso practico de base de datos orientada a objetosMiguel Martinez
Este trabajo presenta el diseño e implementación de una aplicación web para gestionar información sobre reptiles y anfibios en el macrosistema Iberá en Argentina, utilizando una base de datos objeto-relacional de Oracle9i. El objetivo es generar un sistema de información que permita el manejo de datos complejos y sus relaciones, incluyendo tipos de datos, colecciones, herencia y asociación. Los módulos de la aplicación se desarrollan en Java sobre J2EE. Se emplearon herramientas como Rational Rose, JDeveloper 9i y Struts.
El documento proporciona información sobre XML, incluyendo su origen y objetivos, aplicaciones, estructura básica de documentos XML, y la diferencia entre documentos XML bien formados y válidos. Explica que XML se originó de SGML y HTML con el objetivo de separar el contenido de la presentación, y que los documentos XML pueden tener múltiples usos. Además, describe los componentes clave de la estructura de un documento XML como las etiquetas, atributos, entidades y más.
Este documento proporciona una introducción a XPath, incluyendo que es un lenguaje para seleccionar y hacer referencia a partes de un documento XML, y describe cómo XPath permite navegar por la estructura de árbol de un documento XML usando ejes como child, parent y descendant.
Este documento presenta un curso introductorio sobre XML. El curso cubre las características básicas de XML como lenguaje estándar para el intercambio de datos, su estructura jerárquica basada en etiquetas, y su validación mediante DTDs. El curso también explica cómo XML puede transformarse en otros formatos como HTML usando XSLT, y su uso junto con CSS y esquemas XML.
Este documento resume los conceptos clave del lenguaje XML: su historia y objetivos, su relación con SGML, su utilidad para el intercambio de información semiestructurada, especialmente en el comercio electrónico, y sus características fundamentales como la estructura en elementos anidados y el uso de etiquetas, atributos y comentarios.
Este documento proporciona una introducción a XML Schema (XSD). Explica qué es XSD y cómo se puede usar para validar documentos XML. También cubre conceptos como elementos simples y complejos, atributos, espacios de nombres, tipos de datos y más. El documento contiene varios ejemplos prácticos de cómo definir esquemas XSD y validar documentos XML.
Este documento presenta una introducción al lenguaje XML. Explica los objetivos de aprender XML y sus esquemas, transformaciones y consultas. Describe la estructura básica de los documentos XML, incluyendo elementos, atributos, entidades y la necesidad de que sean bien formados. También introduce conceptos como procesamiento, DTDs y validación.
El documento explica cómo validar documentos XML utilizando DTD (Definición de Tipo de Documento). Las DTD permiten definir la estructura de documentos XML y SGML, y validar que un documento cumpla con dicha estructura. Las DTD pueden escribirse de forma interna o externa al documento XML. Un documento XML es válido si cumple con las reglas establecidas en su DTD asociada respecto a la estructura de elementos, atributos, entidades y notaciones.
El documento habla sobre XML, sus objetivos, temas, definiciones, evolución, mitos, aplicaciones y ventajas. También cubre JSON, la web semántica, ejemplos de mecanismos como RDF, y fuentes RSS. Explica las diferencias entre XML y JSON, y provee ejemplos y recursos sobre temas como ontologías y actividades de W3C sobre la web semántica.
1) XML permite definir lenguajes de marcado para usos específicos y los documentos XML contienen datos autodefinidos. 2) Se presenta un ejemplo de código XML. 3) Para comprender mejor la estructura XML, los documentos XML pueden verse de forma gráfica.
XML es un lenguaje de marcado que permite definir nuevos lenguajes y estructurar documentos. Los documentos XML incluyen elementos anidados con etiquetas, atributos y comentarios. Los documentos deben seguir una gramática definida en un DTD que declara los elementos y atributos permitidos.
El documento explica que XML es un lenguaje de marcado extensible que permite definir lenguajes de marcado para usos específicos. XML separa el contenido de la presentación y puede ser procesado por máquinas y humanos. Los documentos XML pueden validarse usando una definición de tipo de documento (DTD) que especifica los elementos y atributos permitidos.
Este documento proporciona una introducción al lenguaje XML. Explica que XML es un lenguaje de marcado extensible desarrollado a partir de SGML en 1996. XML se centra en los datos y es muy estructurado, permitiendo crear etiquetas personalizadas. También describe el uso de XML para la integración de datos y el intercambio de información entre aplicaciones, y explica conceptos clave como etiquetas, atributos, DTDs y el formato bien formado.
XML y XML Schema. El documento introduce XML como lenguaje de marcado extensible para estructurar datos, los espacios de nombres en XML para evitar conflictos de nombres, y XML Schema como mecanismo para validar documentos XML y definir su estructura.
El documento proporciona una comparación detallada entre XML, HTML, SGML y PDF. Explica las ventajas y desventajas de cada uno, así como sus usos comunes. Luego describe las metas de diseño de XML, incluyendo ser sencillo, extensible y compatible con HTML y SGML. Finalmente, explica conceptos clave de XML como sintaxis, documentos bien formados y válidos, y el uso de DTDs.
El documento describe los esquemas XML (XML Schema), incluyendo su estructura, tipos de datos, validación de documentos XML y más. Explica que un esquema define la estructura de un conjunto de documentos XML y permite validarlos. Luego entra en detalles sobre los tipos de datos, complejos y simples, y cómo crear y restringir tipos propios.
La DTD define la estructura de documentos XML permitiendo su validación. Puede escribirse internamente o externamente al archivo XML mediante una declaración DOCTYPE. La DTD especifica los elementos, atributos, entidades y notaciones que puede contener un documento XML para que sea válido. También puede incluir secciones condicionales y comentarios.
Este documento presenta una introducción a las declaraciones de tipo de documento (DTD) en XML. Explica que las DTD permiten especificar la estructura de un documento XML, incluyendo los elementos, atributos y anidamientos permitidos. También cubre temas como DTD internas, externas y mixtas, así como el uso de entidades para reutilizar definiciones y referenciar contenido externo.
El documento explica que el DOM es una estructura de objetos generada por el navegador cuando se carga una página XHTML, permitiendo acceder y manipular dinámicamente el contenido y aspecto de la página. El DOM transforma la página en un árbol de nodos interconectados representando cada elemento. JavaScript permite acceder a estos nodos para modificar o crear elementos en la página.
El documento introduce las JavaServer Pages (JSP), una tecnología que permite separar la lógica de negocio de la presentación en aplicaciones web. JSP utiliza etiquetas para incrustar código Java en páginas HTML y generar contenido dinámico. Las páginas JSP se compilan en servlets Java para procesar solicitudes y responder con páginas HTML, lo que mejora la velocidad y escalabilidad con respecto a otras tecnologías como ASP. El documento también explica cómo manejar formularios y crear componentes reutiliz
Caso practico de base de datos orientada a objetosMiguel Martinez
Este trabajo presenta el diseño e implementación de una aplicación web para gestionar información sobre reptiles y anfibios en el macrosistema Iberá en Argentina, utilizando una base de datos objeto-relacional de Oracle9i. El objetivo es generar un sistema de información que permita el manejo de datos complejos y sus relaciones, incluyendo tipos de datos, colecciones, herencia y asociación. Los módulos de la aplicación se desarrollan en Java sobre J2EE. Se emplearon herramientas como Rational Rose, JDeveloper 9i y Struts.
Este documento trata sobre PHP y XML. Explica qué es XML, da algunos ejemplos como almacenar información sobre películas y recetas de cocina en XML. Luego introduce SimpleXML para cargar, acceder y modificar archivos XML en PHP. También cubre servicios web basados en XML y cómo conectarse a canales RSS y mostrar datos de Flickr y Twitter usando APIs basadas en XML.
10 herramientas importantes de un tecnico de computadorasJuan1215
Este documento lista las principales herramientas que debe tener un técnico de computadoras, incluyendo un kit de herramientas, multímetro, spray de aire comprimido, pulsera antiestática, probador de fuentes de poder, convertidor IDE/SATA a USB, linterna LED, pasta térmica, mini aspiradora USB y memoria USB. Cada herramienta se describe brevemente junto con su rango de precios típico.
10 herramientas de software para un tecnico de computadorasJuan1215
El documento lista 10 de las herramientas de software más importantes para un técnico de computadoras, incluyendo sistemas operativos como Windows, antivirus como Avira, el navegador Chrome, programas de limpieza como CCleaner, utilidades de monitoreo como Hard Disk Sentinel, programas de grabación como Nero Burning ROM, asistentes de controladores como DriverMax, suites de oficina como Microsoft Office, utilidades de diagnóstico como Test Disk, y optimizadores de memoria como RAM Saver Pro.
El documento introduce los conceptos básicos de Adobe Photoshop CS6, incluyendo cómo iniciar el programa, abrir y guardar archivos, los fundamentos de píxeles, resolución, modos de color y espacio de trabajo. Explica las herramientas y galerías de herramientas, y proporciona una introducción al uso de Adobe Bridge y Mini Bridge para la gestión de archivos.
El resumen del documento es el siguiente:
1) Los atacantes engañaron a un proveedor HVAC de Target para acceder a su sistema de control de aire y así infectar los servidores y terminales POS de Target con malware.
2) El malware enviaba los datos de tarjetas de crédito de los clientes de Target a servidores externos, lo que resultó en la filtración de información de 40 millones de tarjetas de crédito y 70 millones de registros de clientes.
3) El ataque reveló fallas en la seguridad de Target como
Este documento presenta 5 maravillas naturales que se formaron de manera accidental. La primera es un camino de árboles en Irlanda plantados hace años. La segunda es un géiser en el desierto de Nevada creado por una perforación para buscar agua. La tercera son las formaciones rocosas únicas en España moldeadas por la minería romana. La cuarta es un túnel de árboles en Ucrania formado por el paso del tren. La quinta es una piscina natural en Texas resultado de un derrumbe que creó un pequeño
MANPOWER - Insourcing e-learning: la (auto)gestión del conocimientoCRISEL BY AEFOL
El documento habla sobre la necesidad de gestionar el conocimiento de manera dinámica debido a los constantes cambios en el volumen de datos, la información, los nuevos conocimientos y las tendencias del mercado. Explica que la implementación de Checkpad LMS ayudó a la organización a ingresar a una segunda generación de gestión del conocimiento al ser una herramienta que se legitimó, es simple, veloz, intuitiva y que dio respuesta a los procesos críticos de gestión del conocimiento de la organización.
Los agroglifos son diseños geométricos que aparecen en campos de cultivo de forma misteriosa durante la noche sin dejar rastros. Se han reportado en varios países del mundo y su origen es desconocido aunque hay varias teorías como que son causados por ovnis, armas militares o ondas de sonido. Los agroglifos son perfectamente simétricos y complejos y a menudo aparecen cerca de lugares considerados esotéricos lo que alimenta la especulación sobre su posible origen extraterrestre.
Municipales 2012 Analisis y estadisticas definitivos de alcaldes,concejales y...GRS Social Networking
El documento presenta los resultados definitivos de las elecciones municipales de 2012 en Chile. La Coalición obtuvo más alcaldes electos que la Concertación, aunque el pacto "Por un Chile Justo" podría sumarse a esta última. La participación fue baja, con solo el 43% de los votantes habilitados sufragando. La Democracia Cristiana fue el partido con más alcaldes electos, seguido por la UDI.
La Cisterna de la Basílica es una cisterna subterránea de agua construida en Constantinopla en el 532 a.C. por el emperador Justiniano I utilizando 7,000 esclavos para abastecer a la ciudad con 80,000 litros de agua en caso de cerco. La cisterna mide 143 por 65 metros y está soportada por 336 columnas de mármol de 9 metros de altura en un estilo jónico, corintio y dórico. Después de ser sellada durante el periodo otomano, la c
México es un país diverso con una rica cultura e historia compartida con otros países de América Latina. El documento introduce el curso de cultura latinoamericana comenzando con México, destacando aspectos como su ubicación geográfica, costumbres, gastronomía y el uso de la letra "x" en el español mexicano. El estudiante aprenderá sobre la cultura y lengua mexicana a través de videos y actividades.
Este documento presenta la publicación "Mundo Electrónico", la cual ofrece artículos sobre diseño e integración de sistemas electrónicos, economía empresarial y legislación para ingenieros del sector. Incluye noticias nacionales e internacionales sobre tendencias tecnológicas, nuevos productos y eventos del sector como el Congreso Mundial de Móviles 2013. Además, proporciona información comercial sobre tarifas de publicidad.
El documento describe cómo las herramientas de cloud computing como Google Apps pueden optimizar la gestión de las pymes. Explica que los sistemas colaborativos basados en la nube permiten una mayor integración y colaboración entre los empleados a un bajo coste. Se detallan las aplicaciones de Google Apps y otras herramientas como Teambox para la gestión de proyectos. Finalmente, se ofrecen consejos para que las pymes den el salto a la nube de forma gradual e implanten estas herramientas de forma eficiente.
El profesor Miguel Orellana está de acuerdo con las propuestas de reforma educacional del gobierno, incluyendo la desmunicipalización de la educación, mejorar la calidad y evitar la segregación. Sin embargo, cree que será difícil que el gobierno cumpla todas sus promesas y que los cambios serán paulatinos. Considera importante fortalecer el rol del Estado y mejorar los aprendizajes de los estudiantes.
Presentación muy chula ApéndiceTecnologíaXML.pptprofesoralpe4
Este documento proporciona una introducción a la tecnología XML. Explica brevemente qué es XML, sus componentes básicos como elementos, atributos y etiquetas, y las herramientas para definir la estructura de documentos XML como DTDs y esquemas. También resume APIs comunes para procesar documentos XML como SAX y DOM.
Este documento presenta una introducción a los servicios web y Java. Explica los fundamentos de XML y su estructura, así como las diferentes formas de validar documentos XML como DTD y esquemas XML. También resume los contenidos del documento, incluyendo conceptos como el modelo SOA, lenguajes y protocolos de servicios web, y cómo crear y consumir servicios web existentes desde Java.
Este documento proporciona una introducción a XML, incluyendo una definición de XML, cómo XML se utiliza para estructurar y transportar datos en lugar de mostrarlos, y que las etiquetas XML no están predefinidas y deben definirse por el autor. También explica que XML es bien formado cuando las etiquetas de inicio y final coinciden y los atributos están entre comillas.
El documento describe XML y sus características. Explica que XML es un lenguaje de marcado extensible usado para almacenar y transportar datos, y que separa el contenido de la presentación. También describe los elementos necesarios para crear documentos XML bien formados como etiquetas anidadas correctamente, atributos entre comillas, y la importancia de seguir las reglas sintácticas de XML.
XML es un lenguaje de etiquetado que permite definir formatos de documentos para compartir datos en la web. Se creó como un subconjunto más simple de SGML para documentos estructurados. XML se enfoca en el contenido de los datos más que en su presentación, y permite validar y extender su estructura. Existen dos tipos principales de analizadores XML en PHP: basados en árboles como DOM y SimpleXML, y basados en eventos como SAX.
Este documento proporciona una lista de recursos bibliográficos y otros recursos relacionados con tecnologías web como XML, XHTML, REST y APIs. También incluye un índice de temas a cubrir como vocabularios, namespaces, DTDs, ATOM, aplicaciones web, servicios en Java y más. El documento servirá como guía de referencia para el curso.
Este documento provee una introducción al lenguaje XML y los esquemas XML (XSD). Explica que XML es un formato de texto para representar información de manera estructurada y que los XSD definen las reglas y restricciones para los documentos XML. Además, describe los componentes básicos de un archivo XML como las etiquetas, atributos y contenido, y los usos y propósitos de los esquemas XML como validar documentos y definir tipos de datos.
XML es un lenguaje de marcado que permite estructurar la información de manera jerárquica y definir etiquetas personalizadas según las necesidades de cada documento, a diferencia de HTML cuyas etiquetas son fijas. XML también permite validar documentos a través de definiciones de tipo de documento que especifican la estructura permitida.
Este documento explica las características básicas de XML, incluyendo que XML permite definir etiquetas semánticas propias, su historia, objetivos y usos, estructura de documentos XML, ejemplos, y tecnologías relacionadas como DTD, CSS, SAX y DOM. También contrasta las diferencias entre HTML y XML en términos de estructurar vs formatear la información.
Este documento proporciona una introducción a XML, describiendo sus características principales como un lenguaje de marcado extensible que permite definir otros lenguajes de etiquetas y estructurar datos. También presenta ejemplos de aplicaciones de XML como la transmisión de información y el comercio electrónico.
Este documento describe el lenguaje XML y sus características. XML es un lenguaje de marcas para crear documentos que contienen información estructurada. Los objetivos de XML incluyen ser utilizable en Internet, soportar una variedad de aplicaciones y ser compatible con SGML. XML permite crear nuevos lenguajes etiquetados personalizados y garantiza que los datos sean uniformes e independientes del fabricante.
XML permitirá el intercambio de información sin problemas de contenido o presentación, garantizando que los datos estructurados sean uniformes e independientes de aplicaciones. XML es un lenguaje de marcas que ofrece un formato para describir datos estructurados y permite definir lenguajes específicos como XHTML. Un documento XML incluye un prólogo, un cuerpo con un elemento raíz y etiquetas, y ofrece ventajas como ser extensible y mejorar la compatibilidad entre aplicaciones.
Este documento describe la tecnología XML y sus aplicaciones. Introduce XML, sus reglas de sintaxis y tipos de documentos. Explica cómo usar XML con HTML y presentar documentos XML usando hojas de estilo. También cubre aplicaciones como lenguajes planeados para publicación web y semántica web, así como comunicaciones y servicios web.
XML permitirá el intercambio de información sin problemas de contenido o presentación, garantizando que los datos estructurados sean uniformes e independientes de aplicaciones. XML es un lenguaje de marcas que ofrece un formato para describir datos estructurados y conservar las propiedades importantes de SGML, permitiendo definir nuestro propio lenguaje. XML tiene ventajas como ser extensible, usar analizadores estándares, mejorar la compatibilidad entre aplicaciones, y transformar datos en información con significado y contexto.
El documento describe las aplicaciones basadas en XML. Explica cómo XML se puede usar para la personalización de sitios web, el intercambio de datos comerciales, y la gestión de información. También describe cómo funcionan las herramientas XML como los navegadores, editores, y procesadores XML.
Este documento presenta la unidad 7 sobre XML. Explica la estructura de los datos XML, incluyendo etiquetas y elementos. También describe los esquemas XML como DTD y XML Schema, que definen la sintaxis válida de los documentos. Por último, introduce lenguajes como XPath, XQuery y XSLT para consultar, transformar y almacenar datos XML.
Vídeo de la presentación: http://www.youtube.com/watch?v=qJ3_9F7bEp8
XML (eXtensible Markup Language, Lenguaje de marcas extensible)
- Orígenes: GML, SGML
- Documento correcto: bien formado y válido
Más información:
- http://accesibilidadweb.dlsi.ua.es
- http://desarrolloweb.dlsi.ua.es
Autor: Sergio Luján Mora, profesor de la Universidad de Alicante (http://www.ua.es)
Este documento introduce XML y sus fundamentos. Explica que XML es un metalenguaje que permite definir lenguajes de marcado para usos específicos, a diferencia de HTML que es un lenguaje estándar para la web. Luego describe la estructura básica de un documento XML, incluyendo elementos, atributos, entidades predefinidas y más. Finalmente, introduce conceptos como documentos bien formados y validados, DTDs y esquemas XML.
Este documento introduce XML (eXtensible Markup Language), describiendo su estructura, documentos bien formados, elementos, atributos, DTDs y XSL. XML permite definir lenguajes de marcado personalizados para diferentes usos y separa contenido de presentación. El documento explica los fundamentos de XML y cómo crear documentos válidos de acuerdo a una DTD.
XML es un lenguaje de marcas desarrollado por el W3C para estructurar documentos. Permite definir etiquetas personalizadas para datos y su estructura. XML no solo se usa para la web, sino también para el intercambio de información estructurada entre sistemas. Los documentos XML deben seguir reglas sintácticas como anidar etiquetas correctamente y tener una estructura jerárquica para ser considerados bien formados.
Este documento presenta información sobre los huesos del cuerpo humano. Explica que los huesos forman el esqueleto y le dan forma y movimiento al cuerpo, actuando como una estructura de soporte similar a los fierros de un edificio. También menciona algunos tipos de huesos y propone una actividad práctica para observar cómo los huesos se ablandan en vinagre a lo largo de varias semanas.
El documento habla sobre rompecabezas, describiéndolos como juegos de habilidad y paciencia que consisten en recomponer una figura o imagen combinando correctamente piezas que contienen partes de la figura u imagen. Las piezas pueden ser planas de varias formas para crear una sola imagen, o cubos para crear seis imágenes diferentes.
Los animales se mueven para buscar alimento o nuevos hábitats utilizando diferentes métodos como patas, alas o aletas. La profesora Rosalynn Patty Cerron Lliempe enseña a los estudiantes de segundo grado sobre la locomoción en los animales y cómo usan sus extremidades para trasladarse.
El documento proporciona instrucciones para una actividad escolar en la que los estudiantes describirán a su madre en una cartulina y grabarán un video contando cómo es su madre físicamente, a qué se dedica, cómo le gusta vestirse, qué juegos hacen juntos y expresando cuánto la quieren. La actividad forma parte de una lección sobre descripciones de personas y comunicación para estudiantes de segundo grado.
Este documento discute el impacto del neoliberalismo en las universidades, incluyendo la contratación temporal de profesores, el aumento de la burocracia administrativa y la transferencia de la instrucción a trabajadores precarios como ayudantes y estudiantes graduados. También analiza cómo la carga de la deuda estudiantil y la desconexión de los estudiantes con el profesorado sirven como técnicas de adoctrinamiento que controlan a los estudiantes, en contraste con cómo la educación debería fomentar la democracia y la
Este documento describe un viaje de 2 días y 1 noche a San Jerónimo de Surco y Chosica, que incluye visitas a sitios arqueológicos como Huanano Machay y Tumba Pacha, así como alojamiento en un club social con piscinas y áreas verdes. El viaje también incluye comidas, actividades recreativas y culturales dirigidas por un guía turístico.
La Basílica Catedral Metropolitana de Lima ha tenido una larga y rica historia desde su fundación en 1535. Ha pasado por varias reconstrucciones a lo largo de los siglos debido a terremotos y otros daños. Actualmente, data de 1898 y es considerada el edificio arquitectónico más antiguo de la capital peruana.
El documento describe el proceso de venta de un servicio de visita a colegios y empresas. El proceso incluye visitar al cliente potencial, solicitar una fecha tentativa de interés, confirmar una cita con la secretaria, coordinar la entrega del servicio con el conductor del tour, y finalizar con la cancelación del servicio.
El documento presenta los resultados de una encuesta realizada a 100 personas de entre 19 y 25 años de clase socioeconómica B y C sobre su percepción del centro comercial Royal Plaza en Lima Norte. Los principales hallazgos son que la mayoría no lo identifica como un centro comercial debido a su pequeño tamaño y falta de tiendas y actividades, y que prefieren centros más grandes como Mega Plaza. Se propone una campaña de posicionamiento enfocada en redes sociales y publicidad digital para mejorar la imagen de Royal Plaza.
El documento resume la historia y operaciones de dos empresas peruanas de embutidos, Embutidos Braedt y Sociedad Suizo Peruana de Embutidos. Braedt comenzó en 1885 en Alemania y llegó a Perú debido a la segunda guerra mundial. Ofrece varios tipos de chorizos y cabanossis. La Sociedad Suizo Peruana fue establecida en 1988 y también ofrece diferentes variedades de chorizos y cabanossis. Ambas empresas tienen fortalezas como su antigüedad en el mercado peruano, pero también debilidades como preci
El documento describe un proceso de intercambio publicitario entre una empresa y centros campestres. La empresa proporciona material visual para el portal web de los centros y realiza publicidad BTL en sus instalaciones a cambio de que los centros alimenten el portal web con banners y directorios, lo que genera más visitas al portal y los centros. Ambas partes se benefician del posicionamiento y mayor demanda de servicios.
Este documento presenta conceptos clave sobre la variable de producto en marketing, incluyendo clasificaciones de productos (bienes de consumo vs bienes industriales, productos de conveniencia vs de compra vs de especialidad), dimensiones del producto, atributos del producto, marca, envasado, etiquetado y servicios de apoyo. Explica las consideraciones estratégicas para cada una de estas categorías.
El documento presenta los elementos clave de un plan de marketing, incluyendo un análisis de la situación interna y externa de la empresa, la formulación de objetivos y estrategias, los programas de acción específicos, y los presupuestos para la implementación del plan.
El documento habla sobre las características de una marca exitosa. Explica que una marca se construye ofreciendo productos y servicios relevantes para los clientes, actuando de manera consistente y tocando las emociones de los clientes al inspirándolos, retándolos y sorprendiéndolos. También menciona que la experiencia del cliente, la calidad, la innovación y la responsabilidad social son componentes importantes de una marca. Por último, recomienda analizar aspectos como la categoría, competencia y clientes objetivo para desarrollar una
El documento habla sobre la competencia de las empresas. Define la competencia como aquellas empresas que ofrecen productos similares o sustitutos. Explica que para elaborar un plan de marketing es importante conocer tanto la competencia directa como la indirecta. Además, señala que existen diferentes estrategias para que las empresas puedan crecer, como la penetración de mercados, el desarrollo de productos, el desarrollo de mercados y la diversificación.
El documento describe los beneficios de la planificación de marketing, incluyendo mejorar la comunicación, fomentar el trabajo en equipo y ayudar a prever y evitar problemas. Luego explica tres tipos de planes de marketing: planes estratégicos a largo plazo, planes tácticos funcionales a mediano plazo y planes operativos a corto plazo. Finalmente, proporciona un ejemplo práctico de cómo una marca podría desarrollar estos tres niveles de planes.
Este documento presenta información sobre planeamiento estratégico de marketing. Explica conceptos clave como marketing, objetivos de marketing y estrategia. También describe los componentes de un plan de marketing, incluyendo análisis FODA, objetivos, posicionamiento, mercado meta y evaluación de resultados. Finalmente, propone un caso práctico de aplicar el plan de marketing para una nueva línea de zapatos escolares.
El documento resume las diferencias entre publicidad y propaganda. La publicidad tiene como objetivo principal vender productos o servicios de manera comercial, mientras que la propaganda busca manipular opiniones en temas políticos, religiosos o filosóficos. También explica que la publicidad construye imágenes a largo plazo, mientras que la promoción busca una respuesta más inmediata de los consumidores. Finalmente, señala algunos tipos de promociones como las de intercambio, calendario, interactivas y estacionales.
La agencia publicitaria es una empresa especializada en publicidad que crea campañas para sus clientes, los anunciantes. Funciona analizando primero al cliente, su producto y mercado para crear un mensaje y plan único. Una campaña publicitaria es el conjunto de estrategias comunicacionales para dar a conocer un producto, y se planifica considerando el objetivo, público, estrategia y calendario. La planificación de una campaña en una agencia implica investigación, creación del plan con objetivos y acciones, y control y evaluación.
El documento habla sobre la gestión inteligente de precios. Explica que el pricing se basa en asignar precios de acuerdo al valor que el cliente le da al producto. Luego, detalla seis normas para mejorar la gestión de precios, como comprender la diferencia entre precio y valor, investigar el precio óptimo, entender la sensibilidad a cambios de precio y aprovechar el comportamiento emocional de los clientes ante los precios. Finalmente, hace énfasis en la importancia de comunicar los precios de forma inteligente y evitar las gu
LA GLOBALIZACIÓN RELACIONADA CON EL USO DE HERRAMIENTAS.pptxpauca1501alvar
Explica cómo las tecnologías digitales han facilitado e impulsado la globalización al eliminar barreras geográficas y permitir un flujo global sin precedentes de información, bienes, servicios y capital. Se describen los impactos de las herramientas digitales en áreas como la comunicación global, el comercio electrónico internacional, las finanzas y la difusión cultural. Además, se mencionan los beneficios como el crecimiento económico y el acceso a la información, así como los desafíos como la desigualdad y el impacto ambiental. Se concluye que la globalización y las herramientas digitales se refuerzan mutuamente, promoviendo una creciente interdependencia mundial.
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)codesiret
Los protocolos son conjuntos de
normas para formatos de mensaje y
procedimientos que permiten a las
máquinas y los programas de aplicación
intercambiar información.
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)AbrahamCastillo42
Power point, diseñado por estudiantes de ciclo 1 arquitectura de plataformas, esta con la finalidad de dar a conocer el componente hardware llamado tarjeta de video..
El uso de las TIC en la vida cotidiana.pptxjgvanessa23
En esta presentación, he compartido información sobre las Tecnologías de la Información y la Comunicación (TIC) y su aplicación en diversos ámbitos de la vida cotidiana, como el hogar, la educación y el trabajo.
He explicado qué son las TIC, las diferentes categorías y sus respectivos ejemplos, así como los beneficios y aplicaciones en cada uno de estos ámbitos.
Espero que esta información sea útil para quienes la lean y les ayude a comprender mejor las TIC y su impacto en nuestra vida cotidiana.
Uso de las Tics en la vida cotidiana.pptx231485414
Las Tecnologías de la Información y las Comunicaciones (TIC), son el conjunto de recursos, herramientas, equipos, programas informáticos, aplicaciones, redes y medios.
La inteligencia artificial sigue evolucionando rápidamente, prometiendo transformar múltiples aspectos de la sociedad mientras plantea importantes cuestiones que requieren una cuidadosa consideración y regulación.
Presentación realizada en el #Collabdays #Madrid 2024 donde traté las funcionalidades de Gobierno que incorpora ShrePoint Premium para facilitar la adopción de Copilot para Microsoft 365: Controles de Acceso Restringido | Acceso Condicional Granular | Bloqueo de descarga de archivos | Gestión del Ciclo de Vida de Sitios | Acciones recientes en Sitios de SharePoint | Informe de cambios
2. Requisitos
- PC con Windows 98 / NT / 2000, 64 MB de RAM (dependen del
servidor a usar)
Para entorno Microsoft:
- Internet Explorer
- Parser MSXML 3 o superior.
- Servidor IIS o Personal Web Server de Microsoft.
Para entorno Java:
- JDK 1.1.8 o superior
- JAXP (Java API for XML Processing)
- Servidor Web (por ej. iPlanet Web Server FastTrack Edition)
3. El estándar XML
Qué es XML y qué elementos lo
El estándar XML
componen
Acceso a los datos de un documento
DOM
XML
Cómo dar formato a un documento
XSL
XML con XSL
Aplicaciones Uso práctico de XML en entornos
Prácticas Java y Microsoft
4. XML - Introducción
• XML (eXtended Markup Language) es un lenguaje que
proporciona un formato para describir datos estructurados
• Es un lenguaje de marcas
• Es un subconjunto de SGML (Standard Generalized
Markup Language)
• Definido por el W3C en 1998
5. XML - Características
• Lenguaje de marcas extensible, es un metalenguaje
• Es “case sensitive”
• Representación estructural de los datos en forma de árbol
• Define los datos en una aplicación, no su presentación
• Permite interoperatividad entre máquinas distintas (un
estándar para el intercambio de datos)
6. XML - Ejemplo de documento XML
<?xml version="1.0"?>
<!DOCTYPE discos SYSTEM "cds.dtd">
<discos>
<disco>
<artista tipo="individual">Frank Sinatra</artista>
<titulo numerodepistas="2">In The Wee Small Hours</titulo>
<pistas>
<pista>In The Wee Small Hours</pista>
<pista>Mood Indigo</pista>
</pistas>
<precio>$12.99</precio>
</disco>
<disco>
<artista tipo="band">The Offspring</artista>
<titulo numerodepistas="2">Americana</titulo>
<pistas>
<pista>Welcome</pista>
<pista>Have You Ever</pista>
</pistas>
<precio>$12.99</precio>
</disco>
</discos>
7. XML - Elementos XML
•Un documento XML está formado por tags o etiquetas
para la estructuración de los datos.
Por ejemplo: <disco>
•Un elemento XML está formado por una etiqueta de
inicio y otra etiqueta final. Entre ambas está el valor del
dato al que se refiere el tag.
En este ejemplo, el elemento pista tiene como valor
“Welcome”:
<pista>Welcome</pista>
8. XML - Elementos XML - Atributos
• Un elemento XML puede contener uno o más atributos
en su tag inicial
En este ejemplo, el atributo sería “tipo”, y su valor
“individual”:
<artista tipo="individual">Frank Sinatra</artista>
• Un elemento XML puede no contener un valor, solamente
atributos. En este caso se puede escribir con un solo tag
terminado en /.
Esta expresión
<precio valor=“$12.99”></precio>
equivale a
<precio valor=“$12.99”/>
9. XML - Documentos XML
Un documento XML es un conjunto de elementos XML anidados
(con estructura de árbol)
Reglas a tener en cuenta:
• Todos los elementos deben cerrarse
• Los elementos deben estar limpiamente anidados
• Un documento XML debe tener un único elemento raíz
10. XML - Reglas de Construcción de
Nombres XML
En la construcción de nombres XML (atributos y elementos
XML) se deben tener en cuenta las siguientes reglas:
• Un nombre XML puede contener los siguientes caracteres:
Letras (A-Z, a-z), dígitos (0-9), guión bajo (_), guión (-) y punto
(.)
• Debe empezar con una letra o guión bajo
• Puede usar dos puntos (:) sólo en namespaces
• No puede contener espacios en blanco
11. XML - Documento XML Bien Formado
Se dice que un documento XML está bien formado si
cumple las siguientes reglas:
• Todo tag debe tener su correspondiente tag final.
• Los elementos deben quedar debidamente anidados
• Debe haber exactamente un elemento raíz
• Los valores de los atributos deben estar entre comillas
• Un mismo elemento no debe tener más de un atributo con
el mismo nombre
• Los comentarios no deben colocarse dentro de los tags
• Los caracteres & y < deben ser precedidos por un si
forman parte de los datos de un elemento o atributo.
Validar un documento XML Con un Parser XML
12. XML - Ejercicio 1
¿Es el siguiente documento XML un documento bien formado?
<empleados>
<empleado nombre=“Juan” apellido=“Pérez” apellido=“Sánchez”>
<direccion calle=“López Peñalver”>
</empleado>
<Empleado nombre=“Alberto”>
<direccion calle=“López Peñalver”>
</Empleado>
<empleado>
<localidad>Málaga</localidad>
</Empleado>
</empleados>
<oficinas>
<oficina 1tlf=“951000000” 2tlf=“951000001”>
<ciudad>Madrid</ciudad>
</oficina>
<oficina>
<ciudad telefono=“12312312”>Barcelona</ciudad>
</oficina>
</oficinas>
13. XML - Ejercicio 2
Crear un documento XML válido que contenga los siguientes datos:
Vuelo Origen Destino Salida Llegada
IB777 Málaga Madrid 8:00 8:50
IB888 Madrid Barcelona 9:00 10:10
IB999 Madrid Málaga 12:00 12:50
Código Avión Vuelos
1234 IB777,IB999
1122 IB888
14. XML - Namespaces
•Un XML namespace es una colección de nombres que
pueden ser usados en elementos o atributos.
•Un namespace distingue nombres de forma única en la Web,
para evitar conflictos.
•Un namespace puede ser identificado por una:
URI (Universal Resource Identifier)
URL (Uniform Resource Locator)
URN (Uniform Resource Number)
15. XML - Namespaces - Declaración
Se declara con el atributo xmlns en el elemento deseado.
Existen dos tipos de declaración:
•Declaración por defecto. No hace falta usar prefijo, todos los
nombres pertenecen al namespace declarado:
<BOOK xmlns="urn:BookLovers.org:BookInfo">
<TITLE>A Suitable Boy</TITLE>
<PRICE currency="US Dollar">22.95</PRICE>
</BOOK>
•Declaración explícita. Cada nombre debe usar un prefijo
especificando el namespace al que pertenece:
<BOOKS>
<bk:BOOK xmlns:bk="urn:BookLovers.org:BookInfo"
xmlns:money="urn:Finance:Money">
<bk:TITLE>A Suitable Boy</bk:TITLE>
<bk:PRICE money:currency="US Dollar">22.95</bk:PRICE>
</bk:BOOK>
</BOOKS>
16. XML - Prólogo del Documento XML
Antes del elemento raíz del documento XML pueden aparecer
una serie de elementos, formando la siguiente estructura:
<?xml version="1.0"?> Declaración XML
<!--
Discos.xml, ejemplo de documento XML Comentarios
-->
<?xml-stylesheet href=“discos.xsl” type=“text/xml”?> Instrucciones de
procesamiento
<!DOCTYPE discos SYSTEM “discos.dtd">
Document Type
<discos> Declaration
....
</discos> Elemento raiz
17. XML - Prólogo del Documento XML
Declaración
• No es necesaria para que el documento sea bien formado
• Incluye los siguientes atributos:
• version: versión de XML
• encoding: codificación de los caracteres
• standalone: especifica si no es necesaria una validación por
DTD
<?xml version="1.0" encoding="ISO-8859-1"?>
Comentarios
• Pueden aparecer en cualquier sitio excepto dentro de un tag
<!--
Discos.xml, ejemplo de documento XML
-->
18. XML - Prólogo del Documento XML
Instrucciones de procesamiento
• Asocia el documento XML con algún elemento externo, como por
ejemplo una hoja de estilos xsl.
<?xml-stylesheet href=“discos.xsl” type=“text/xml”?>
Document Type Declaration
• Referencia a un DTD (Document Type Definition), el cual valida el
documento XML.
<!DOCTYPE discos SYSTEM “discos.dtd">
19. XML - DTDs (Document Type
Definition)
• Un DTD es un documento que especifica las restricciones que
debe cumplir un documento XML.
• Un documento válido es aquel que cumple las restricciones
especificadas en su DTD. Un documento es inválido si no las
cumple o simplemente no referencia a ningún DTD.
• Permite la declaración de tres tipos de estructuras:
Elementos
Atributos
Entidades
• Debido a sus limitaciones se creó el lenguaje XML Schema.
20. XML - DTDs - Declaración
Un DTD se puede declarar de 2 formas:
• En un fichero aparte
<!DOCTYPE discos SYSTEM “discos.dtd">
• En el propio documento XML (en el prólogo):
<!DOCTYPE empleado
[
<!ELEMENT empleado (nombre, direccion)>
<!ELEMENT nombre (#PCDATA)>
<!ELEMENT direccion (ciudad, calle)>
<!ELEMENT ciudad (#PCDATA)>
<!ELEMENT calle (#PCDATA)>
]
>
21. XML - DTDs - Declaración de Elementos
• Un Elemento se declara especificando su nombre y los
elementos que lo componen:
<!ELEMENT empleado (nombre, direccion)>
• Si el elemento no contiene ningún otro elemento, se
especifica el tipo del valor que contiene
<!ELEMENT nombre (#PCDATA)>
#PCDATA permite caracteres alfanuméricos
•Así, el siguiente documento XML sería válido para el DTD anterior:
<empleado>
<nombre>Antonio</nombre>
<direccion>
<ciudad>Málaga</ciudad>
<calle>Larios</calle>
</direccion>
</empleado>
22. XML - DTDs - Declaración de Elementos
• Si separamos con comas los elementos hijo, el orden de
aparición de éstos debe cumplirse
<!ELEMENT empleado (nombre, direccion)>
• Si separamos los elementos con una barra ( | ), con que
aparezca sólo uno de ellos ya se cumplirá la condición
<!ELEMENT empleado (nombre | direccion)>
• También pueden agruparse con paréntesis:
<!ELEMENT empleado ((nombre | apellido) , direccion)>
23. XML - DTDs - Declaración de Elementos
Modificadores
• Los siguientes modificadores especifican el número de elementos
que deben aparecer:
* 0 ó más
+ 1 ó más
? 0ó1
• Si no se muestra ningún modificador, debe aparecer
exactamente 1 elemento.
Ejemplos:
<!ELEMENT empleado (nombre , apellido? , direccion+)>
<!ELEMENT empleado (nombre , apellido , (direccion | telefono)*)>
24. XML - DTDs - Declaración de Elementos
Elementos Vacíos
• Si un elemento no contiene valor, se declara con la palabra EMPTY
<!ELEMENT direccion EMPTY>
Contenido ANY
• Si un elemento puede tener cualquier tipo de valor o de elementos
compuestos, se declara con la palabra ANY
<!ELEMENT otrosDatos ANY>
25. XML - DTDs - Ejercicio 1
Crear un DTD que valide la siguiente estructura:
<proveedores>
<proveedor>
<nombre>Pascal</nombre>
<productos>
<producto>Leche</producto>
<producto>Flan</producto>
</productos>
</proveedor>
<proveedor>
<nombre>Capitán Pesconovo</nombre>
<productos>
<producto>Merluza</producto>
</productos>
<telefono>
952888777
</telefono>
</proveedor>
</proveedores>
26. XML - DTDs - Declaración de Atributos
• Un elemento puede tener 1 o más atributos. Por ejemplo, para
declarar los atributos ciudad, calle y numero del elemento
direccion, se haría de la siguiente forma:
<!ATTLIST direccion
ciudad CDATA #FIXED <direccion ciudad=“Málaga” calle=“Larios”
calle CDATA #REQUIRED numero=“5”/>
numero CDATA #IMPLIED
>
• La expresión #REQUIRED indica que el atributo es
obligatorio
• La expresión #IMPLIED indica que el atributo es opcional
• La expresión #FIXED indica que el atributo no es modificable
• La expresión CDATA es el tipo de dato (datos alfanuméricos)
• Se puede direccion pais un valor por defecto:
<!ATTLIST especificar CDATA “España”>
27. XML - DTDs - Declaración de Atributos
Tipos de atributos
• Enumeración. Limita los posibles valores del atributo.
<!ATTLIST empleado sexo (hombre | mujer) #REQUIRED>
• Tipos de atributos simple.
• CDATA. Caracteres alfanuméricos
• ID. Identificador único para un elemento.
• IDREF. Referencia a un número identificador contenido en
el atributo ID de algún otro elemento
<!ATTLIST empleado <empleado empid=“A120”>
empid ID #REQUIRED </empleado>
supervisor IDREF #IMPLIED <empleado empid=“A240” supervisor=“A120”>
> </empleado>
28. XML - DTDs - Declaración de Entidades
• Una entidad es una asociación entre el nombre de la entidad y su
valor. La entidad puede aparecer en el valor de un elemento o
atributo, y será sustituido por su valor.
• Hay 5 entidades predefinidas:
• < (<)
• & (&)
• > (>)
• " (")
• ' (')
• Se pueden definir entidades nuevas:
<!ENTITY empresa “Coritel AOS">
y usarlas de la siguiente forma
<empleado empresa=“&empresa;">
30. XML - Schema
• Estándar para la validación de documentos XML
• Validación mediante un parser
• Mejora con respecto a los DTDs
Permite mayor exactitud en el tipo de datos.
Está escrito en formato XML
Es extensible y escalable
Permite especificar el número de elementos que contiene
un elemento
Las declaraciones de elementos están anidadas
31. XML - Schema - Declaración
• Todo schema debe ser declarado con el elemento Schema y en
el siguiente namespace:
<?xml version="1.0" encoding="ISO-8859-1"?>
<Schema xmlns=“urn:schemas-microsoft-com:xml-data“
xmlns:dt="urn:schemas-microsoft-com:datatypes">
...
</Schema>
• Al ser el schema un documento XML, la primera línea será la
versión de XML usada.
• Se almacena en un archivo con extensión xml.
32. XML - Schema - Elementos
• Elementos simples:
<ElementType name=“precio“ content=“textOnly”/>
content: textOnly, eltOnly, empty, mixed (por defecto)
• Elementos compuestos:
<ElementType name=“producto“ order=“seq”>
<element type=“nombre” minOccurs=“1”/>
<element type=“precio”/>
</ElementType>
minOccurs: número mínimo de apariciones del elemento
0,1
maxOccurs: número máximo de apariciones del elemento
1,*
order: seq (por defecto), one, many
33. XML - Schema - Elementos
• Agrupación: especifica reglas de aparición para un subconjunto de
elementos
<ElementType name=“producto“>
<element type=“nombre”/>
<element type=“precio”/>
<group order="one">
<element type=“descripcion"/>
<element type=“categoria"/>
</group>
</ElementType>
35. XML - Schema - Referencia al schema
Un documento XML especifica que debe ajustarse a un schema de
la siguiente forma:
<productos xmlns=“x-schema:schemaproductos.xml">
...
</productos>
36. XML - Schema - Ejercicio 1
Ejercicio 1: XML Schema
Ejercicio 1.1
• Crear un XML Schema en productosesq.xml para la validación
del archivo productos.xml, donde debe haber al menos 1
producto, idProducto sea obligatorio, cada producto tenga al
menos 1 procedencia y el precio sea opcional.
37. XML - Schema - Tipos
Los tipos se especifican con el atributo dt:type
<ElementType name=“precio“ dt:type=“int”/>
Tipos:
id valor único
idref referencia a un id
string cadena
boolean 0ó1
char 1 carácter
date fecha en formato 1994-11-05
time hora en formato 08:15:27
int entero consigo opcional
float número real
i1,i2,i4,i8 entero, especificando el número de bytes
r4,r8 real, especificando el número de bytes
ui1,ui2,ui4,ui8 entero sin signo
38. XML - Schema - Restricciones
El elemento datatype permite especificar el tipo de un elemento o
atributo y restringir sus valores
<ElementType name=“FechaEntrega" content="textonly">
<datatype dt:type="date" dt:min="1969-07-20“
dt:max=“2003-12-31"/>
</ElementType>
Posibles atributos de datatype:
dt:type tipo del elemento o atributo
dt:values valores posibles si dt:type = enumeration
dt:max máximo valor permitido
dt:maxExclusive máximo valor permitido excluyente
dt:min mínimo valor permitido
dt:minExclusive mínimo valor permitido excluyente
dt:maxLength máxima longitud del valor
39. XML - Schema - Enumeración
En la enumeración sólo es válido uno de los valores especificados:
<AttributeType name=“calidad" dt:type="enumeration“
dt:values=“alta media baja"/>
40. XML - Schema - Ejercicio 2
Ejercicio 2: XML Schema
Ejercicio 2.1
• Crear un XML Schema para la validación del archivo
clientes.xml, de forma que:
idCliente sea obligatorio y número de 5 dígitos como
máximo
dni sea obligatorio y alfanumérico con 8 caracteres máximo
localidad opcional
nombre obligatorio
apellido1 opcional
apellido2 opcional, pero si aparece debe ser después de
un apellido1
sexo opcional, y será “Hombre” o “Mujer”
direcciones es opcional, pero si aparece habrán 1 ó más
direcciones. ciudad, calle y número deben aparecer en ese
orden
41. XML - SAX
• SAX (Simple API for XML) es una API que permite a una
aplicación escribir código genérico que pueda funcionar con
cualquier parser
• SAX no es un parser en sí, sólo una capa entre una aplicación
y un parser
XML file XML parser SAX aplicación
42. DOM
Qué es XML y qué elementos lo
El estándar XML
componen
Acceso a los datos de un documento
DOM
XML
Cómo dar formato a un documento
XSL
XML con XSL
Aplicaciones Uso práctico de XML en entornos
Prácticas Java y Microsoft
43. DOM - Introducción
• El DOM (Document Object Model) es una API (Application
Programming Interface) creada para acceder a los datos de un
documento XML.
• Muchos lenguajes tienen librerías que permiten acceder al DOM
de un documento XML mediante un parser.
• El estándar “Level 1 DOM” definido por el W3C es seguido, entre
otros navegadores, por Netscape 6 y Explorer 5.
• Al DOM de un documento XML puede accederse desde
Javascript, VBScript u otros lenguajes que lo soporten.
44. DOM - Data Island
• Un Data Island es un documento XML insertado en una página
HTML. Esto se puede conseguir de 2 formas:
• Insertando el código del documento XML en la página:
<XML ID="XMLCliente">
<clientes>
<cliente idCliente=“81422”>
<nombre>Antonio</nombre>
</cliente>
<cliente idCliente=“81555”>
<nombre>Jose Carlos</nombre>
</cliente>
</clientes>
</XML>
• Referenciando el archivo donde está contenido el documento
XML:
<XML ID="XMLCliente" SRC=“clientes.xml"></XML>
45. DOM - Acceso a elementos
• XMLDocument: obtiene el documento XML
• documentElement: obtiene el elemento raiz del documento XML
• childNodes: obtiene una lista de los elementos hijos de un
elemento
• item(n): devuelve el elemento n de una lista
• text: devuelve el valor de un nodo
La expresión
XMLCliente.XMLDocument.documentElement.childNodes.item(0).childNodes.item(0).text
devuelve “Antonio”
• length: devuelve el número de nodos hijos
46. DOM - Acceso a elementos
• firstChild: devuelve el primer elemento hijo de otro elemento
• lastChild: devuelve el último elemento hijo de otro elemento
• getElementsByTagName(nombre) : obtiene una lista de los
elementos encontrados con el nombre indicado. Busca de forma
recursiva.
XMLCliente.XMLDocument.documentElement.getElementsByTagName(“nombre”).item(0).text
devuelve “Antonio”
• nextSibling: devuelve el siguiente elemento en la lista de hijos
del elemento padre, o null si es el último elemento.
• previousSibling: devuelve el anterior elemento en la lista de
hijos del elemento padre, o null si es el primer elemento.
• parentNode: devuelve el nodo padre de un elemento.
47. DOM - Acceso a atributos
• getAttribute(nombre) : obtiene el valor del atributo con el nombre
especificado
XMLCliente.XMLDocument.documentElement.firstChild.getAttribute("idCliente")
devuelve “81422”
• attributes: obtiene una lista de los atributos de un elemento
XMLCliente.XMLDocument.documentElement.firstChild.attributes.item(0).text
también devuelve “81422”
48. DOM - Ejercicio 1
Ejercicio 1: Acceso a XML
Ejercicio 1.1
• Insertar el contenido de clientes.xml en un Data Island en el
código de pagina.htm
• Modificar la función mostrarDatos() para que muestre mensajes
con los siguientes datos:
• Mostrar el nombre del primer cliente
• Mostrar el idCliente del último cliente
• Mostrar el número de clientes
• Hacer un bucle que muestre los dni.
• Hacer un bucle que, para cada cliente, si tiene localidad
que la muestre, y si no, que muestre el mensaje “Sin
localidad”
49. DOM - Modificación de elementos
Creación de un elemento
• createElement(nombre) : devuelve un elemento con el nombre
especificado
• createTextNode(nombre) : devuelve un objeto Text que debe ser
insertado en un elemento
• appendChild(objeto) : inserta un hijo a la lista de hijos de un
elemento. El objeto puede ser un Elemento o un objeto Text.
El siguiente código inserta el apellido al primer cliente con valor
“Fernández”
element = XMLCliente.createElement("apellido");
textNode = XMLCliente.createTextNode("Fernández");
element.appendChild(textNode);
XMLCliente.XMLDocument.documentElement.firstChild.appendChild(element);
50. DOM - Modificación de elementos
Eliminación de un elemento
• removeChild(objeto) : elimina el objeto especificado
La siguiente instrucción elimina el segundo cliente:
XMLCliente.XMLDocument.documentElement.removeChild (
XMLCliente.XMLDocument.documentElement.childNodes.item(1) );
Cambiar el valor de un elemento
Simplemente con la operación de asignación. La siguiente sentencia
modifica el nombre del primer cliente:
XMLCliente.XMLDocument.documentElement.firstChild.firstChild.text = “Jesús";
51. DOM - Modificación de atributos
Creación o cambio de valor de un atributo
• setAttribute(nombre,valor) : si el atributo especificado existe,
cambia su valor, si no, crea uno nuevo y le asigna el valor especificado.
El siguiente ejemplo crea el atributo “dni” para el primer cliente:
XMLCliente.XMLDocument.documentElement.firstChild.setAttribute(“dni", “55333444");
Eliminación de un atributo
• removeAttribute(nombre) : elimina de un nodo el atributo con el
nombre especificado. Este ejemplo borra el atributo “nif” creado en la
sentencia anterior:
XMLCliente.XMLDocument.documentElement.firstChild.removeAttribute(“dni");
52. DOM - Ejercicio 2
Ejercicio 2: Modificación de XML
Ejercicio 2.1
• Referenciar al archivo clientes.xml desde un Data Island en el
código de pagina.htm
• Modificar la función cambiarDatos() para que haga lo siguiente:
• Añadir el atributo “localidad” al segundo cliente con el valor
“Málaga”
• Añadir una etiqueta “apellido” al último cliente con el valor
“Martín”
• Eliminar el primer cliente
• Cambiar el nombre del último cliente por “Jorge”.
• Para comprobar los cambios, hacer 3 bucles que muestren
todos los nombres, apellidos y localidades. Debe mostrar:
Nombres: Jose Carlos, Jorge
Apellidos: Sánchez, Martín
Localidades: Málaga, null
53. XSL
Qué es XML y qué elementos lo
El estándar XML
componen
Acceso a los datos de un documento
DOM
XML
Cómo dar formato a un documento
XSL
XML con XSL
Aplicaciones Uso práctico de XML en entornos
Prácticas Java y Microsoft
54. XSL - Introducción
• XSL (eXtensible Stylesheet Language) es un estándar creado por el
W3C para el tratamiento visual de documentos XML.
• El estándar XSL define dos lenguajes: XSLT y XPath.
• XSLT (XSL Transformations) es un lenguaje que define una serie de
elementos que sirven para dar un formato a un documento XML.
• XPath (XML Path Language) es un lenguaje que define una forma de
construir expresiones que identifican parte de un documento XML.
• Sigue una estructura de árbol, al igual que XML.
Procesador XSLT
• Un procesador XSLT es un programa que se encarga de aplicar una
plantilla XSL a un documento XML.
• Recibe como entrada un documento XSL y otro XML y devuelve
como salida un documento XML, que puede ser una página HTML.
55. XSL - Modo de funcionamiento
• XSLT usa una serie de tags que están definidos dentro de un
namespace. El namespace definido para los tags de XSLT 1.0 debe
definirse en el tag stylesheet de la siguiente forma:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
....
</xsl:stylesheet>
• El documento XSL contiene 1 o más plantillas (templates),
definidas dentro del elemento stylesheet. El atributo match indica a
que elemento se le aplica la plantilla. “/” indica que la plantilla se
aplica al elemento root.
<xsl:template match="/">
...
</xsl:template>
56. XSL - Ejemplo
Éste sería un ejemplo de documento XSL:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0“ mlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match=“/">
<html>
<head><title>Clientes</title></head>
<body>
.....
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Para aplicar el documento XSL al XML, el procesador XSLT busca
un template que se aplique al elemento root, y lo ejecuta.
57. XSL - Ejecución en IE
• Internet Explorer 5 contiene un Procesador XSLT (MSXML).
• Para aplicar una plantilla XSLT a un documento XML, se añade la
siguiente línea al comienzo del documento XML.
<?xml-stylesheet type=“text/xsl” href=“clientes.xsl” ?>
• Abrir el fichero xml con el Explorer
58. XSL - XPath
• XPath es un lenguaje para construir expresiones que referencien
a una parte de un documento XML
<clientes>
<cliente idCliente=“81422” dni=“33555888”>
<nombre>Antonio</nombre>
</cliente>
<cliente idCliente=“81555”>
<nombre>Jose Carlos</nombre>
</cliente>
</clientes>
• Referencias absolutas: comienzan con el elemento root ( / )
/clientes/cliente devuelve todos los nodos cliente
/clientes/cliente[1] devuelve el primer cliente
• Referencias relativas: parten del nodo contextual.
clientes/cliente también devuelve los nodos cliente
59. XSL - XPath - Símbolos especiales
Símbolos especiales
Aparte de la barra / , hay otros símbolos con los siguientes significados:
Símbolo Significado
@nombre Atributo llamado nombre
// El nodo y todos sus descendientes
. El propio nodo
.. El nodo padre
* Todos los nodos hijo
@* Todos los atributos
/clientes/cliente/@idCliente devuelve todos los idCliente
/clientes//* devuelve todos los nodos descendientes de cliente
Suponiendo que el nodo contextual es /clientes/cliente con idCliente=“81422”:
./nombre devuelve el valor del elemento nombre (“Antonio”)
60. XSL - XPath - Predicados
Predicados
Un predicado es una condición que filtra los elementos devueltos
por una expresión.
/clientes/cliente[nombre=‘Antonio’] devuelve los clientes
llamados Antonio
/clientes/cliente[@idCliente=‘81422’]/nombre devuelve el
nombre del cliente con idCliente igual a ‘81422’
Negación
La palabra not pone como condición que no esté un elemento o
atributo.
/clientes/cliente[not(@dni)] devuelve los clientes que no
tengan como atributo el dni.
/clientes/cliente[not(apellido)] devuelve los clientes que no
tengan el tag apellido
61. XSL - XPath - Ejercicio 1
<paises>
<pais idPais=“11”>
<nombre>Italia</nombre>
<ciudades>
<ciudad idCiudad=“320”>
<nombre>Roma</nombre>
<poblacion>5000000</poblacion>
</ciudad>
</ciudades>
</pais>
</paises>
• Obtener los nombres de todos los países
• Obtener los nombres de todas las ciudades del segundo país de la lista
• Obtener los nombres de las ciudades con población mayor a 1000000
• Obtener los idCiudad de las ciudades con población entre 50000 y 100000
• Obtener el idPais del país que contenga la ciudad con idCiudad = 320
62. XSL - XHTML
XHTML (eXtended HyperText Markup Language)
• Implementación de HTML compatible con XML
• Validación:
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Strict//EN“
"DTD/xhtml1-strict.dtd">
Reglas de construcción:
• Tags obligatorios: head y body
• Tags en minúscula
• Elementos correctamente anidados
• Todos los elementos deben ser cerrados
Texto<p> <p>Texto</p>
<br> <br/>
63. XSL - XHTML
Reglas de construcción:
• Los atributos deben ir entre comillas
<td width=100> <td width=“100”>
• Los atributos deben tener valor
<option value=“1” selected>
<option value=“1” selected=“selected”>
• Para los scripts se delimita una sección CDATA
<script language="JavaScript type="text/javascript"> <!
[CDATA[
document.write("<b>Hello World!</b>");
]]>
</script>
65. XSL - Elementos XSLT
• xsl:value-of
devuelve el valor especificado en el atributo select. Puede calcular
el resultado de operaciones aritméticas
<xsl:template match=“cliente">
<xsl:value-of select="@idCliente"/>
</xsl:template>
• xsl:element
inserta un elemento con el nombre indicado en name
<xsl:element name=“a">
Ir a siguiente página
</xsl:element>
66. XSL - Elementos XSLT
• xsl:attribute
añade un atributo al elemento en el que esté contenido. El nombre
del atributo se especifica en el atributo name y su valor se especifica
en el contenido del elemento xsl:attribute.
<a>
<xsl:attribute name=“href">
http://www.com
</xsl:attribute>
Ir a inicio
</a>
• xsl:if
si la evaluación del contenido del atributo test es true, inserta el
contenido del elemento
<xsl:if test=“not(@idCliente)">
<b>Falta el dni del cliente</b>
</xsl:if>
67. XSL - Elementos XSLT
• xsl:for-each
itera sobre los elementos de la lista que devuelva la expresión
contenida en el atributo select
<xsl:for-each select=“/clientes/cliente">
<i><xsl:value-of select=“@idCliente”/></i><br>
</xsl:for-each>
• xsl:choose, xsl:when, xsl:otherwise
instancia el contenido del primer elemento xsl:when cuyo atributo
test devuelva true. Si ningún test se cumple, se instancia el contenido
del elemento xsl:otherwise.
<xsl:choose>
<xsl:when test=“expresion1”>
...
</xsl:when>
...
<xsl:otherwise>....
</xs:otherwise>
</xsl:choose>
68. XSL - Elementos XSLT
• xsl:comment
inserta un comentario en el árbol resultante.
<xsl:comment> genera el código
comentario <!-- comentario -->
</xsl:comment>
69. XSL - Funciones
Estas son las funciones más usadas definidas por XPath.
• position(). Devuelve la posición del nodo actual relativa al
conjunto de nodos del contexto.
• count(conjuntoNodos) . Devuelve el número de nodos del
conjunto pasado como parámetro.
• concat(cadena1, cadena2, ...) . Devuelve la concatenación de
sus argumentos.
• substring(cadena, inicio, fin) . Devuelve la subcadena que
comienza en la posición inicio y termina en fin.
• round(numero). Devuelve el entero más cercano al valor
pasado.
• not(boolean). Devuelve la negación del argumento. Si el
argumento no es booleano, lo convierte con la función boolean().
• boolean(objeto) . Si objeto es 0, NaN, un conjunto vacío o una
cadena vacía, devuelve false; en otro caso devuelve true.
70. XSL - Ejercicios
Preparación de la máquina
• Instalación del parser MSXML 3 o superior de Microsoft
• Activación del parser (xmlinst.exe)
71. XSL - Ejercicio 1
Ejercicio 1: Aplicar plantilla XSL a XML
Ejercicio 1.1
• Modificar el archivo productos.xml para aplicarle la plantilla
productos.xsl
Ejercicio 1.2
• Modificar el archivo productos.xsl para que debajo de cada
código muestre el precio
Ejercicio 1.3
• Modificar el archivo productos.xsl para que debajo de cada
precio muestre una lista de ciudades de procedencia.
Ejercicio 1.4
• Modificar el archivo productos.xsl para que al comienzo
muestre el número total de productos y, delante de cada
producto, aparezca un índice (1,2,...).
72. XSL - Ejercicio 2
Ejercicio 2: Elementos XSLT
Ejercicio 2.1
• Modificar el archivo productos.xsl para que si el código del
producto es 100, muestre tras el nombre el texto “(Producto en
Oferta)”
Ejercicio 2.2
• Modificar el archivo productos.xsl para que, si el precio es
menor que un euro, muestre tras el nombre el texto “(menos de 1
euro)”
Ejercicio 2.3
• Modificar el fichero productos.xsl para que, debajo de cada
producto, aparezca un botón con el nombre del producto y, al
pulsarlo, muestre su precio.
73. Aplicaciones Prácticas
Qué es XML y qué elementos lo
El estándar XML
componen
Acceso a los datos de un documento
DOM
XML
Cómo dar formato a un documento
XSL
XML con XSL
Aplicaciones Uso práctico de XML en entornos
Prácticas Java y Microsoft
74. Aplicaciones Prácticas - Introducción
XML se usa principalmente en los siguientes entornos:
• Uso de XML conjuntamente con HTML en el cliente.
Internet Explorer
Netscape Navigator
• XML en entorno Java
JAXP
• XML en entorno Microsoft
MSXML
75. Aplicaciones Prácticas - Java
• JAXP (Java API for XML Processing) es una librería de
clases de Sun que contiene:
• Un parser XML (Crimson)
• Un procesador XSLT (Xalan)
• Parte de las clases tienen licencia de W3C, y el resto de
Apache.
• Puede descargarse libremente desde http://java.sun.com/xml
• Necesita la previa instalación del JDK 1.1.8 (Java Development
Kit) o Java 2 SDK (Software Development Kit)
76. Aplicaciones Prácticas - Java
Uso de las clases de JAXP
Acceso a un documento XML desde un fichero
// Clases de JAVAXP
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.FactoryConfigurationError;
import javax.xml.parsers.ParserConfigurationException;
// Excepciones
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
// Acceso a ficheros
import java.io.File;
import java.io.IOException;
// DOM de W3C
import org.w3c.dom.Document;
import org.w3c.dom.DOMException;
77. Aplicaciones Prácticas - Java
Acceso a un documento XML desde un fichero (2)
// Se declara el documento donde se almacenará el XML
static Document document;
public static void main(String argv[])
{
// Se instancia la clase DocumentBuilderFactory
DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
// Se obtiene el xml del archivo
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.parse(new File(“archivo.xml”));
// Se accede al documento
document.getDocumentElement().....
}
78. Aplicaciones Prácticas - Java - Objetos
En JAXP su usan los siguientes objetos. Algunos métodos
cambian ligeramente, pero su significado son el mismo que en
el DOM:
Document
• Element createElement(nombre)
• Text createTextNode (valor)
• Element getDocumentElement()
Element subclase de Node
• String getAttribute (nombre)
• NodeList getElementsByTagName (nombre)
• removeAttribute (nombre)
• setAttribute(nombre,valor)
Text subclase de Node
80. Aplicaciones Prácticas - Java - Objetos
El método getChildNodes () devuelve una sucesión de
elementos Text y Element intercalados:
getChildNodes().item(i)
<clientes> i Devuelve
Texto1
0 Text
<cliente>Antonio</cliente>
Texto2 1 Element
<cliente>Jose</cliente> 2 Text
Texto3 3 Element
</clientes> 4 Text
81. Aplicaciones Prácticas - Java -
Ejercicios
Preparación de la máquina
• Instalación de JDK (Java Development Kit) 1.1.8 o superior
http://java.sun.com/products
• Instalación de JAXP (Java API for XML Processing)
http://java.sun.com/xml
• Instalación del servidor Web
Por ejemplo: iPlanet Web Server FastTrack Edition
http://www.iplanet.com/downloads/download/index.html
82. Aplicaciones Prácticas - Java - Ejercicio
1
Ejercicio 1: Acceso a XML
Ejercicio 1.1
• Compilar la clase ejemplo.java
javac ejemplo.java (genera el fichero ejemplo.class)
• Ejecutar la clase ejemplo.class
jview ejemplo clientes.xml
Ejercicio 1.2
• Modificar la clase java acceder.java para que lea un documento
XML pasado como parámetro.
jview acceder clientes.xml
Ejercicio 1.3
• Modificar la clase acceder.java para que muestre por pantalla el
nombre del segundo cliente
Ejercicio 1.4
• Modificar la clase acceder.java creando un bucle que muestre
todos los atributos idCliente de todos los clientes.
83. Aplicaciones Prácticas - Java
Transformación de un documento XML con XSLT
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamSource;
import javax.xml.transform.stream.StreamResult;
84. Aplicaciones Prácticas - Java
Transformación de un documento XML con XSLT (2)
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
File stylesheet = new File(“archivo.xsl”);
File datafile = new File(“archivo.xml”);
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.parse(datafile);
TransformerFactory tFactory = TransformerFactory.newInstance();
StreamSource stylesource = new StreamSource(stylesheet);
Transformer transformer = tFactory.newTransformer(stylesource);
DOMSource source = new DOMSource(document);
StreamResult result = new StreamResult(System.out);
transformer.transform(source, result);
85. Aplicaciones Prácticas - Java - Ejercicio
2
Ejercicio 2: Aplicar una plantilla XSL
Ejercicio 2.1
• Crear la clase java conversor.java al que se le pase como
parámetro un documento XSL y un documento XML y que
escriba en un fichero htm de salida el resultado de aplicarle la
plantilla XSL al documento XML.
• Probarla con el documento clientes.xml y la plantilla clientes.xsl
java conversor clientes.xsl clientes.xml
Ejercicio 2.2
• Modificar la plantilla clientes.xsl para que muestre debajo del
idCliente su dni, y si no tiene, que muestre un mensaje
indicándolo.
86. Aplicaciones Prácticas - Java
Almacenar un documento XML en un archivo
• Usando el Transformer sin aplicarle ningún estilo:
Transformer transformer = tFactory.newTransformer();
StreamResult result = new StreamResult(new FileWriter("salida.xml"));
87. Aplicaciones Prácticas - Java - Ejercicio
3
Ejercicio 3: Modificación de un archivo XML
Ejercicio 3.1
• Crear la clase modificar.java a partir de la clase conversor.java
para que ésta lea el contenido de un documento Xml pasado
como parámetro, inserte un dni en el segundo cliente y guarde
las modificaciones.
Ejercicio 3.2
• Modificar la clase modificar.java para que cree un nuevo cliente
con los siguientes datos:
Nombre: Javier
idCliente: 81678
dni: 55666777
88. Aplicaciones Prácticas - Java
Otros parsers
• JDOM (www.jdom.org)
• XT (http://www.jclark.com/xml/xt.html). Implementación de un
procesador XSLT usando el parser XP.
• Xerces-J (http://xml.apache.org/xerces-j/index.html). Parser
creado por el proyecto Apache XML.
89. Aplicaciones Prácticas - Java - JSP
Acceso a un documento XML desde JSP
• Se importan las mismas clases que en Java
<%@ page import="javax.xml.parsers.DocumentBuilder" %>
...
• Se accede al documento. El fichero leído partirá del directorio
raíz del servidor web:
<%
Document document;
File xmlFile = new File("public_html archivo.xml");
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.parse(xmlFile);
%>
<%=document.getDocumentElement().....%>
90. Aplicaciones Prácticas - Java - JSP
Aplicación de XSL desde JSP
• Se importan las mismas clases que en Java
• Se aplica la plantilla y se manda a la variable out:
<%
Document document;
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
File stylesheet = new File("public_htmlarchivo.xsl");
File datafile = new File("public_htmlarchivo.xml");
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.parse(datafile);
TransformerFactory tFactory = TransformerFactory.newInstance();
StreamSource stylesource = new StreamSource(stylesheet);
Transformer transformer = tFactory.newTransformer(stylesource);
DOMSource source = new DOMSource(document);
StreamResult result = new StreamResult(out);
transformer.transform(source, result);
%>
91. Aplicaciones Prácticas - Java - Ejercicio
4
Ejercicio 4: Uso de XML con JSP
Ejercicio 4.1
• Modificar el archivo pagina.jsp para que muestre los datos del
archivo cliente.xml de la siguiente forma:
Nombre: Antonio
Código: 81422
Dni: 33555888 ó No tiene
Teléfonos: 952334455 666909090 ó No tiene
Ejercicio 4.2
• Modificar la página pagina2.jsp para que muestre por pantalla
el resultado de aplicar la plantilla clientes.xsl a clientes.xml.
• Modificar el archivo clientes.xsl para que pagina2.jsp muestre el
mismo resultado de pagina.jsp
92. Aplicaciones Prácticas - Microsoft
• Para usar XML en aplicaciones Microsoft, se usa el objeto COM
Microsoft XML (MSXML).
• Internet Explorer 5 viene con una versión antigua (msxml.dll)
Objeto Microsoft.XMLDOM
• Se debe instalar una versión más moderna
Objeto MSXML2.DOMDocument
93. Aplicaciones Prácticas - Microsoft
Acceder a un documento XML
• Si estamos en Visual Basic, añadir el objeto Microsoft XML a las
referencias del proyecto.
• Instanciar el objeto.
En Visual Basic.
Dim objParser As MSXML.DOMDocument
Set objParser = New MSXML.DOMDocument
En ASP
Set objParser = Server.CreateObject("Microsoft.XMLDOM")
94. Aplicaciones Prácticas - Microsoft
• Cargar el documento XML
desde un archivo:
If objParser.Load("c:tempxmldocumento.xml") Then
' Ha funcionado
Else
' Ha ocurrido un error
End If
Desde una cadena de texto:
objParser.loadXML(“<clientes> .... </clientes>”);
• Usar el documento (obtener el elemento raíz):
objParser.documentElement
• Destruir el objeto tras usarlo.
Set objParser = nothing
95. Aplicaciones Prácticas - Microsoft -
Ejercicio 1
Ejercicio 1: Acceso a XML desde ASP
Ejercicio 1.1
• Modificar el archivo pagina.asp para que guarde en la variable
domXml el documento almacenado en productos.xml.
• Modificar la página para que muestre el idPedido del primer
pedido del documento XML.
Ejercicio 1.2
• Modificar la página para que aparezca la cantidad del segundo
producto del tercer pedido.
Ejercicio 1.3
• Modificar la página para que muestre los nombres de todos los
productos adquiridos.
Ejercicio 1.4
• Modificar la página para que aparezca el número de cliente del
pedido con idPedido=1002, y la suma de todo su pedido.
96. Aplicaciones Prácticas - Microsoft
Aplicar una plantilla XSLT a un documento XML
<%
Dim domXml As MSXML.DOMDocument
Dim domXsl As MSXML.DOMDocument
Dim resutl As String
Set domXml = New MSXML.DOMDocument
Set domXsl = New MSXML.DOMDocument
domXml.Load("c:documento.xml")
domXsl.Load("c:plantilla.xsl")
result = domXml.transformNode(domXsl)
%>
Mostrar el resultado en ASP
<%=result
%>
97. Aplicaciones Prácticas - Microsoft -
Ejercicio 2
Ejercicio 2: Aplicación de una plantilla XSL a un
documento XML desde ASP
Ejercicio 2.1
• Modificar el archivo pagina.asp para que muestre el resultado
de aplicar la plantilla productos.xsl al documento productos.xml.
Ejercicio 2.2
• Modificar el archivo productos.xsl para que muestre el siguiente
resultado:
Pedido nº: 1000
Cliente: 123
Productos:
Línea Id Nombre Precio Total (euros)
1 315 Patatas fritas 0.9
2... ... .... ....
....
98. Recursos
• W3C (Wolrd Wide Web Consorcium)
http://www.w3.org
• Sun
http://java.sun.com/xml
• Microsoft
http://msdn.microsoft.com/xml
• Apache XML Project
http://xml.apache.org
• Otros
http://www.xml.com
http://www.xml.org
http://www.xmlsoftware.com
http://www.xmlhack.com
Notas del editor
Los lenguajes de marcas tienen sus orígenes en el GML (Generalized Markup Language), creado por IBM en los 60 para resolver sus problemas con el tratamiento de documentos. Cada aplicación usaba unas marcas distintas para describir las entidades de los documentos, así que IBM usó código ASCII para la creación de estas marcas, ya que podrían ser accesibles desde cualquier aplicación. Más tarde, GML cayó en manos de ANSI (American National Standards Institute), pasando a denominarse SGML (Standard Generalized Markup Language) y convistiéndose en un borrador. ISO (International Standards Organization) lo convirtió en un estándar en 1986. Después se crearon lenguajes de marcas subconjuntos de SGML, como XML, HTML (HyperText Markup Language) o RTF (Rich Text Format). En 1989, el protocolo HTML fue creado por el CERN (Organización Europea en Investigación de Física Nuclear). Tenía el problema de que era demasiado simple, y no permitía crear tags personalizados. Así, en 1998, el w3c acepta el estándar XML. La mayor diferencia de XML con SGML es que XML no precisa de DTDs, mientras que SGML sí. Existen 2 tipos de lenguajes de marcas, los que se dedican al tratamiento de la información y los que se encargan de mostrar esa información con un formato específico. XML sería del primer tipo, ya que solo contiene datos, no la forma de mostrarlos (si es en negrita, tamaño de letra,...). Sin embargo HTML si se encarga de esto último. Así, estos 2 lenguajes suelen trabajar conjuntamente, XML proporciona los datos y HTML les da un formato y los muestra.
XML es un lenguaje que no tiene unas marcas prefijadas. Las marcas pueden ser creadas por el usuario o la aplicación, lo que proporciona una gran flexibilidad para representar datos. Debido a este hecho, se ha convertido en uno de los estándares más usados en Internet a la hora de intercambiar información entre varias máquinas, porque es independiente de la plataforma en la que se traten los datos (tan solo es texto ASCII). XML no es sólo un lenguaje para estructurar datos. También es un metalenguaje que sirve para definir otros lenguajes. Así, HTML es un subconjunto de XML con unos tags específicos. XML usa las etiquetas para estructurar los datos. Esta estructura es en forma de árbol, que permite mantener la información de forma jerárquica siendo así más fácil e intuitivo acceder a ella.
Este es un ejemplo de un documento XML que contiene información acerca de discos de música. Dejando aparte las 2 primeras líneas que conforman la cabecera, en este ejemplo se puede observar claramente la estructura en forma de árbol que debe mantener un documento XML. Se distingue un elemento raíz (<discos>), y de él cuelgan varios elementos <disco>. A su vez, dentro de cada disco se guarda diferente información sobre él (artista, título, pistas y precio).
Un elemento XML puede contener tanto un valor, como en este ejemplo, como otros elementos XML. También es posible las dos cosas a la vez.
El ejemplo anterior de los discos es un documento XML. Reglas: Los elementos deben cerrarse, es decir, toda etiqueta debe tener su correspondiente etiqueta que cierra el elemento. O ser una etiqueta cerrada al final, como en <precio valor=“”/> Los elementos deben estar limpiamente anidados, es decir, las etiquetas de apertura y cierre no pueden cruzarse como en este caso: <disco> <artista> </disco> </artista> El documento debe tener una única raíz, no es posible tener la siguiente estructura en el primer nivel: <discos> ... </discos> <cds> ... </cds> Para permitir esto, habría que insertar estas etiquetas dentro de otra superior.
De este modo, no puede usarse cualquier otro carácter como eñes o comillas. Las siguientes etiquetas serían erróneas: <1er-apellido>Fernández</1er-apellido> (no puede empezar por un número) <segundo apellido>López</segundo apellido> (no puede contener espacios) Además, hay que recordar que XML es case-sensitive , por lo que la etiqueta de cierre debe ser igual que la de inicio: <nombre>Alfonso</Nombre> no sería correcto.
Un parser XML es una aplicación que se encarga de obtener un documento XML para acceder a su contenido. Si al cargar el documento XML, el parser falla, entonces es que el documento XML no está bien formado porque incumple alguna de las reglas.
Fallos: El primer empleado no puede tener 2 atributos “apellido”. Los elementos “direccion” de los 2 primeros empleados no tienen cierre. El tercer empleado tiene los elementos de inicio y de fin distintos La primera oficina tiene atributos “1tlf” y “2tlf” (no son válidos). Los empleados y las oficinas tienen que estar dentro de un elemento común
Los namespaces fueron creados para evitar colisiones en los nombres que las etiquetas o atributos de los documentos XML que circulan por Internet. Por ejemplo, se puede crean un documento XML con información a cerca de empleados y con la etiqueta “nombre” que guarde el nombre del empleado. Pero si se quiere crear otro documento XML, por ejemplo de clientes, con la etiqueta “nombre”, debe poder diferenciarse de alguna forma estos 2 tags que se llaman igual pero contienen información distinta. En realidad, las URL y URN son subconjuntos de URI, son clases de URI. Una URL es una forma de identificar un recurso en Internet, dando una dirección. Por ejemplo, el namespace usado para utilizar etiquetas xsl: http://www.w3.org/1999/XSL/Transform Un recurso puede ser tanto una página web como un archivo o, en este caso, un namespace . Una URN también identifica un recurso, pero no por su localización, si no asignándole un nombre. Este nombre puede estar asociado con varias localizaciones, y si una no está disponible, se intenta acceder a otra. Por ejemplo: urn:BookLovers.org:BookInfo
Declaración por defecto. En el ejemplo, los nombres BOOK, TITLE y currency pertenecen al namespace especificado. Declaración explícita. Se usa cuando dentro de un mismo elemento (en este caso BOOK) aparecen nombres XML (etiquetas o atributos) pertenecientes a varios namespaces. En el ejemplo, BOOK, TITLE y PRICE pertenecen al namespace definido con el nombre bk , y currency pertenece al namespace definido por money .
Todo documento XML está formado por 2 secciones: el prólogo (que contiene información propia del xml) y el document element o elemento raíz (que contiene los datos en sí). Ninguno de los elementos del prólogo son obligatorios, aunque sí son recomendables. Aunque si se quiere que el documento XML sea válido, se deberá usar un DTD y declararlo en el prólogo.
Declaración No es obligatoria, aunque es recomendable ponerla. Si se pone, debe aparecer en la primera línea. No puede ser precedida por espacios en blanco o comentarios. El ejemplo especifica que el documento XML cumple con el estándar XML 1.0, y que usa una codificación ISO-8859-1, también conocida como Latin-1, es decir, que contiene caracteres propios de países de Europa occidental, como España, Francia o Alemania. El atributo standalone es opcional. Un valor “no” indica que el documento debe acceder a un DTD externo para , por ejemplo, añadir valores por defecto. Un valor “yes” indica que no necesita del DTD. El valor por defecto es “no”. Comentarios El siguiente tag sería válido: <nombre>Antonio <!--Apellido-->López</nombre> Pero este otro no: <nombre <!-- nombre del cliente -->>Antonio López</nombre> Un parser XML no está obligado a procesar los comentarios, por lo que al acceder a los datos del documento tras haber sido leído por el parser, es posible que los comentarios no aparezcan (esto depende del parser usado).
Instrucciones de procesamiento Al igual que los comentarios, pueden ser colocadas en cualquier parte del texto, excepto dentro de un tag. Pero algunas instrucciones de procesamiento tienen algunas restricciones con su posición. Por ejemplo, la del ejemplo, debe insertarse antes del elemento raíz del documento XML. Document Type Declaration Un documento válido debe tener una referencia a un DTD para que lo valide. El DTD contiene una serie de reglas que el documento XML debe cumplir. En la declaración se debe indicar el nodo raíz y el nombre del fichero dtd. En el ejemplo se indica que discos es el nodo raíz y discos.dtd es el archivo que contieneel DTD. También es posible insertar el DTD en la propia declaración en lugar de referenciar un archivo externo, pero es más útil mantener el DTD aparte, ya que puede ser usado por varios documentos XML.
El DTD es el encargado de validar la estructura de un documento XML. El parser XML es el encargado de comprobar que el documento XML cumple las reglas del DTD, y si no se cumple alguna especificar cual. El DTD puede definir elementos (las etiquetas usadas en el documento XML), atributos (los atributos contenidos en esas etiquetas) y entidades (nombres asociados a un valor, por ejemplo, &empresa; puede contener el nombre de la empresa). Hay algunas definiciones o restricciones que no pueden describirse con un DTD. Por ejemplo, no puede definirse el document root, no puede especificarse el número de instancias que tiene cada elemento en el documento XML, o no puede detallar el formato de fecha o número que debe usar cada valor. Debido a estas carencias, se creó el XML Schema, otro lenguaje de validación de documentos XML, aunque éste no se hizo recomendación por parte del W3C hasta Mayo del 2001.
En el primer caso, discos se refiere al document element , y discos.dtd se refiere al archivo donde se ubica el DTD. Así, el formato de la declaración sería el siguiente: <!DOCTYPE document-element SYSTEM "DTD-URI"> Para el segundo caso, tendría la siguiente sintaxis: <!DOCTYPE document-element [declarations...]> También es posible combinar las dos formas obteniendo un DTD interno y añadiéndole nuevas reglas en la misma sentencia de definición. La sintaxis sería la siguiente: <!DOCTYPE document-element SYSTEM "DTD-URI" [declarations...]>
La primera sentencia declara la etiqueta “empleado”, especificando que debe contener una etiqueta “nombre” y otra etiqueta “direccion”, en ese orden. Si faltara alguna de esas etiquetas, ya no se cumpliría las restricciones del DTD. La segunda sentencia declara un nodo hoja, es decir, una etiqueta que debe tener un valor concreto, y no otras etiquetas. Así que se debe especificar el tipo de dato, en este caso, PCDATA.
En la primera sentencia, debe cumplirse el orden de aparición de los elementos hijo. En la segunda sentencia, se cumplirá la restricción si aparece uno de los hijos o los dos. La tercera sentencia especifica que debe aparecer primero el nombre o el apellido o los dos, y después la dirección.
Los modificadores se pueden poner detrás de un elemento o de una lista de elementos que estén dentro de unos paréntesis. El primer ejemplo especifica que el elemento empleado debe tener primero un tag nombre , luego opcionalmente un tag apellido , y después uno o más tags direccion . El segundo ejemplo especifica que el elemento empleado debe contener primero un elemento nombre , después otro elemento apellido , y después una sucesión de elementos que pueden ser direccion o telefono . Esta última sucesión puede estar vacía o puede contener todos los elementos necesarios, y no importa el orden de alternancia en el que aparezcan las direcciones y los teléfonos.
Elementos Vacíos Un elemento vacío es aquel que no tiene valor. Normalmente los elementos vacíos suelen tener uno o más atributos. Para el ejemplo anterior, cualquiera de los siguientes elementos sería correcto: <direccion/> <direccion></direccion> Lo más lógico sería añadirle algunos atributos: <direccion calle=“Larios” numero=“1” piso=“1” letra=“A”/> Contenido ANY Permite cualquier contenido dentro del elemento. No es recomendable usarlo, a no ser que sea necesario, aunque es útil cuando se está desarrollando un DTD y hay partes que no están construidas. Para el ejemplo, el siguiente elemento sería válido <otrosDatos> ..... </otrosDatos>
Se debe crear un archivo xml con el contenido del slide y un archivo dtd que lo valide, y probarlo con el xmlwriter.
La sintaxis para la declaración de atributos sería la siguiente: <!ATTLIST elem-name [attr-name attr-type default-value-clause]+> En el primer ejemplo se está definiendo 3 atributos para el elemento direccion . El primero sería fijo ( ciudad ), el segundo ( calle ) sería obligatorio, y el tercero ( numero ) sería opcional. El cuadro de la derecha muestra un elemento válido para esa declaración. También es posible declarar los atributos en líneas separadas: <!ATTLIST direccion ciudad CDATA # FIXED> <!ATTLIST direccion calle CDATA #REQUIRED > <!ATTLIST direccion numero CDATA #IMPLIED> Los atributos pueden aparecer en el elemento en cualquier orden. Es decir, el siguiente elemento también sería válido: < direccion numero=“5” calle=“Larios” ciudad=“Málaga” / > La cláusula de valor por defecto ( default-value-clause ) puede tener los siguientes valores: REQUIRED. El atributo es obligatorio y no se especifica valor por defecto. IMPLIED. El atributo es opcional y no se especifica valor por defecto. FIXED. El atributo tiene un valor fijo e inmutable. Es un atributo obligatorio que no puede ser modificado. Si se declara con un valor por defecto, el atributo debe aparecer en cada elemento con ese valor. Por ejemplo, <!empresa nombre CDATA #FIXED “Accenture”/> no permitiría el siguiente elemento <empresa nombre=“AC”/> el atributo debe aparecer, y con el mismo nombre: <empresa nombre=“Accenture”/> Valor por defecto. El atributo es opcional. Si aparece, contendrá el valor especificado, y si no, cogerá el valor por defecto. En el ejemplo, si el atributo pais no aparece en la dirección, se tomará el valor “España”.
Enumeración. Los posibles valores que aparecen en la enumeración son tokens. Un token permite los mismos caracteres que un nombre XML (letras, dígitos, guión bajo y punto), pero además permite que el token empiece por cualquiera de esos caracteres. En el ejemplo se está definiendo que el valor del elemento empleado debe ser “hombre” o “mujer”. Así mismo, está declarando que es un atributo obligatorio. De esta forma, el siguiente elemento sería incorrecto: <empleado sexo=“H”/> Tipos de atributo. En el cuadro de la izquierda se muestra una definición de atributo en un DTD, y en el de la derecha aparece un ejemplo válido de elementos XML para la definición anterior. CDATA es el tipo de dato más usado. Permite caracteres alfanuméricos. ID. Cada elemento debe tener un valor único en este atributo. Así, el ejemplo declara que no pueden haber dos empleados con el mismo empid . Los valores de estos atributos deben ser nombres XML válidos. Por esto, un valor no puede empezar por número, así que al id del empleado se le debe añadir un carácter válido al principio (en lugar de “120” se puede usar “A120”). Cada elemento puede tener como máximo un atributo de tipo ID. IDREF. En el ejemplo, el elemento empleado tiene como atributo opcional un supervisor , que debe contener el valor del empid de alguno de los elementos empleado . Además, está el tipo IDREFS, que permite almacenar varios valores separados por espacio.
Las entidades predefinidas están para evitar usar símbolos que no están permitidos en los valores de los elementos y atributos. En el ejemplo, la entidad &empresa; se sustituiría por su valor, obteniendo el resultado: < empleado empresa= “ Coritel AOS "> El parser XML es el encargado de realizar esta sustitución. El valor de una entidad puede tener tanto un texto como una URI. Además, puede contener referencias a otras entidades, siempre y cuando no se produzcan ciclos en esas referencias.
Crear un archivo xml con el documento del slide y otro dtd que lo valide. Se puede validar un documento XML con herramientas como XMLwriter. http://www.xmlwriter.com El atributo nohay se refiere al producto a enviar si no hubieran existencias del producto.
XML Schema es un estándar para la validación de la estructura de un documento XML. Debido a algunas carencias en la definición de datos por parte de los DTDs, se creó el estándar XML Schema, que permite definir con más detalle la estructura de un documento XML, como los tipos de datos. Este tipo de mejoras eran necesarias. Por ejemplo, en la validación de una orden de compra, es necesario comprobar que no existen cantidades negativas o inserción de letras donde deben haber números. Este tipo de validaciones las puede realizar el XML Schema. Tras 2 años decidiendo que debía entrar en el estándar, en Mayo del 2001 el W3C lo convirtió en estándar. Se valida mediante un parser, usando un método estándar que recibe como entrada el documento XML y el XML Schema y devuelve si el documento es válido o no. Mejora con respecto a los DTDs Permite especificar el tipo de los datos (entero, decimal...) y restringir el rango de valores introducidos. Por ejemplo, especificar que el valor de un campo debe ser entre 1 y 999. También puede especificar que una cadena debe empezar por determinada letra o tener determinado número de caracteres. Los DTDs usan una sintaxis completamente diferente a la usada en los documentos XML. Los XML Schemas, al estar escrito respetando las normas XML, es más fácil de depurar por el programador y de manejar por el parser. Los XML Schemas pueden ser ampliados con módulos externos, de forma que un schema puede usar las declaraciones de tipos ya escritas en otro schema. Permite especificar el número de veces que aparece un elemento dentro de otro, y el orden en que éstos aparecen. En el DTD, para decir que un elemento debe aparecer 20 veces habría que poner 20 veces el nombre del elemento: <!ELEMENT padre (hijo,hijo,hijo,...)> En un DTD, todos los elementos se declaran en el primer nivel. De esta forma, el nodo raiz podría ser cualquiera de esos elementos. Sin embargo, en un XML Schema se declaran de forma anidada, de forma que un elemento es forzosamente hijo de otro. Aunque también se permite la declaración de varios elementos en el primer nivel.
El atributo content permite: textOnly: sólo contiene texto eltOnly: sólo contiene elementos empty: el elemento está vacío ( por ejemplo: <direccion ... /> ) mixed: puede contener tanto elementos como texto El atributo order puede ser: seq: debe contener todos los elementos indicados y en el orden indicado one: sólo puede contener uno de los elementos indicados many: puede contener los elementos indicados 0 ó más veces y en cualquier orden.
Antes de realizar los ejercicios es recomendable instalar la versión 3 o superior de MSXML.
En este ejemplo, el atributo calidad sólo podría contener uno de los valores indicados: alta, media o baja.
SAX es una API que permite que un mismo código que accede a un parser sirva para acceder a otro parser. Aunque esos dos parsers deben cumplir el estándar SAX. SAX en realidad es un estándar de facto , es decir, es una norma seguida por muchos parsers pero no está definido como estándar por ninguna organización (como el W3C).
El DOM son un conjunto de métodos y propiedades que sirven para acceder a los datos de un documento XML. Esto se hace gracias a un parser que se encarga de leer el documento XML, ya sea desde un fichero o desde cualquier otra procedencia, y devuelve el objeto correspondiente para el acceso al DOM. Pero el estándar XML no define la forma de escribir o leer el documento en un archivo. El W3C definió en 1998 el estándar DOM Level 1, es decir, una serie de especificaciones que los objetos de cualquier librería deben seguir. Pero esto a veces no se cumple exactamente, por lo que la API de una librería y otra puede variar. En esta sección se usa la API definida por el parser de Microsoft (MSXML), válida para Internet Explorer.
Pueden usarse los dos métodos de obtener un documento XML, pero el más común es el segundo, ya que permite que el archivo que contiene el XML sea usado por otras páginas HTML.
Las propiedades y funciones más comunes para acceder a los datos de un documento XML son las siguientes: XMLDocument. documentElement. childNodes. Es una propiedad de solo lectura. Si el elemento no tiene hijos, devuelve una lista vacía. El elemento devuelto es del tipo NodeList. item(n) es un método del objeto NodeList. text devuelve el valor de un elemento, pero si éste tiene hijos, devuelve el valor de todos sus hijos separados por espacio. El ejemplo, que usa el documento XML de la página anterior, obtiene el elemento raiz ( clientes ), después el primer hijo (el primer nodo cliente ), de éste, su primer hijo ( nombre ) y de éste su valor (“Antonio”).
En el ejemplo, el fragmento XMLCliente.XMLDocument.documentElement. getElementsByTagName(“nombre”) devolvería una lista con dos elementos, los dos tags nombre que existen a partir del elemento raíz.
getAttribute(nombre) devuelve null en caso de que no exista el atributo.
Ejercicio 1.1 Para probar la página se abrirá en el Explorer y se pulsará el botón “Acceder al XML” para que se muestren los mensajes.
createTextNode crea un objeto Text , pero no es insertado automáticamente en el árbol XML, debe ser insertado por alguno de los métodos appendChild , replaceChild o insertBefore . Al crearse, su parentNode se establece e a null. El ejemplo muestra como insertar una etiqueta llamada apellido con el valor “Fernández” en el primer cliente, al mismo nivel que la etiqueta nombre . Primero se debe crear un objeto Element con la función createElement pasándole el nombre del tag, luego un objeto Text con la función createTextNode pasándole el valor que vamos a darle a la etiqueta. Después se añade el texto a la etiqueta con appendChild . Finalmente, se accede al primer elemento cliente con XMLCliente.XMLDocument.documentElement.firstChild y se le aplica la función appendChild para añadirle el elemento creado.
removeChild . Se le pasa como parámetro un objeto, por lo que antes hay que acceder a él para pasárselo como parámetro. El elemento no tiene por qué ser un elemento hoja, al eliminarse un elemento con hijos, éstos también son eliminados. En el ejemplo, la expresión XMLCliente.XMLDocument.documentElement.childNodes.item(1) devuelve el segundo elemento cliente , y es pasado como parámetro a la función.
setAttribute . removeAttribute . Elimina el atributo especificado. Si en el DTD se define algún valor por defecto para ese atributo, el atributo, en lugar de ser eliminado, toma inmediatamente ese valor.
Ejercicio 2.1 Para probar la página se abrirá en el Internet Explorer y se pulsará el botón “Cambiar el XML”. Hay que tener en cuenta que los cambios no se guardan en el fichero, sólo en memoria. Por esto, si se quiere volver a probar la página hay que recargarla para que vuelva a obtener el xml del fichero, no se puede pulsar 2 veces el botón si recargarla.
XSL es un estándar que sirve de hoja de estilos para proporcionar un formato a los documentos XML. Aunque ya existen otros formatos de hojas de estilos, como CSS, la principal diferencia de XSL radica en que permite modificar la propia estructura del XML. Así, CSS sólo da un aspecto al texto que ya hay, mientras que XSL además puede filtrar los datos, cambiar el orden de éstos o insertar sus propios datos en el resultado final. XSL fue definido por el W3C en 1997 como un borrador, es decir, fue publicada pero podía ser modificada. En 1999, se convirtió en una recomendación del W3C y se encuentra en la versión 1.0. XSL está formado por 3 partes: los lenguajes XSLT y XPath, y por Formatting Objects , un conjunto de elementos para el uso de características avanzadas de diseño de documentos. De esta forma quedan separados los datos y la presentación. El documento XML almacena los datos y la plantilla XSL se encarga del formato. El procesador XSLT es el encargado de realizar la transformación del documento XML aplicándole una plantilla XSL. El resultado también es un documento XML. Al ser HTML un subconjunto de XML, la salida puede ser definida en HTML. También se puede obtener el resultado en otros lenguajes de marcas, como WML (Wireless Markup Language). Existen tanto procesadores XSLT de libre distribución (Xalan, Saxon, XT) como otros que están incluidos en Sistemas Operativos o navegadores (MSXML viene con Internet Explorer) o en bases de datos relacionales (Oracle XML). El procesador XSLT puede actuar de dos formas: En el servidor: el cliente hace una petición al servidor, éste obtiene el documento XML y la hoja de estilos XSL, el propio servidor ejecuta el procesador XSLT y envía el resultado al cliente. En el cliente: el cliente hace una petición del XML, y éste se lo manda. Si el XML necesita una hoja de estilos XSL, se la pide al servidor y éste se la envía. El propio cliente ejecuta el procesador XSLT y muestra el resultado. Este es el modelo de trabajo de MSXML. Tiene la ventaja de que libera de trabajo al servidor.
El namespace definido para xsl puede tener otro prefijo que no sea xsl , pero éste es el que se usa normalmente. También se puede hacer uso del siguiente namespace, que es el de la primera versión de xsl: http://www.w3.org/TR/WD-xsl pero carece de algunas características avanzadas, como funciones o cálculos aritméticos. Si el namespace http://www.w3.org/1999/XSL/Transform no funciona, significa que se debe instalar una versión más avanzada del parser. Pueden declararse plantillas para otros elementos que no sean el raíz, por ejemplo: <xsl:template match=“/clientes/cliente”> </xsl:template> esta plantilla está definida para el elemento cliente hijo de clientes . Para ejecutarla, se debe llamar al elemento apply-templates : <xsl:apply-templates select=“/clientes/cliente”/> Pero si no se llama, sólo se ejecutará la plantilla del elemento raíz.
Un documento XSL es también un documento XML, por lo que también podemos insertarle una cabecera. En el ejemplo especifica la versión de xml (1.0) y la codificación de los caracteres usados (ISO-8859-1, es decir, caracteres de países occidentales).
Estos serían los pasos para aplicar una plantilla XSLT a un documento XML usando el Internet Explorer 5.
XPath es un lenguaje no-XML (no usa tags) integrado como parte del estándar XSL. Define un lenguaje capaz de seleccionar una parte de un documento XML, como una lista de elementos o de valores. Las expresiones usadas en el atributo match de los elementos xsl:template usan el lenguaje Xpath, así como las usadas en elementos xsl:if , xsl:for-each , ... Las referencias absolutas comienzan con una barra desde el elemento raíz. Si se tiene una lista, los corchetes se pueden usar para obtener un elemento indicando su índice (siendo el primer elemento el número 0). Las referencias absolutas parten del nodo contextual. Si el tag template se aplica al nodo raíz ( / ), ése será el nodo contextual. Aunque puede cambiar al entrar, por ejemplo, en un bucle for-each . El nodo contextual pasaría a ser el nodo actual del bucle.
El punto (.) y dos puntos (..) parten del nodo contextual. Por lo tanto, si estamos dentro de un bucle xsl:for-each , el punto se referirá al nodo actual. Los comodines se usan para poder referirse a cualquier elemento hijo (sólo los hijos directos) con *, o a cualquier atributo con *@. Así, la expresión /clientes/*/nombre cogería cualquier elemento nombre que descienda de un elemento descendiente de clientes .
Predicados La expresión que aparece entre los corchetes suele ser una expresión booleana. Pueden usarse los operadores comunes (= , != , < , > , <= , >=), aunque normalmente es necesario sustituir el símbolo < por su entidad equivalente &lt; (lower than). También pueden usarse los operadores booleanos and , or y not .
XHTML es la revisión de HTML para hacerlo compatible con XML. Así, un documento XHTML podrá ser tratado por cualquier herramienta que trate con documentos XML (editores, parsers, ...). De hecho, XHTML es un subconjunto de XML, es un lenguaje definido usando XML. HTML se encuentra actualmente en la versión 4, y esta será la última versión de este lenguaje. Debido a la demanda de un lenguaje más extensible y estándar, se creó XHTML 1.0. Todos los elementos usados en HTML 4 siguen siendo válidos en XHTML 1.0. Para la validación de los documentos XHTML pueden usarse 3 DTDs, dependiendo del tipo de documento a usar. Además de ajustarse a las reglas de XML, un documento XHTML debe seguir otra serie de reglas de construcción. Si una plantilla XSL devuelve una página HTML, ésta debe cumplir las reglas de construcción de XML, pero no hace falta que cumpla todas las reglas de XHTML. Por ejemplo, no es obligatorio que exista el tag head .
Los scripts se meten en una sección CDATA para que no haya problemas con los caracteres < y &. CDATA trata los caracteres sin procesarlos. Así, pusiésemos fuera de la sección CDATA una comparación Javascript: if (x<y) ... el símbolo < sería tratado como el inicio de un tag y fallaría.
Los elementos XSL deben usarse de manera que el resultado tenga estructura de árbol, al igual que XML. Todos los elementos deben tener un elemento de cierre. Las normas son las mismas que para los documentos XML. Dentro de un elemento pueden insertarse otros elementos. Así, dentro de un bucle for-each pueden insertarse, por ejemplo, elementos if o incluso otro elemento for-each , como ocurre en la mayoría de lenguajes de programación. xsl:value-of Inserta en el árbol resultante el resultado de evaluar la expresión contenida en el atributo select . El resultado dependerá del tipo de dato insertado en el atributo select . Si es un elemento (incluso el elemento raíz), devuelve su contenido o el contenido de todos sus hijos, quitando los tags y dejando sólo los valores de los elementos. Si es un atributo devuelve el valor del atributo. En el valor devuelto resuelve los valores de las entidades y las sustituye en el texto. Si se le pasa un conjunto de nodos, devuelve el valor del primer nodo. El ejemplo devuelve el valor del atributo idCliente del nodo contextual. Las operaciones aritméticas válidas son +,-,*,div,mod xsl:element El ejemplo crearía un elemento así en el árbol resultante: <a> Ir a siguiente página</a> Este elemento además puede tener atributos, que deberán ser definidos con elementos xsl:attribute .
xsl:attribute Añade un atributo al elemento que lo contiene en el árbol resultante. En todo caso debe preceder a cualquier otro contenido del elemento que lo contiene. En el ejemplo, dentro del elemento <a> se debe insertar tanto su atributo como su valor. Los atributos deben ir primero. Daría como resultado lo siguiente: <a href=“http://www.com”>Ir a inicio</a> También pueden definirse una lista de atributos con el elemento <xsl:attribute-set> y usarlos en varios elementos. xsl:if Inserta el contenido en el árbol resultante si la evaluación de test devuelve true . El ejemplo inserta un mensaje si el nodo contextual no tiene un atributo idCliente .
xsl:for-each Instancia su contenido en el árbol resultante tantas veces como elementos encuentre en el conjunto introducido en el atributo select . La expresión del atributo select debe ser una expresión XPath válida. En cada iteración, coge un elemento del conjunto como elemento actual, y cualquier expresión XPath que sea una referencia relativa, será relativa respecto a ese elemento actual. Dentro del elemento pueden insertarse otros elementos for-each , if o cualquier otro elemento xsl. Opcionalmente, puede contener un elemento <xsl:sort> para que itere sobre los elemento siguiendo un orden concreto. Si no se incluye este elemento, se itera según el orden de aparición de los elementos. Este elemento tiene la siguiente estructura: <xsl:sort select="expression" data-type="text" | "number" order="ascending" | "descending“ /> siendo expression una expresión XPath que indica el campo por el que debe ordenarse, data-type indica si es una ordenación numérica o alfanumérica, y order indica si es ascendente o descendente. xsl:choose, xsl:when, xsl:otherwise Debe contener uno o más elementos xsl:when y cero o un elemento xsl:otherwise . Sólo instancia el contenido del primer elemento when que se cumpla, y si no se cumple ninguno, instancia el contenido del elemento otherwise . Si no se cumple ningún when y no existe elemento otherwise , entonces no devuelve nada.
xsl:comment Este elemento no puede contener otros elementos. Sólo texto y referencias a entidades. Estas referencias serán reemplazadas por el texto asociado en el árbol resultante.
Estas son las funciones más comunes que pueden ser usadas en XSLT, tomadas del estándar XPath. A parte de éstas, hay otras funciones de XPath y algunas funciones definidas por XSLT. Estas funciones pueden ser usadas en los tags xsl:value-of .
Las versiones 5 y 5.5 del Internet Explorer contienen un parser antiguo (MSXML) que no permite aplicar todas las ventajas del estándar XSL. Se debe instalar la versión 3 de MSXML o superior para poder realizar los ejercicios del tutorial. Pero, después de instalarla, IE seguirá usando la primera versión, puesto que la versión 3 estará desactivada. Se pueden instalar varias versiones del MSXML sin pisar una a la otra, pero sólo habrá una activa que se use en las aplicaciones de Microsoft. Para activarla se debe ejecutar el xmlinst.exe
Ejercicio 1.1 Para probar el xml, abrirlo desde el Internet Explorer. Si se usan caracteres extraños, se debe agregar el atributo encoding=“ISO-8859-1” a la cabecera: <?xml version="1.0" encoding="ISO-8859-1"?> También se pueden añadir caracteres ASCII con la expresión &#65; siendo el 65 el código del carácter.
La presentación de páginas HTML con contenido XML es una de los usos más extendidos de XML, pero también pueden usarse para el intercambio de datos entre máquinas de forma que no hayan problemas de formato, ya que XML es un estándar basado en formato de texto, ideal para el manejo de información en Internet. Este intercambio de información se hace normalmente usando entornos de programación Java o Microsoft. El uso de XML para presentación de datos HTML usando XSL es el caso que hemos estado viendo durante los capítulos anteriores. XML proporciona los datos y la plantilla XSL le aplica una transformación para obtener una página HTML. Este proceso se hacía en el cliente. Microsoft Internet Explorer 5.0 contiene el parser MSXML que permite acceder a documentos XML y aplicarle transformaciones XSL. Netscape Navigator no tiene soporte XML hasta la versión 6.0. Usando Java, el acceso a datos del documento XML y posible transformación por XSL se realiza en el servidor. Sun posee una librería de clases (JAXP) de libre distribución que proporciona todas estas funciones. Aunque también existen otras librerías de libre distribución creadas por terceras partes. Estas clases pueden ser usadas tanto en JSP como en clases Java. En entornos Microsoft, el objeto COM MSXML permite el acceso a documentos XML ya sea en el cliente con el IE (que ya contiene el MSXML) o en el servidor con ASP o Visual Basic.
JAXP es el conjunto de clases que Sun pone a disposición del que lo necesite que permite el manejo de documentos XML, soportando los estándares de XML y XSL definidos por el W3C. Sun permite además la descarga de otras utilidades que hacen uso de XML, como JAXM (Java API for XML Messaging) que permite el intercambio de mensajes XML usando el protocolo SOAP (Simple Object Access Protocol). Todas estas aplicaciones se pueden descargar a la vez con el Java XML Pack. Los paquetes que comienzan con org.w3c.dom están bajo licencia del W3C, y el resto están bajo licencia de Apache ( http://xml.apache.org ). El código fuente también está disponible. La instalación tan solo consiste en descomprimir el archivo zip y añadir al classpath los archivos jar del parser (crimson.jar) y del procesador XSLT (xalan.jar).
JAXP contiene clases y métodos que permiten no sólo la lectura de datos de un documento XML, sino también la modificación de sus elementos, atributos, aplicación de hojas de estilos XSLT,... Aquí se muestra las partes más importantes de un código que quisiera acceder a un documento XML almacenado en un archivo, usando JAXP. Al comienzo, deben importarse las clases necesarias: las clases de JAVAXP, las excepciones para el control de posibles errores (por ejemplo, que no se encuentre un determinado nodo)
Primero se declara la variable donde se almacenará el documento XML ( document ). Se declara estática para que pueda ser accedida desde cualquier método de la clase y, una vez cargado el XML, no se pierda su valor. Al ser estática, debe declararse fuera del método main(). Se instancia la clase DocumentBuilderFactory que nos devolverá un parser. Con el método newDocumentBuilder () obtenemos el parser (variable builder ). Después se le pasa un objeto File al método parse, con el archivo del xml, y devuelve el documento. Después pueden usarse los métodos tradicionales para el acceso al documento, considerando que el método document.getDocumentElement() devuelve el elemento raíz.
La ayuda para estos objetos se puede encontrar en el fichero comprimido que contiene las clases de JAXP. Para la clase Text, el método que más se usa es getNodeValue(), heredado de Node y que devuelve el valor del texto.
La expresión document.getDocumentElement().getChildNodes() obtendrá la siguiente lista: 0. Elemento Text 1. Elemento Nodo cliente 2. Elemento Text 3. Elemento Nodo cliente 4. Elemento Text Esto es debido a que es posible insertar texto entre dos elementos cualesquiera. Aunque estos textos estén vacíos, el método getChildNodes() los devuelve como hijos. Los índices comienzan por 0. Para obtener el valor de un Element, hay que obtener sus hijos de tipo Text.
Instalación de JDK. Comprobar la versión del JDK instalado con el comando: java –version Si es inferior a la 1.1.8, descargar una versión posterior e instalarla. Instalación de JAXP. Descomprimir el archivo zip en un directorio del disco duro (por ej. C:\\Jaxp) y añadir al classpath los archivos jar del parser (crimson.jar) y del procesador XSLT (xalan.jar). Instalación de un servidor Web Java. Cualquier servidor web puede servir. Un ejemplo es el iPlanet Web Server FastTrack Edition, servidor gratuito que puede ser descargado de la web de iplanet. Recordemos que iplanet es el nombre con el que se conoce a la unión de Netscape y Sun. Antes Sun mantenía su JavaWeb Server, pero tras esta unión se ha dejado de mejorar esta herramienta, que se ha quedado en la versión 2.
El objetivo de esta práctica es la creación de una clase java que acceda a un documento XML almacenado en un archivo y obtenga sus datos. Se debe instalar el JDK antes de realizarla. También deben instalarse las clases de JAXP. Ejercicio 1.1 Al ejecutar la clase debe mostrar el nombre del primer cliente. Ejercicio 1.2 Se deben insertar las líneas necesarias explicadas en las páginas anteriores en el sitio correspondiente para que el archivo xml sea leído con la línea document = builder.parse(xmlFile); Ejercicio 1.3 Para hacer este ejercicio se deberá mirar la API de las clases de JAXP, que está en el directorio docs/api dentro del directorio de instalación de la librería JAXP. Hay que tener cuidado con la función getChildNodes(), porque devuelve una lista de nodos de los hijos, además de insertar nodos de Texto entre ellos. Así, si tenemos los tags <clientes> <cliente></cliente> <cliente></cliente> <clientes>
Aquí se muestra un ejemplo que obtiene un documento XML de datos y una plantilla XSLT de dos archivos xml y xsl respectivamente. El programa mostrará por la salida (System.out) el resultado de aplicarle la plantilla XSLT al documento XML. Para aplicarle una plantilla XSLT a un documento XML, hay que añadirle estos includes a la clase Java. El Transformer es el procesador XSLT encargado de hacer esa transformación.
Aquí se explica el significado de cada línea de código: Al igual que en el ejemplo anterior, se declara el documento donde se guardarán los datos del XML. Se instancia el la clase DocumentBuilderFactory que es la que creará el parser. Se crean dos objetos de tipo File, stylesheet guardará el fichero xsl y datafile el fichero que contenga el documento xml. Se crea el parser (variable builder ) llamando al método newDocumentBuilder () del objeto factory . Se obtiene el documento del xml de datos con la función parse del objeto builder . Se instancia la clase TransformerFactory , que es la que creará el procesador XSLT (objeto Transformer ). Se crea el objeto stylesource , que guarda el origen de la plantilla XSLT. En este caso, el origen es el archivo que contiene el fichero xsl ( stylesheet ). Se crea el procesador XSLT (objeto transformer ) usando el objeto tFactory de tipo TransformerFactory . Se declara un objeto DOMSource , que especifica el origen del documento XML de datos. En este caso es el documento obtenido anteriormente ( document ). Se especifica a dónde se mandará el resultado de la transformación. En este caso es System.out. Si se quiere mandar a un fichero, habría que pasarle un objeto de tipo FileWriter al constructor del StreamResult . Por ejemplo: StreamResult result = new StreamResult( new FileWriter("salida.htm") ); Ejecutar la transformación llamando al método transform del transformer . El primer parámetro es el origen de los datos ( source ) y el segundo es la salida del resultado ( result ). Recordemos que el transformer ya está asociado a una hoja de estilos.
El objetivo de esta práctica es la aplicación de una plantilla XSL a un documento XML estando ambos almacenados en archivos. Ejercicio 2.1 El resultado será una página web que puede ser abierta en cualquier browser.
Para guardar un documento XML en un archivo o en otra salida se pueden usar los mismos objetos ya usados en el ejemplo anterior. Pero ahora, el transformer lo construiremos sin argumento (sin indicarle la hoja de estilos XSLT), de forma que no hará ninguna transformación. En el resultado se pasará un objeto FileWriter con el archivo de salida.
El objetivo de esta práctica es la modificación de un documento XML y posterior almacenamiento de las modificaciones. Ejercicio 3.1 Habrá que hacer uso de la api de JAXP para saber los métodos necesarios. Tras compilar la clase y ejecutarla, se abrirá el archivo clientes.xml en el notepad para comprobar que se ha insertado el dni en el segundo cliente.
Existen otros parsers creados por terceras partes, también de libre distribución, que pueden ser usados y están disponibles en Internet.
Para la realización de este ejercicio se deberá instalar algún servidor web que soporte jsp, como JavaWebServer o iPlanet Web Server.
MSXML es un objeto COM que incluye un parser XML y un procesador XSLT. Este objeto es usado por las aplicaciones Microsoft, su navegador IE, sus sistemas operativos y el servidor IIS (Internet Information Server). Está incluido en el Internet Explorer, aunque también se pueden descargar las últimas versiones desde la web de Microsoft ( http://msdn.microsoft.com/xml ). Microsoft permite que se puedan instalar nuevas versiones del objeto sin tener que pisar versiones anteriores. Por ejemplo, la librería msxml4.dll contiene la versión 4 del parser, pero no pisa la versión 3 contenida en msxml3.dll. Para seleccionar qué versión del objeto se desea utilizar se ha creado la aplicación xmlinst.exe. La versión que trae el Internet Explorer es la más antigua. Ésta se introdujo cuando la especificación XSL no era más que un borrador, por lo que no soporta algunas características avanzadas, como las funciones o las operaciones aritméticas. Para usar estas características se debe instalar la versión 3.0 o superior y ejecutar xmlinst.exe para que se use la nueva versión instalada.
Las funciones Load y LoadXML del objeto DOMDocument sirven, respectivamente, para cargar un documento XML desde un archivo XML o desde una cadena. Ambos devuelven true si el documento se ha cargado correctamente, y false si el documento no es válido.
Este ejemplo muestra como obtener un documento XML de un archivo y aplicarle una hoja de estilos XSL. Primero se declaran dos objetos DOMDocument , uno para el documento XML ( domXml ) y otro para el documento XSL ( domXsl ). La variable result será una cadena que guardará el resultado de la transformación. Después se crean los documentos domXml y domXsl . Luego se cargan los documentos desde sus respectivos archivos. Por último, se realiza la transformación llamando al método transformNode del documento y pasándole como parámetro la plantilla XSL. El resultado es una cadena que, en su caso, contendrá el código de la página HTML.
Para la realización de este ejercicio se deberá instalar un servidor web que soporte asp, como IIS o Personal Web Server.