Está en la página 1de 72

Administración de Sistemas

Informáticos en red

XML
Análisis de documentos
 Procesadores de XML.
 XML Notepad

 Lectura de un documento en XML.

 Sintaxis básica XML.

 Ejercicios prácticos
Conceptos básicos
 XML: Extensible Mark-up Language (lenguaje de
marcado extensible)

 Es un lenguaje orientado a:
 La definición de datos de carácter general. Nos
permite definir modelos de datos.
 Al compartir modelos de datos se facilita el intercambio
de datos entre sistemas (aplicaciones) heterogéneos.
 Crear nuevos lenguajes gracias a sus mecanismos
de extensibilidad. Por ello, se dice que XML es un
metalenguaje (un lenguaje para crear nuevos
lenguajes).

 Se refiere únicamente a los datos, no a su


presentación. Deja a otras aplicaciones la tarea de
definir la estructura de visualización.
Conceptos básicos
 XML es el formato y el modelo para
intercambiar información entre
componentes, aplicaciones, y empresas
a través de Internet

 Microsoft, IBM, Firefox, etc., están


apostando fuertemente a esta tecnología

 XML es un estándar abierto a Internet


(W3C)

 XML habilita una nueva generación de


aplicaciones en Internet
Conceptos básicos

XML
¿Qué es XML?

 Texto que cumple ciertas reglas

 Las reglas tienen puntos en


común con HTML

 Abierto a sistemas operativos


¿Qué es XML?
 XML es un sub-conjunto de SGML (Standard
Generalized Mark-up Language)

 Creado y soportado por el World Wide Web


Consortium (www.w3c.org)

SGML
XML
HTML
¿Qué es XML?
 XML es un sub-conjunto de SGML (Standard
Generalized Mark-up Language)

 Creado y soportado por el World Wide Web


Consortium (www.w3c.org)
¿Qué es XML?
 Más fácil que SGML

 Más pequeño

 Pensado para ser utilizado en Internet

 XML es un lenguaje utilizado para estructurar y


describir datos de forma que puedan ser
entendidos o interpretados por diferentes
aplicaciones

 Puede ser utilizado por cualquier lenguaje y/o


sistema operativo
¿Qué es XML?
 XML es un meta-lenguaje que nos permite definir
lenguajes de marcado, adecuados a usos determinados

 XML es un estándar de Internet, aprobado por la W3C


