antecedentes. el xml (extensible markup language) es un metalenguaje, es decir un lenguaje para...

45
antecedentes antecedentes

Upload: fabricio-ferrin

Post on 28-Jan-2016

228 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

antecedentesantecedentes

Page 2: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico. El XML hace uso de marcas para describir un documento y las partes del mismo de una forma consistente y siguiendo unas especificaciones estándar. Las marcas son códigos especiales que informan sobre los datos de los documentos y, eventualmente, sobre la manera en que dichos datos ven a ser mostrados

Es importante destacar que el uso de los documentos XML no consiste necesariamente en mostrarlos con un formato a través de algún dispositivo físico. El XML añade significado a los componentes de un documento, que pueden ser procesados con intereses diversos.

Page 3: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

El XML, a diferencia del HTML, separa el contenido de los documentos y la presentación de los mismos.

El XML está basado en un estándar anterior, el SGML (Standard Generalized Markup Language), que hace uso de etiquetas para describir un documento y sus partes. Los inconvenientes del SGML son su dificultad de implementación y su generalidad excesiva.

Page 4: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

Estructura Datos Xml

Estructura Datos Xml

Page 5: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

La tecnología XML busca dar solución al problema de expresar información estructurada de la manera más abstracta y reutilizable posible. Que la información sea estructurada quiere decir que se compone de partes bien definidas, y que esas partes se componen a su vez de otras partes. Entonces se tiene un árbol de pedazos de información. Ejemplos son un tema musical, que se compone de compases, que están formados a su vez con notas. Estas partes se llaman elementos, y se las señala mediante etiquetas.

Page 6: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

Una etiqueta consiste en una marca hecha en el documento, que señala una porción de este como un elemento, un pedazo de información con un sentido claro y definido. Las etiquetas tienen la forma <nombre>, donde nombre es el nombre del elemento que se está señalando.

Page 7: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

<?xml version=“1.0″ encoding=“ISO-8859–1″ ?>

<!DOCTYPE Edit_Mensaje SYSTEM “Lista_datos_mensaje.dtd”

[<!ELEMENT Edit_Mensaje (Mensaje)*>]> <Edit_Mensaje> <Mensaje> <Remitente> <Nombre>Nombre del remitente</Nombre> <Mail> Correo del remitente </Mail> </Remitente> <Destinatario> <Nombre>Nombre del destinatario</Nombre> <Mail> Correo del destinatario</Mail> </Destinatario> <Texto> <Parrafo>

Page 8: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

ESQUEMA DE LOS DOCUMENTOS

ESQUEMA DE LOS DOCUMENTOS

XMLXML

Page 9: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

La necesidad de jerarquizar y estructurar correctamente la información, no sólo para almacenarla, sino también para acceder a ella, se ha convertido en una labor que ha cobrado especial relevancia en los últimos años, en los que se han producido importantes avances en este campo.

Inicialmente se usaron las Definiciones del Tipo de Documento (DTDs) en el lenguaje SGML para describir el vocabulario necesario para identificar todos los elementos de que iba a constar el documento y para expresar la estructura. La aparición y el desarrollo del lenguaje XML, hizo que este lenguaje incorporara también las DTDs, no en vano, hay que recordar que el lenguaje XML no es sino un subconjunto del lenguaje SGML.

Page 10: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

Pero las DTDs no satisficieron todas las necesidades inherentes a XML y pronto se vio necesario utilizar otros métodos más rigurosos y sofisticados para tratar la estructura y la semántica dentro de un documento XML. Así surgieron los Esquemas XML (XML Schema), como una forma de ampliación y mejora de las primitivas DTDs.

Las DTDs y los Schemas son usados por los analizadores sintácticos o parsers para comprobar si un documento XML es válido. pues, vemos que para proceder a la estructuración o especificación formal dentro de un documento XML existen distintas soluciones, entre las que cabe destacar principalmente dos: las DTDs y los XML Schemas. Pero veamos con más profundidad las diferencias entre la utilización de DTDs y Esquemas.

Page 11: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

tipo de documento o DTDtipo de documento o DTD

Page 12: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

