Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
¿QUÉ ES XML?
•XML es un metalenguaje
•Es un conjunto de reglas que permiten definir etiquetas semánticas para dividir un documento en diferentes
partes.
•Su formato es texto plano, usando caracteres Unicode (es decir de 16 bits).
•Es un lenguaje de marcas, que usa etiquetas y atributos, no estando estos preestablecidos.
•Es un lenguaje sintácticamente estricto, que no obvia ningún error.
•XML es una familia de tecnologías.
•Los ficheros XML son extensos.
•XML es un estándar gratuito multiplataforma producido por el W3C.
•Es una arquitectura más abierta y extensible.
•Proporciona mayor consistencia, homogeneidad y amplitud de los identificadores descriptivos del
documento en comparación a los atributos <META> del HTML.
•Permite la integración de los datos de las fuentes más dispares.
•Permite agrupar datos compuestos de múltiples aplicaciones.
Aplicación SGML
HTML
SGML
Consta de 4 especificaciones:
USO DE XML:
•Meta información
•Bases de datos
•Mensajería
Las Tecnologías XML y sus aplicaciones
• Prologo o cabecera.
• Elemento raíz o entidad documento.
• Árbol.
• Documentos XML bien formados. Son aquellos que respetan la sintaxis del XML.
• Documentos XML validos. Son aquellos que además de bien formados se ajustan a la DTD que
define su estructura.
Las Tecnologías XML y sus aplicaciones
SINTAXIS DE XML:
Cabecera XML
•Declaración XML: Indica que el documento es un documento XML, y tiene la siguiente estructura:
<?xml version=”1.0” encoding=”ISO-8859-1” standalone=”yes” ?>
SINTAXIS DE XML:
Comentarios
<!--Comentario-->
Elementos
Elementos sin atributos con datos:
<etiqueta1>Valor</etiqueta1>
<elemento1 atributo=”valor”>Datos</elemento1>
Elementos vacíos
<elemento1/>
Las Tecnologías XML y sus aplicaciones
SINTAXIS DE XML:
Atributos
<elemento1 atributo=”valor”>Datos</elemento1>
<elemento1 atributo=”valor” valor=”Datos”></elemento1>
Entidades
&entidad;
<elemento1>&entidad;</elemento1>
Las Tecnologías XML y sus aplicaciones
RESTRICCIONES. DTD:
Elementos.
Atributos.
Entidades.
•Dentro del documento XML, al principio de este, tras la cabecera XML, con una declaración de tipo de
documento:
<!DOCTYPE elementoRaiz [
<!-- Aquí se incluyen el resto de declaraciones -->
]>
•Referenciando a un documento externo con: Documento en el que se habrán almacenado todas las
definiciones, y que suele tener la extensión .dtd.
<!DOCTYPE elementoRaiz SYSTEM “nombrefichero.dtd”>
Las Tecnologías XML y sus aplicaciones
XML Schema, evita la necesidad de utilizar un nuevo lenguaje con su sintaxis particular para definir tipos de
documento, a costa de ser un poco más complicado que DTD.
XML Schema, que presenta las siguientes ventajas:
• Sintaxis en modo XML
• Mas de 37 tipos básicos de datos soportados.
• Reutilización de nombres.
• Herencias.
• Definición de datos no necesariamente ordenada.
• Restricciones y extensiones de los tipos de datos.
• Mayor control del número de ocurrencias de elementos que deben aparecer.
• Posibilidad de uso de datos complejos definidos por el usuario.
Las Tecnologías XML y sus aplicaciones
XML Schema.xsd
Fichero.xsd
Fichero.xml
Las Tecnologías XML y sus aplicaciones
<sympleType name=”dorsal>
<restriction base=”integer”>
<minInclusive value=”1”>
<maxExclusive=”12”>
</restriction>
</sympleType>
<pattern value=”patron”>
<simpleType name=”lista”>
<list base=”string/>
<length value=”2”/>
<enumeration value=”uno”/>
<enumeration value=”dos”/>
</simpleType>
Las Tecnologías XML y sus aplicaciones
<complexType name=”nombre”>
<!-- Definición de elementos -->
<!-- Definición de atributos -->
</complexType>
<complexType name=”nombre”>
<sequence>
<!-- Definición de elementos -->
</sequence>
<!-- Definición de atributos -->
</complexType>
<attributeGroup name=”grupo”>
<attribute name=”atributo1” type=”string”/>
<attribute name=”atributo2” type=”string”/>
<attribute name=”atributo3” type=”string”/>
</attributeGroup>
Tipos de datos complejos. Todos:
<complexType name=”lista”>
<all>
<element name=”uno” type=”string” />
<element name=”dos” type=”string” />
</all>
</complexType>
Las Tecnologías XML y sus aplicaciones
<complexType name=”lista”>
<sequence>
<choice>
<element name=”uno” type=”string” />
<element name=”dos” type=”string” />
</choice>
<element name=”tres” type=”string” />
</sequence>
</complexType>
<schema>
<!-- Declaración de elementos -->
</schema>
XML Namespaces
Un espacio de nombres o namespace tiene como objetivo principal el permitir que el autor del documento le
diga al analizador qué DTD usar cuando analice un elemento dado, es decir, especificar para cada etiqueta
qué DTD usar. Estos espacios de nombres se usan tanto para atributos como para elementos.
Para definir un namespace se utiliza la siguiente sintaxis:
<elemento_raiz xmlns:idns=”url” >
Donde idns es el identificador del namespace que se usará en nuestro documento y la url puede apuntar a
un documento con las especificaciones del espacio de nombres.
El identificador o prefijo del namespace se puede seleccionar a voluntad, lo que caracteriza al namespace es
la URL. Este identificador se colocará delante de todas las etiquetas que queramos que sean validadas con
esa DTD. Ejemplo:
<elemento_raiz xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
xs:schemaLocation="URL file:agenda.xsd">
Las Tecnologías XML y sus aplicaciones
XSL
El XSL (eXtensible Stylesheet Language – Lenguaje Extensible de Hojas de Estilo) es un lenguaje para crear
hojas de estilo adaptadas al XML
XSL se compone de tres elementos:
•XSLT (XSL Transformations): Es un lenguaje que permite transformar documentos XML en otros
documentos XML.
•XPath (XML Path Language): Es un lenguaje usado por XSLT para acceder o referenciar partes de un
documento XML.
XSL Formatting Objects: Un vocabulario para especificar formatos y semántica.
Las Tecnologías XML y sus aplicaciones
XSLT es un lenguaje para transformar documentos XML en otros documentos XML, puede convertir un XML
que obedezca a un DTD en otro que obedezca a otro diferente, o, lo más habitual, transformarlo a “formatos
finales”, tales como WML o HTML.
Mediante XSLT se pueden añadir nuevos elementos al documento de salida o eliminarlos, pudiendo también
reordenar y mezclar los elementos existentes, además de poder realizar decisiones, bucles...
XSLT es un estándar del W3C y es el más importante de los estándares XSL.
Declaración de XSLT:
Etiquetas: Template
Etiquetas: Apply-template
Etiquetas: Value-of
<xsl:value-of select=”expresion”/>
Etiquetas: For-each
<xsl:for-each select=”conjuntoNodos”>
</xsl:for-each>
Las Tecnologías XML y sus aplicaciones
Etiquetas: Sort
<xsl:for-each select="ruta">
<xsl:sort select="que_ordenar" order=”ascending|descending”/>
</xsl:for-each>
Etiquetas: If
<xsl:if test="condicion”>
...
</xsl:if>
Etiquetas: Choose-When-Otherwise
<xsl:choose>
<xsl:when test="condicion">
...
</xsl:when>
<xsl:otherwise>
....
</xsl:otherwise>
</xsl:choose>
Las Tecnologías XML y sus aplicaciones
Etiquetas: Element
<xsl:element name=”element-name”>
...
</xsl:element>
Etiquetas: Attribute
<xsl:attribute name=”attribute-name”>
...
</xsl:attribute>
Etiquetas: Variable
<xsl:variable name=”Variable-name”>
Valor
</xsl:variable>
Las Tecnologías XML y sus aplicaciones
XSL: XPath
XPath es una sintaxis para definir partes de documentos XML., que usa rutas para navegar en documentos
XML.
Mediante el uso de XPath se puede seleccionar y hacer referencia a texto, elementos, atributos y cualquier
otra información contenida dentro de un fichero XML.
XPath es un estándar del W3C, que forma parte de XSLT, también de XQuery.
XPath utiliza rutas para seleccionar nodos en un documento XML. La ruta se compone de tres elementos:
•Un eje, que define la relación entre el nodo actual y el conjunto de nodos a localizar.
•Un nodo, que especifica el conjunto de nodos a localizar.
•De 0 a n predicados que permiten refinar la búsqueda
Las Tecnologías XML y sus aplicaciones
XSL: XPath
EJES:
•child.
•descendant.
•parent.
•ancestor.
FUNCIONES:
De Nodo:
XSL: XPath
FUNCIONES:
Posicionales:
FUNCIONES:
Numéricas:
XSL: XPath
FUNCIONES:
De cadena:
•string(): Convierte cualquier valor en cadena.
•string-length(): Devuelve la longitud de una cadena.
•concat(): Concatena dos o más cadenas.
•contains(): Indica si una cadena contiene a otra.
•starts-with():Indica si una cadena comienza con el contenido de otra cadena
•substring(): Devuelve una subcadena a partir de otra más larga, indicando la posición de inicio y cuantos
caracteres devolver.
•substring-after(): Retorna todos los caracteres que hay tras un carácter indicado
•substring-before(): Retorna todos los caracteres que hay antes de un carácter indicado
Las Tecnologías XML y sus aplicaciones
XSL-FO es una implementación especifica de un determinado XSLT, que permite transforma un documento
XML a otro documento que, conteniendo la información original, tenga un formato de visualización impresa.
Esa es la principal diferencia entre FO y otros XSLT: la orientación a una transformación más rígida.
Un documento XSL-FO es un documento XML en el que se especifica cómo se van a formatear unos datos
para presentarlos en pantalla, papel u otros medios. En el documento XSL-FO figuran tanto los datos como
el formato que se les va a aplicar.
El modelo utilizado por FO está basado en cajas rectangulares llamadas áreas, las cuales pueden contener
texto, espacio vacío u otros FO.
Los FO están divididos formalmente en cuatro tipo de áreas rectangulares: contenedores, bloques, líneas e
inline. Estas cuatro categorías forman una jerarquía muy estricta.
Las Tecnologías XML y sus aplicaciones
Etiquetas:
<simple-page-master>: Definen el aspecto de cada página patrón especificando los tamaños de sus
regiones anterior, posterior, cuerpo, inicio y fin
<fo:simple-page-master page-master-name="impar"
height="29cm" width="21cm" margin-top="0.5cm" margin-bottom="0.5cm"
margin-left="1.0cm" margin-right="0.5cm">
<fo:region body/>
</fo:simple-page-master>
<sequence-specification>: Lista el orden en que serán aplicadas las distintas páginas patrón.
<fo:sequence-specification>
<fo:sequence-specifier-single page-master-name="par"/>
<fo:sequence-specification>
Las Tecnologías XML y sus aplicaciones
Etiquetas:
<static-content>: Especifican contenido que aparecerá en todas las páginas, tales como pies de página,
como podemos ver en el ejemplo siguiente:
<fo:static-content flow-name="region-after">
<fo:block>Consejería de Agricultura</fo:block>
</fo:static-content>
<block>: Se entiende por bloque un área rectangular separada por una línea de ruptura y un espacio antes y
después de su contenido, pudiendo contener otros bloques. Se definen mediante la etiqueta <block>
Las Tecnologías XML y sus aplicaciones
ANALIZADORES
El procesado de documentos XML puede ser tedioso, por eso para realizar el mismo se
recurre a unas aplicaciones que ofrecen ayuda para analizar de forma automática la
estructura los documentos XML, que se denominan analizadores o parsers.
Los dos tipos de parsers más comunes son:
•SAX (Simple Api for XML – Interfaz de acceso simple para XML).
•DOM (Document Object Model – Modelo de Objeto Documento).
Las Tecnologías XML y sus aplicaciones
ANALIZADORES
SAX
El SAX proporciona un mecanismo de acceso al XML de forma secuencial (similar a una cinta de video), por
lo que será ideal para aplicaciones cuyos documentos XML a analizar vengan dados por comunicaciones
entre procesos, tanto en transmisión como en recepción.
Este tipo de parser necesita poca memoria, ya que una vez procesada la sección de documento pedida la
abandona.
SAX comenzará a recibir el documento a analizar, y avisará de los elementos que se va encontrando. En
SAX, el programador debe ocuparse del código que gestione os eventos que puedan acontecer al recorrer el
documento, indicando el comportamiento para atributos, elementos... Es por ello por lo que se le conoce
también como parser orientado a evento.
Las Tecnologías XML y sus aplicaciones
ANALIZADORES
DOM
El DOM es un parser más pesado que el SAX, pero tiene la ventaja de que no es necesaria mucha de la
programación que implica el SAX, además de tener mayor control sobre la estructura del documento.
El DOM es un parser ideal para la lectura de ficheros almacenados en el disco duro. Lo primero que hace es
leer el documento en su totalidad generando un árbol, correspondiente a la estructura del documento.
Debido a que se carga todo el documento en memoria, requiere más memoria que SAX, pero el acceso al
documento es por nodos, no secuencial. Estos nodos son de dos tipos, nodos elemento, que pueden
contener otros elementos, o nodos texto, que contienen solo texto.
Las Tecnologías XML y sus aplicaciones
XML en ORACLE 9i
Funciones Implementadas
•XMLElement es una función que devuelve un elemento de tipo XMLType (que podemos asemejar a un
documento XML), proporcionándole como parámetros el nombre del elemento, sus atributos y su contenido.
•XMLAttribute es una función que permite definir atributos, proporcionándole su contenido y su nombre, y es
usada por XMLElement para la definición de los atributos.
•XMLForest es una función que crea un árbol con los elementos que se le proporcionan, ubicándolos al
mismo nivel, partiendo del mismo nodo padre.
•XMLConcat es una función que dados una serie de documentos XML (u objetos XMLType) los concatena
en el orden en que aparecen como parámetros.
•XMLAgg es una función de agregado que produce un bosque de elementos XML dada una colección de
elementos, usándose normalmente en sentencias con GROUP BY.
Las Tecnologías XML y sus aplicaciones
XQUERY
XQuery es un leguaje de consultas estándar, publicado por el W3C (World Wide Web
Consortium) que utiliza la notación XML para definir consultas y manejar los resultados.
XQuery es lo suficientemente flexible como para consultar un amplio espectro de orígenes de
datos, incluyendo bases de datos relacionales, documentos XML, Servicios Web,
aplicaciones y sistemas heredados.
Las Tecnologías XML y sus aplicaciones
XQUERY
Las expresiones FLWOR (que en estos ámbitos suelen pronunciarse "flower") son al XQuery
lo que las distintas cláusulas dentro de una sentencia Select (el select, from, where, etc) son
al SQL. Es decir, son sus bloques principales. El nombre viene de For, Let, Where, Order by
y Return:
•FOR: asocia una o más variables a expresiones, creando un conjunto de tuplas en el cual
cada tupla vincula una variable dada a uno de los ítems a los cuales está asociada la
expresión evaluada.
•LET: vincula las variables al resultado de una expresión, agregando estos vínculos a las
tuplas generadas por la cláusula FOR.
•WHERE: filtra tuplas, quedando solo aquellas que cumplen con la condición.
•ORDER BY: ordena las tuplas en el conjunto de tuplas.
•RETURN: construye el resultado de la expresión FLWOR para una tupla dada.
Las Tecnologías XML y sus aplicaciones
RSS no es más que un sencillo formato de datos usado para sindicar (redifundir) contenidos
a suscriptores de un sitio Web. Las siglas RSS corresponden a distintos protocolos:
Para poder utilizar el RSS para recibir contenidos, el usuario debe disponer de un agregador.
Existe una gran variedad de estos, pero todos ellos se pueden clasificar en tres categorías:
•Agregadores de escritorio
•Agregadores en línea
•Agregadores como plug-ins
Las Tecnologías XML y sus aplicaciones
<rss version=“”>
</rss>
<channel>
</channel>
Las Tecnologías XML y sus aplicaciones
Item: Representa cada una de las actualizaciones que se envían en el documento RSS.
<item></item>
SOAP
SOAP
Un Web Service es una interfaz, accesible por protocolos (estándar o no) usados en Internet,
que permite acceder a las funcionalidades de un objeto concreto, sin importar la tecnología ni
plataformas implicadas en la petición. Suele utilizar HTTP y la comunicación entre los
elementos del entorno requiere un lenguaje común estándar como XML.
Utiliza otros protocolos como SOAP, WSDL, UDDI o WSIL.
WSDL es un formato XML que describe los servicios de red como un conjunto de puntos
finales que procesan mensajes contenedores de información orientada a documentos y
procedimientos.
UDDI es una base de datos a nivel mundial gestionada por una alianza de empresas para
obtener información de Web Services y de las empresas que los proporcionan.
Las Tecnologías XML y sus aplicaciones
SOAP
Protocolos Comunes de