(http://www.w3.org/TR/REC-xml/)

 Traducciones:
http://www.w3.org/2003/03/Translations/OverviewLang.html#es

 Los proveedores tratan de ajustarse a las


especificaciones

 Microsoft (MSXML40.DLL) e IBM ofrecen un conjunto de


objetos para manejar XML
¿Qué NO es XML?

 XML no es una versión mejorada de


HTML

 XML no es un lenguaje para hacer


mejores páginas web

 XML no es difícil
¿Dónde está la revolución?
 Para entender la revolución que plantea XML, hay
que entender las tecnologías circundantes
 XSL
 XSLT
 DTD
 Schema
 XPATH
 Etc.

 Estas son las que realmente hacen la revolución


(En especial XSLT, y DTD, y Schema)
Algo de historia sobre XML
 Desarrollo a partir de 1996, como un
sub-conjunto de SGML

 Adoptado como estándar en Febrero


de 1998, por el World Wide Web
Consortium (W3C)
World Wide Web Consortium (W3C)
 Constituido en 1994 con el objetivo de
desarrollar protocoles comunes para la
evolución de Internet

 Es un consorcio de industrias
internacionales, y está participado por MIT
(EEUU), INRA (Francia), y Keio University
(Japón)

 Cuenta con el apoyo de DARPA (EEUU), y


la comisión europea (IEEE)
¿Qué ventajas tiene XML?

 Un documento en XML, puede


tener varias formas de
presentación
¿Qué ventajas tiene XML?
 Formato ideal para transacciones B2B

 Permite poderosas técnicas de extracción y


búsqueda de información (XSL y XPATH)

 Las estrictas reglas para la composición de


un documento XML, permite su fácil análisis
sintáctico

 A diferencia de HTML, XML es sensitivo a


mayúsculas y minúsculas
Lenguajes Específicos
 HTML — ejemplo
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2
FINAL//EN">
<HTML>
<HEAD>
<TITLE>Memo</TITLE>
</HEAD>
<BODY>
<P>
<B>To: </B> Camino<BR>
<B>From: </B> Juanma<BR>
<B>Cc: </B> Nacho<BR>
<B>Subject: </B> Capítulo 1
</P>
<P> Qué opinas del formato? </P>
</BODY>
</HTML>
Visualización de HTML
Ejemplo en XML

 XML — ejemplo
<?xml version="1.0"?>
<MEMO>
<TO>Juanma</TO>
<FROM>Camino</FROM>
<CC>Nacho</CC>
<SUBJECT>Capitulo 2</SUBJECT>
<BODY>Empezamos con algo de
codigo XML</BODY>
</MEMO>
Visualización de un archivo XML
Visualización de un archivo XML
Visualización de un archivo XML
XML (ejemplo)
 Documento XML:

<libro> marca de comienzo

The XML Bible contenido

</libro> marca de fin

elemento atributo

<autor nro=2332>
Elliotte Rusty Harold
</autor>
El elemento y sus atributos

Nombre del atributo Contenido del elemento

<autor pais=“Uruguay”>Mario Benedetti</autor>

Valor del atributo Etiqueta de fin


Nombre del elemento
Reglas y pautas XML

 Se dice que un documento XML es


‘bien formado’ (well formed), cuando
cumple una serie de reglas escritas
en XML v1.0
 Los elementos deben seguir una
estructura de árbol (estrictamente
jerárquica)
 Los elementos deben estar
correctamente anidados
 Los elementos no se pueden superponer
entre ellos
Estructura de un documento XML
<?xml version="1.0"?>
<!DOCTYPE FloresSilvestres SYSTEM “flores.dtd">

 Estructura
 Lógica = cómo se
estructura el documento
 Física = qué contiene el
documento
 Prólogo
 XML Declaration
 Document Type
Declaration
 Document Element
 Siempre el raíz
 Anidamiento de
elementos restantes
Sintaxis
 Etiquetas
 Apertura/cierre <TAG> Texto </TAG>
 Elemento vacío <TAG></TAG>  <TAG/>
 Atributos <TAG ATRIB=“valor”> Texto
</TAG>
 Entidades
 Parseadas <!ENTITY PL “poca
luz”> ...
<TERM>Esta planta necesita
&PL;</TERM>
 No parseadas <!ENTITY Img SYSTEM
“Img.gif” NDATA GIF>
 Predefinidas &lt;  <
&amp;  &
...
Recomendaciones
 Todo contenido estará etiquetado. Toda etiqueta debe estar delimitada por
los símbolos de menor y mayor. Ejemplo: <libro>

 Las etiquetas se cierran en el mismo orden en el que se abrieron. La etiqueta


de cierre tiene el mismo nombre que la de apertura y se inicia por la barra ‘/’.
 Ejemplo: <libro> ... </libro>
 Por comodidad se permiten etiquetas que sirvan tanto para la apertura como para el
cierre. Estas etiquetas deben acabar con el símbolo de barra ‘/’.

 Los nombres de etiquetas son sensibles a mayúsculas y minúsculas (a


diferencia de HTML)

 La estructura de una etiqueta sigue la terna objeto-atributo-valor.


 Notación larga:
<etiqueta>
<atributo1> valor </atributo1>
...
</etiqueta>
 Notación corta (las dobles comillas son obligatorias, a diferencia de HTML):
<etiqueta atributo1=“valor” ... > </etiqueta>
 Ejemplo:
<libro>
<autor>Miguel De Cervantes</autor>
<titulo>El Quijote</titulo>
<precio>18</precio>
</libro>
Recomendaciones
 La estructura del documento es jerárquica, en forma de
árbol, en la que siempre hay un primer elemento raíz.

 Todo documento XML debe comenzar por una declaración


XML con la siguiente estructura:
<?xml
version=“Versión de XML”
encoding=“Codificación”
standalone=“Incluye_DTD”
?>

 Donde cada atributo significa:


 Versión de XML: número de versión que se utiliza.
 Codificación: formato de codificación, por ejemplo, UTF-8, UTF-16,
ISO-10646-UCS-2, ISO-10646-UCS-4, ISO-8859-1, ISO-8859-2,
(hasta ISO-8859-9), etc. Las dos primeras son las más usadas.
 Incluye_DTD: puede tomar el valor “yes” (la especificación DTD se
encuentra en el propio documento) o “no” (la especificación es un
archivo externo).

 Ejemplo:
<?xml version=“1.0” encoding=“UTF-8” standalone=“yes” ?>
XML (Ejemplo...)
<?xml version="1.0" encoding="UTF-8” standalone=“yes”?>
<!-- Ejemplo de Biblioteca   -->

<biblioteca>
<libro ISBN="0-596-00292-0">
<titulo>XML in a Nutshell, 2nd Edition</titulo>
<autor>
<nombre>Elliotte Rusty Harold, W. Scott Means</nombre>
<email>elliottscott@oreilly.com</email>
<direccion>1005 Gravenstein Highway North, CA 3472
</direccion>
</autor>
<capitulo nombre="Introduccion">
XML Concepts
<seccion>
<nombre>Introducing XML</nombre>
<contenido>bla bla bla bla...</contenido>
</seccion>
</capitulo>
</libro>
</biblioteca>
¿Qué problemas tiene HTML?
 Es un meta-lenguaje de definición de presentación

 Contiene datos + presentación

 No es fácilmente procesable por ‘máquinas’

 No fuerza al la buena estructura de la página


(pueden dejarse por error etiquetas sin cerrar)

 Su interpretación depende del software utilizado

 Está pensado para su utilización en páginas Web.


HTML versus XML
 HTML se centra en  XML es sobre datos,
el despliegue, y es y es sumamente
menos estructurado
estructurado
 Las etiquetas y
 Las etiquetas y atributos son
extensibles
atributos son fijos

 Se fuerza a tener
 Es posible olvidar una estructura
el cierre de alguna consistente
etiqueta
¿Qué ventajas tiene XML?

 Fácil de procesar/entender por


software o por seres humanos

 Pensado para ser utilizado en


cualquier lenguaje o alfabeto

 Separa radicalmente la
información o contenido, de
su presentación o formato
Construyendo
documentos XML
Ejemplo

 <libros><autor
pais=“Uruguay”>Leo
Masliah</libros></autor>

 <libros><autor
pais=“Uruguay”>Leo
Masliah</autor> </libros>
Reglas y pautas XML

 Los documentos deben tener un


nodo raíz

 Todas las etiquetas deben estar


debidamente cerradas

 Las etiquetas vacías (etiquetas sin


contenido) deben tener una
sintaxis especial
Ejemplo
 <libros><autor
pais=“Uruguay”>Leo
Masliah<Ranking=100></autor></li
bros>

 <libros>
<autor pais=“Uruguay”>Leo
Masliah <Ranking=100/></autor>
</libros>
Reglas y pautas XML
 Un nombre de elemento, atributo, entidad, etc.,
comienza por una letra, y continúa con letras,
dígitos, guiones, rayas, punto, dos puntos.

 No pueden utilizarse las palabras XML, xml,Xml,


etc., como caracteres iniciales del nombre de un
atributo, entidad, etc.

 XML es sensitivo a mayúsculas y minúsculas (no


es lo mismo <Autor> que <autor>

 El uso de espacios en blanco, y los saltos de línea,


funcionan al igual que en HTML (sólo se toma en
cuenta cuando aparece en el valor de un atributo, o
cuando se indica su grado de significado)
Sintaxis
 Las etiquetas se denominan ‘marcas’, y son las
partes del documento que el ‘analizador
sintáctico’ (parser) espera comprender

 Las marcas en un documento XML comienzan


con el carácter < y finalizan con >

 En el caso de referencias de entidad, el carácter


inicial es & y el final es ;

 La primer línea debe especificar la versión de


XML (de momento sólo 1.0), la codificación de
caracteres (US-ASCII, UTF-8, ISO-8859-1,etc),y
va entre caracteres de <? ?> en vez de < .. >
Ejemplo

 <?xml version=“1.0”
encoding=“UTF-8”?>
Sintaxis

 La segunda línea define el DTD


(se verá mas adelante), y es
opcional

<!DOCTYPE mensaje SYSTEM


“mensaje.dtd”>
Los Elementos en XML

 Los elementos en XML pueden:


 Tener contenido (Texto, Valores,
etc.)
 Contener otras etiquetas o
atributos
 Contener otras etiquetas,
atributos, y contenido a la vez

 Pueden estar vacíos


Ejemplo
 <nombre>James Britt</nombre>

 <nombres>
<nombre>James</nombre>
<apellido>Britt</apellido>
</nombres>

 <persona edad=30><nombre>James
Britt</nombre></persona>

 <Sexo=“Masculino”/>
Los Atributos en XML

 Los elementos pueden incorporar


atributos, que son características o
propiedades particulares

 Los atributos siempre deben estar


marcados con comillas simples o
dobles, y se sitúa como un valor
adicional a una etiqueta.
Ejemplo
 <libros>
<titulo>El amor es la compensación de
la muerte; su correlativo esencial
</titulo>
<autor>Arthur Schopenhauer</autor>
<precio moneda=“$”>200
pesos</precio>
</libros>

Atributo
Ejemplo

 <?xml version=“1.0”?>
<!-- Aca va el tipo de documento -->
<!DOCTYPE ejemplo [
<!-- Esto es otro comentario -->
<!element Ejemplo (#PCDATA)>
.
.
.
Las entidades en XML

 En XML v1.0 existen 5 entidades


predefinidas, para representar
caracteres especiales, y que no se
interpretan como marcas para el
procesador XML. De esta forma
podemos utilizar por ejemplo el
carácter < , > , & , ‘ , “
Las entidades en XML

Entidad Carácter
&amp; &

&lt; <

&gt; >

&apos; ‘

&quot; “
Las secciones CDATA

 Otra forma de ingresar un


bloque de caracteres sin que el
procesador XML los interprete,
es utilizando los bloques
CDATA (Character Data)

 Ingresar etiquetas HTML dentro


de un documento XML (se verá
su utilidad mas adelante)
Ejemplo

 Sin una sección CDATA

<ejemplo>
&lt;HTML&gt;
&lt;BODY&gt;
Hola, esto es un documento html dentro de
uno XML
&lt;/BODY&gt;
&lt;/HTML&gt;
</ejemplo>
Ejemplo

 Con una sección CDATA


<ejemplo>
<![CDATA[
<HTML>;
<BODY>
Hola, esto es un documento html dentro
de uno XML
</BODY>
</HTML>
]]>
</ejemplo>
Utilizando comentarios en XML

 En general, es necesaria la utilización de


comentarios en un documento XML

 Estos deben ser ignorados por el


procesador sintáctico, y las reproducciones
del documento.

 Igual sintaxis que en HTML (<!-- y -->)

 Nunca puede ir dentro de una etiqueta, etc.


Aplicaciones de XML
 Formato de intercambio de datos
 Sistemas heredados
 Integración de sistemas heterogéneos

 Publicación de datos
 En diversos formatos (HTML, WML, PDF, etc.) a través de
transformaciones XSLT

 Repositorios de datos
 Bases de datos nativas XML
 Lenguajes de consulta y actualización: XQuery, XQL, XUpdate,
etc.

 Ficheros de configuración y log


 Aplicaciones, servidores Web, motores de Servlets, descripción
de componentes EJB, etc.
 Sistema operativo

 Etc.
Intercambio de Datos en XML
 Los datos son relativamente simples de
leer y editar con un simple editor de texto

 Relaciones complejas (árboles, herencia)


pueden ser comunicadas

 Tags son auto-descriptivas, leídas por


humanos

 Validación de datos automática


Despliegue Tradicional de Documentos

 HTML
 Contenido e interfase gráfica mezclados

 Buscar información en los datos es


pesado

 Los contenidos están ‘atados’ a la lógica


y lenguaje HTML

 Los Tags son genéricos por naturaleza


Despliegue de Documentos XML
 Significado de los tags es manejado por XSL
 Instrucciones para transformar un tipo de
documento en otro
 Transformación común XML -> HTML

 Un archivo XML puede ser enlazado a varios


archivos XSL
 El contenido de un archivo puede ser
‘renderizado’
para Web, impresion, celulares, etc.

 Separación de la presentación y el contenido


Aplicaciones que procesan XML

 Verifican que documentos XML cumplan


con los Standard para ser “bien formados”

 Validan en base a las definiciones


especificadas en un DTD

 Transforman los datos basadas en


instrucciones XSL (Extensible Stylesheet
Language)
Cuando utilizar XML

 Almacenar y buscar pequeñas


cantidades de datos

 Intercambio de datos entre


diferentes aplicaciones u
organizaciones

 Separar contenidos de
presentación
Algunas definiciones
 XML - eXtended Mark-up Language

 DTD - Document Type Definition

 XSLT - eXtended StyleSheet Language

 Parser - Analizador sintáctico

 DOM - Document Object Model

 XHTML - eXtended HTML


Algunas tecnologías XML
 Especificación actual
 XML v1.0 (1.1 = 1.0 + namespaces)

 Definición de Documentos
 DTD o Schemas

 Definición de estilos
 XSL=XSLT + XPATH

 Enlazado de documentos
 XLL=Xlink + Xpointer
Documentos válidos
 El documento debe estar “bien formado”

 Debe ser válido (tener un DTD)

 Su elemento raíz debe ser aquel definido


en el DTD

 Debe satisfacer las especificaciones


indicadas en el DTD
Ejercicios prácticos

Introducción a XML
Práctica 1
 Cree manualmente un archivo XML
llamado “libros.xml” con información
sobre 10 libros relacionados con TI.

 Incluya para cada libro el título,


autores, número de edición (1a, 2da,
etc), año/fecha de publicación,
editorial, presentación (impreso en
papel o versión digital) y precio
aproximado.
NameSpaces

Introducción a XML
Problema
<table>
<tr>
<td>Apples</td>
<td>Bananas</td>
</tr>
</table>

<table>
<name>African Coffee Table</name>
<width>80</width>
<length>120</length>
</table>
Usando un prefijo
<h:table>
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>

<f:table>
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
Usando un prefijo
<root>

<h:table xmlns:h="http://www.w3.org/TR/html4/">
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>

<f:table xmlns:f="http://www.w3schools.com/furniture">
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>

</root>
Usando un prefijo
<root
xmlns:h="http://www.w3.org/TR/html4/"
xmlns:f="http://www.w3schools.com/furniture">

<h:table>
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>

<f:table>
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>

</root>
Namespaces por default
 <table xmlns="http://www.w3.org/TR/html4/">
 <tr>
 <td>Apples</td>
 <td>Bananas</td>
 </tr>
 </table>

 <table xmlns="http://www.w3schools.com/furniture">
 <name>African Coffee Table</name>
 <width>80</width>
 <length>120</length>
 </table>
Un uso práctico
<?xml version="1.0" encoding="ISO-8859-1"?>

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>
<table border="1">
<tr>
<th align="left">Title</th>
<th align="left">Artist</th>
</tr>
<xsl:for-each select="catalog/cd">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="artist"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>

</xsl:stylesheet>
Ejercicios prácticos

Introducción a XML
Práctica 2

 Modifique los archivos


generados en la práctica 1, de
tal manera que se tome en
cuenta la posible integración de
los documentos con otros en el
futuro, evitando cualquier
incompatibilidad por duplicación
de etiquetas.

También podría gustarte