Una definición de tipo de documento o DTD (siglas en inglés de document type definition) es una descripción de estructura y sintaxis de un documento XML o SGML. Su función básica es la descripción del formato de datos, para usar un formato común y mantener la consistencia entre todos los documentos que utilicen la misma DTD. De esta forma, dichos documentos, pueden ser validados, conocen la estructura de los elementos y la descripción de los datos que trae consigo cada documento, y pueden además compartir la misma descripción y forma de validación dentro de un grupo de trabajo que usa el mismo tipo de información.

Page 13: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

Las DTD se emplean generalmente para determinar la estructura de un documento mediante etiquetas (en inglés tags) XML o SGML. Una DTD describe:

Elementos: indican qué etiquetas son permitidas y el contenido de dichas etiquetas.

Estructura: indica el orden en que van las etiquetas en el documento.

Anidamiento: indica qué etiquetas van dentro de otras.

Page 14: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

Hay tres tipos de documentos XML:

Documentos inválidos no siguen las reglas de sintaxis definidas por la especificación XML. Si un desarrollador tiene reglas definidas de lo que ese documento puede contener en una DTD o Esquema, y el documento no las sigue, ese documento es inválido. (Ver Definiendo el contenido del documento en la página 13 para una introducción apropiada a los DTDs y Esquemas de los documentos XML.) Documentos válidos siguen tanto las reglas de sintaxis XML como las reglas definidas en su propio DTD o Esquema. Documento bien formado sigue las reglas de sintaxis XML, pero no tiene un Esquema o DTD.

Page 15: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

El elemento raíz

Un documento XML debe estar contenido en un elemento único. Este elemento único es llamado el elemento raíz y contiene todo el texto y cualquier otro elemento en el documento. En el ejemplo siguiente, el documento XML está contenido en un elemento único, el elemento <greeting>. Notese que el documento tiene un comentario el cual, aunque está fuera del elemento raíz, es perfectamente legal

Page 16: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

Los elementos no pueden solaparse

Los elementos XML no pueden solaparse. Aquí presentamos un marcado ilegal:

<!--marcado XML ilegal --> <p> <b>Yo <i>amo de verdad </b> XML. </i>

Si comienza un elemento <i> dentro de un elemento <b> también deberá terminarlo dentro. Si se quiere que el texto XML aparezca en cursiva, hay que añadir un segundo elemento <i> para corregir el marcado:

<!--marcado XML legal --> <p> <b>Yo <i>amo de verdad </i> </b> <i>XML. </i>

Un parser XML aceptará solamente este marcado; Los parser HTML de la mayoría de los navegadores aceptarán ambos.

Page 17: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

ESQUEMA DE XML

ESQUEMA DE XML

Page 18: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

Cuando trabajamos con documentos XML, nos preocupamos de que esté bien formado (las etiquetas se empiecen y terminen, se utilicen caracteres adecuados, etc. ) y que sea válido ( las etiquetas sean las correctas, estén en el orden adecuado, etc. ).

Las DTDs son los documentos que definen las etiquetas válidas dentro de un documento XML. Un documento XML normalmente tiene asociado una DTD (el documento es del tipo de la DTD)

Page 19: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

El problema de las DTDs es, que no son documentos XML en sí mismos, no son demasiado extensibles y además, no nos permite establecer validaciones más complejas que la propia existencia y orden de los elementos y atributos.

Era de esperar que las DTDs evolucionasen. Esta evolución son los schemas (Esquemas XML).

Page 20: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

Este es el aspecto del esquema:

<?xml version="1.0" encoding="ISO-8859-1"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"targetNamespace="http://www.adictosaltrabajo.com/esquemas/libro"xmlns="http://www.adictosaltrabajo.com/esquemas/libro"elementFormDefault="qualified"><xsd:element name="libro">    <xsd:complexType>        <xsd:sequence>            <xsd:element name="titulo" type="xsd:token"/>

Page 21: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

<xsd:element name="autor" type="xsd:token"/>        </xsd:sequence>    </xsd:complexType></xsd:element>

<xsd:element name="libros" >    <xsd:complexType>        <xsd:sequence>            <xsd:element ref="libro" maxOccurs="unbounded" />        </xsd:sequence>    </xsd:complexType></xsd:element>

</xsd:schema> 

Page 22: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

En este caso, hemos indicado que hay:Un elemento principal libros, que es

de tipo complejo y que contiene una secuencia de libros con un número de ocurrencias indeterminado

Cada libro posee un titulo y autor, donde serán de tipo texto donde ignoraremos los espacios sobrantes.

Page 23: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

CONSULTA Y TRANSFORMACION

CONSULTA Y TRANSFORMACION

Page 24: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

Extensible Stylesheet Language Transformation (XSLT)

XSLT es una especificación recomendada por el World Wide Web Consortium (World Wide Web Consortium (W3C): consorcio de instituciones educativas y comerciales que supervisa la investigación y promociona estándares en todas las áreas relacionadas con World Wide Web.) (W3C), compatible con Access. El XSLT es un lenguaje basado en XML que permite que un documento XML sea asignado a, o transformado en, otro documento XML

Page 25: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

. Esto proporciona un medio de transformar la información de la presentación de un documento XML de un formato fuente a un formato destino y así sucesivamente. Normalmente el programador crea un archivo de transformación XSL que al aplicarse a un documento XML durante la exportación interpreta o transforma los datos XML en un formato de presentación que puede ser reconocido por otra aplicación, como el Protocolo de anuncio de servicios (SAP) o por un formato de pedido personalizado.

Page 26: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

CONSULTASEn SQL Server 2000, puede especificar la

cláusula FOR XML sólo en el nivel superior de una consulta SELECT. El XML resultante se devuelve principalmente al cliente para el procesamiento adicional. Sin embargo, a partir de SQL Server 2005, el tipo de datos xml y la directiva TYPE en consultas FOR XML permiten que el XML que devuelven las consultas FOR XML pueda ser procesado de manera adicional en el servidor.

Page 27: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

Puede asignar el resultado de la consulta FOR XML a una variable de tipo xml, o utilizar XQuery para consultar el resultado y asignar ese resultado a una variable de tipo xml para procesarlo más.

En el siguiente ejemplo, el resultado de la consulta FOR XML se devuelve como un tipo xml porque se ha especificado la directiva TYPE en la cláusula FOR XML.

Page 28: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

SELECT ProductModelID, NameFROM Production.ProductModelWHERE ProductModelID=119 or ProductModelID=122FOR XML RAW, TYPE,ROOT('myRoot')

Page 29: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

XPATHXPATH

Page 30: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

XPath (XML Path Language) es un lenguaje que permite construir expresiones que recorren y procesan un documento XML. La idea es parecida a las expresiones regulares para seleccionar partes de un texto sin atributos (plain text). XPath permite buscar y seleccionar teniendo en cuenta la estructura jerárquica del XML. XPath fue creado para su uso en el estándar XSLT, en el que se usa para seleccionar y examinar la estructura del documento de entrada de la transformación.

Page 31: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

XPath en sí es un lenguaje sofisticado y complejo, pero distinto de los lenguajes procedurales que solemos usar (C, C++, Basic, Java...). Además, como casi todo en el mundo de XML, aún está en estado de desarrollo, por lo que no es fácil encontrar herramientas que incorporen todas sus funcionalidades.

Page 32: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

XPath es a su vez la base sobre la que se han especificado nuevas herramientas que aprovechar para el tratamiento de documentos XML. Herramientas tales como XPointer, XLink y XQuery (el lenguaje que maneja los documentos XML como si de una base de datos se tratase), que también están en estado de desarrollo, pero que sin duda cambiarán el modo en que actualmente concebimos la navegación por la Web

Page 33: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

XQUERYXQUERY

Page 34: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

XQuery es un lenguaje de consulta diseñado para consultar colecciones de datos XML. Es semánticamente similar a SQL, pero incluye algunas capacidades de programación.

El XQuery 1.0 fue desarrollado por el grupo de trabajo de Consulta XML del W3C. El trabajo fue estrechamente coordinado con el desarrollo de XSLT 2.0 por el Grupo de trabajo XSL; los dos grupos compartieron la responsabilidad del XPath 2.0, que es un subconjunto de XQuery 1.0

Page 35: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

XQuery proporciona los medios para extraer y manipular información de documentos XML, o de cualquier fuente de datos que pueda ser representada mediante XML, como por ejemplo Bases de Datos Relacionales o documentos ofimáticos.

XQuery utiliza expresiones XPath para acceder a determinadas partes del documento XML.

Page 36: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

Añade además unas expresiones similares a las usadas en SQL, conocidas como expresiones FLWOR. Las expresiones FLWOR toman su nombre de los 5 tipos de sentencias de las que pueden estar compuestas: FOR, LET, WHERE, ORDER BY y RETURN.

Page 37: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

XSLTXSLT

Page 38: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

procesadores XSLT debe utilizar el mecanismo de espacios de nombres XML [XML] Nombres de reconocer los elementos y atributos de este espacio de nombres. Elements from the XSLT namespace are recognized only in the stylesheet not in the source document. Elementos del espacio de nombres de XSLT sólo se reconocen en la hoja de estilos no en el documento de origen. The complete list of XSLT-defined elements is specified in [ B Element Syntax Summary ] .

Page 39: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

La lista completa de los elementos definidos XSLT se especifica en [B Elemento Resumen de sintaxis] . Vendors must not extend the XSLT namespace with additional elements or attributes. Los vendedores no debe ampliar el espacio de nombres de XSLT con elementos adicionales o atributos. Instead, any extension must be in a separate namespace.

En su lugar, toda ampliación debe estar en un espacio de nombres por separado. Any namespace that is used for additional instruction elements must be identified by means of the extension element mechanism specified in [ 14.1 Extension Elements ] . Cualquier espacio de nombres que se utiliza para los elementos de instrucción adicional debe ser identificado por medio del mecanismo de extensión de elemento especificado en [14,1] Elementos de extensión .

Page 40: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

Un elemento del espacio de nombres de XSLT puede tener cualquier atributo no del espacio de nombres de XSLT, siempre que el nombre expandido del atributo tiene un nulo espacio de nombres no URI. The presence of such attributes must not change the behavior of XSLT elements and functions defined in this document. La presencia de estos atributos no debe cambiar el comportamiento de los elementos XSLT y las funciones definidas en este documento.

Page 41: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

An element from the XSLT namespace may have any attribute not from the XSLT namespace, provided that the expanded-name of the attribute has a non-null namespace URI.Thus, an XSLT processor is always free to ignore such attributes, and must ignore such attributes without giving an error if it does not recognize the namespace URI. Por lo tanto, un procesador de XSLT es siempre libertad para ignorar estos atributos, y debe pasar por alto estos atributos sin dar un error si no reconoce el espacio de nombres URI. Such attributes can provide, for example, unique identifiers, optimization hints, or documentation. Tales atributos pueden proporcionar, por ejemplo, identificadores únicos, consejos de optimización, o documentación.

Page 42: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

Dispositivo de Dispositivo de almacenamiento de datos XLMalmacenamiento de datos XLM

Page 43: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

Los dispositivos o unidades de almacenamiento de datos son dispositivos que leen o escriben datos en medios o soportes de almacenamiento, y juntos conforman la memoria secundaria o almacenamiento secundario de la computadora

un almacén de datos (del inglés data warehouse) es una colección de datos orientada a un determinado ámbito (empresa, organización, etc.), integrado, no volátil y variable en el tiempo, que ayuda a la toma de decisiones en la entidad en la que se utiliza.

Page 44: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

APLICACIONESAPLICACIONES

Page 45: Antecedentes. El XML (eXtensible Markup Language) es un metalenguaje, es decir un lenguaje para construir otros lenguajes con un propósito específico

<?xml version=“1.0″ encoding=“ISO-8859–1″ ?> <!DOCTYPE Edit_Mensaje SYSTEM “Lista_datos_mensaje.dtd” [<!ELEMENT Edit_Mensaje (Mensaje)*>]> <Edit_Mensaje> <Mensaje> <Remitente> <Nombre>Nombre del remitente</Nombre> <Mail> Correo del remitente </Mail> </Remitente> <Destinatario> <Nombre>Nombre del destinatario</Nombre> <Mail> Correo del destinatario</Mail> </Destinatario> <Texto> <Parrafo> Este es mi documento con una estructura muy sencilla no contiene atributos

ni entidades…. </Parrafo> </Texto> </Mensaje> </Edit_Mensaje>