Introduccióón a XML
n a XML
Introducci
M. Carmen Fernández Panadero
<
[email protected]>
copyright
[email protected]
Introducción a XML
1
Objetivos
• Familiarizarse con conceptos y herramientas
básicas de XML
• Conocer la estructura de un documento XML
• Ser capaz de diseñar y comprender un DTD
• Ser capaz de construir un documento XML
• Ser capaz de transformar y dar formato a
documentos XML utilizando hojas de estilo
XSLT
copyright
[email protected]
Introducción a XML
2
Índice
• ¿Qué es XML?
– Diferencias con HTML y SGML
– Definición
• ¿Cómo es XML?
– Representación
– Tipos de documentos
– DTDs
• Hojas de estilo (XSLT)
• Enlaces XLL (XLink y XPath)
• Procesamiento (DOM y SAX)
• Conclusiones
copyright
[email protected]
Introducción a XML
3
Qué es XML:
Un poco de historia
Problemas de HTML
• Extensibilidad
• Estructura lógica
•
Intercambio de datos
• Reutilización de datos
• Gestión de enlaces rotos.
• Etc
Beneficios de HTML
• Simple
• No requiere de herramientas
especiales
• Extendido
• Papel importante en
crecimiento de internet.
Problemas de SGML
• Complejidad
Beneficios de SGML
• Reutilización de los datos
• Longevidad de la información
•
Integridad y mayor control
sobre los datos.
• Permite compartir información
• Portable
• Flexible
XML = +80% -20%
Qué es XML
Valor añadido
• Permite almacenar cualquier tipo de información estruct.
• Comprensible por máquinas y por humanos.
•
Independiente de:
– Lenguajes de programación o
– Plataformas software.
• Permite validar los documentos
• Distribución: documento, sw que lo valida, hoja de estilo
y resultado final pueden estar en distintas máquinas
• Herramientas gratuitas (validación, transformación, etc.)
• Lenguajes específicos para diferentes industrias.
•• Estandar
Estandar abierto y ampliamente difundido.
abierto y ampliamente difundido.
copyright
[email protected]
Introducción a XML
5
Qué es XML:
(EXtended Markup Language)
• Lenguaje de definición de lenguajes de marcado
– Metalenguaje
– Define lenguajes de marcado por medio de DTD’s
(Document Type Definition)
– Estandarizado por el w3c (Recommendation 10-Feb- 1998)
– No es una aplicación de SGML sino una versión reducida
(+80% beneficios -20% complejidad)
• Conjunto de especificaciones
– XML (Estructura de los datos)
– XSL = XSLT (utiliza XPath) + XSL-FO’s : Hojas de estilo
– XLL = XLink + XPointer (utiliza Xpath) : Hiperenlaces
copyright
[email protected]
Introducción a XML
6
Qué es XML:
¿Qué es un documento?
Marcado no
declarativo
Marcado
declarativo
E
s
t
r
u
c
t
u
r
a
L
ó
g
i
c
a
P
r
e
s
e
n
t
a
c
i
ó
n
H
i
p
e
r
e
n
l
a
c
e
s
C
o
m
p
o
r
t
a
m
i
e
n
t
o
XML XSL XLL
Java
JavaScript
• XML: Intercambio de Información
• XML+XSL: Formato de publicación indep
• XML+XSL+XLL: Navegación
• XML+XSL+XLL+ script: DXML (aplicación)
copyright
[email protected]
Introducción a XML
7
Cómo es XML: (XML vs HTML)
<html>
<dl>
<dt>Hot Cop
<dd>by Jacques Morali,
</ul>
</dl>
</html>
Henry Beolo, and Victor Wills
<ul>
<li>producer: Jacques Morali </li>
<li>publisher: PolyGramRecords</li>
<li>length: 6:20</li>
<li>written: 1978 </li>
<li>artist: Village People<li>
<?xml version='1.0'?>
<song>
<title>Hot Cop</title>
<composer> Jacques Morali</composer>
<composer> Henry Beolo </composer>
<composer> Victor Wills </composer>
<producer> Jacques Morali </producer>
<publisher> PolyGram </publisher>
<length> 6:20 </length>
<year> 1978 </year>
<artist> Village People </artist>
</song>
Hot Cop
by Jacques Morali, Henry Beolo, and Victor Wills
•producer: Jacques Morali
•publisher: PolyGramRecords
•length: 6:20
•written: 1978
•artist: Village People
8
Cómo es XML
Representación en forma de árbol
song
nodo raíz
title
composer
producer
publisher
length
year
artist
<?xml version='1.0'?>
<song>
<title>Hot Cop</title>
<composer> Jacques Morali</composer>
<composer> Henry Beolo </composer>
<composer> Victor Wills </composer>
<producer> Jacques Morali </producer>
<publisher> PolyGram </publisher>
<length> 6:20 </length>
<year> 1978 </year>
<artist> Village People </artist>
</song>
copyright
[email protected]
Introducción a XML
9
Cómo es XML
Representación en forma de árbol
persona
nodo raíz
nombre
nacimiento
direccion
varon
John Smith
dia="21"
mes="Enero"
anio="1969"
calle
poblacion
provincia
Avda. Universidad, 30
Leganés
Madrid
cpostal
28911
Nodos de elementos
Nodos hoja (contenido)
Nodos de atributos
<!ELEMENT persona (nombre, nacimiento?, direccion+, (varon|hembra))>
<!ELEMENT nombre (#PCDATA)>
<!ELEMENT nacimiento EMPTY>
<!ATTLIST nacimiento
CDATA #REQUIRED
dia
mes CDATA #REQUIRED
anio
CDATA #REQUIRED>
<!ELEMENT direccion (calle,poblacion,provincia, cpostal)>
<!ELEMENT calle (#PCDATA)>
<!ELEMENT poblacion (#PCDATA)>
<!ELEMENT provincia (#PCDATA)>
<!ELEMENT cpostal (#PCDATA)>
<!ELEMENT varon EMPTY>
<!ELEMENT hembra EMPTY>
10
Cómo es XML
<?xml version=‘1.0’?>
<persona>
Declaración XML
Tag de comienzo de elemento
<nombre>John Smith</nombre>
<nacimiento dia=’21’ mes=‘enero’ anio=‘1969’/>
<direccion>
Valor de atributo
Atributo
<calle>Avda. Universidad, 30</calle>
<poblacion>Leganes</poblacion>
<provincia>Madrid</provincia>
<cpostal>28905</cpostal>
</direccion>
<varon/>
</persona>
Elemento vacío
Tag de final de elemento
copyright
[email protected]
Introducción a XML
11
Cómo es XML:
Tipos de documentos
Documentos bien formados (Well-formed XML)
• Cumplen reglas de sintaxis de XML, (estructuras anidadas
correctas, etc.)
• no tiene porqué cumplir una estructura predefinida
<?xml version=“1.0” standalone=“yes”?>
<bar>...<blort/>...</bar>
<foo>
</foo>
Documentos válidos (Valid xml)
• Tienen que ser bien formados
• Cumple una estructura predefinida (DTD)
• El parser es el encargado de comprobar la validez del documento
<?xml version=“1.0”?>
<!DOCTYPE advert SYSTEM “http://www.foo.org/adv.dtd”>
<bar>...<blort/>...</bar>
Introducción a XML
12
<foo>
</foo>
copyright
[email protected]
Cómo es XML:
Compartir información
Compartir información:
• Definir una estructura
– DTD’s (Document Type Definition)
– XML Schemas
• Hacerla pública
– XML Namespaces
copyright
[email protected]
Introducción a XML
13
Cómo es XML (Estructura):
DTD (Document Type Definition)
<CONTACT>
<NAME>Roger Kaplan</NAME>
<PHONE>555-5555</PHONE>
</CONTACT>
Secuencia
Alternancia
0 o 1 elementos
0 o más elementos
*
<!ELEMENT CONTACT (NAME, (PHONE | EMAIL), ADDRESS?)>
<!ELEMENT NAME (#PCDATA)>
<!ELEMENT EMAIL (#PCDATA)>
<!ELEMENT PHONE (#PCDATA)>
1o más elementos
<!ELEMENT ADDRESS (STREET+, CITY, STATE, ZIP, COUNTRY?)
<!ELEMENT STREET (#PCDATA)>
<!ELEMENT CITY (#PCDATA)>
<!ELEMENT STATE (#PCDATA)>
<!ELEMENT ZIP (#PCDATA)>
<!ELEMENT COUNTRY (#PCDATA)>
Introducción a XML
14
copyright
[email protected]
Cómo es XML (Hojas de Estilo)
XSL: XML Stylesheet Language
XSL = XSLT + XSL-FO’s (+ XPath)
La especificación de XSL consta de dos partes:
– XSLT: transformación inicial a otro modelo
estructural (utiliza XPath)
– XSL-FO: aplicación de formato
XSLT utiliza otro lenguaje:
– XPath: Mecanismo de localización capaz de
direccionar los elementos dentro de las estructura del
documento
copyright
[email protected]
Introducción a XML
15
Cómo es XML (Hojas de Estilo)
XSL: XML Stylesheet Language
Lenguaje de
Transformación
(XSLT)
XSL
Vocabulario de
Formato
(XSL-FO)
Pattern
(Localización de patrones con XPATH)
Template
(Aplicación de una plantilla
al patrón seleccionado)
Objetos de
formato
(Son uds tipográficas ej character)
Propiedades Atributo:
(Ej: text-decoration)
Valor:
(Ej:underline)
copyright
[email protected]
Introducción a XML
16
Cómo es XML (Hojas de Estilo)
XSL: Transformación + Formato
S o urce Tree
XML
Transfor m .
XSLT
R esult Tree
XML
Transfor m .
XSL
Styled
flo w o bject
T
r
a
n
s
f
o
r
m
a
c
i
ó
n
F
o
r
m
a
t
o
• Template-rules
– Pattern
– Template
• Formatting Obj
• Formatting Prop
copyright
[email protected]
Introducción a XML
17
Cómo es XML (Hojas de Estilo)
XSL plantillas (template-rules)
Queremos convertir el fichero document.xml en el fichero html que se
muestra a continuación usando una hoja de estilo.
<?xml version=‘1.0’?>
<document>
Este es mi primer documento
</document>
<HTML>
<p>
</p>
</HTML>
Este es mi primer documento
<xsl:template match = “document”>
<HTML>
<p>
<xsl:apply-templates/>
</p>
</HTML>
</xsl:template>
xt fichero.xml fichero.xsl fichero.html
Cómo es XML (Hojas de Estilo)
Beneficios de XSL
• Imprescindible para presentar información:
XML no tiene información de formato
• Beneficios hojas de estilo:
– Centralizar la forma de presentación
– Separar la estructura del contenido
• Reutilizar datos
• Diferentes formatos de salida
• Uniformizar el estilo de presentación
• Separar la creación de contenido
• Estilo declarativo vs procedural
copyright
[email protected]
Introducción a XML
19
Cómo es XML (Hojas de Estilo)
Beneficios de XSL
copyright
[email protected]
Introducción a XML
20
Cómo es XML (Enlaces)
XLL: XML Linking Language
XLL = XLink + XPointer (+ XPath)
Consta de dos especificaciones
– XLink: define la forma en la que los documentos
deben enlazarse
– XPointer: Describe como se debe apuntar a un
lugar específico e un determinado documento XML
(utiliza XPath)
XLink determina el documento que se va a
enlazar y XPointer marca el lugar exacto de
copyright
[email protected]
dicho documento
Introducción a XML
21
Cómo es XML (Enlaces)
Beneficios de XLL
• “Alias”
• Gestión de enlaces
• Enlaces multidireccionales
• Un origen y varios destinos
• Enlaces agregados
(Varios orígenes un sólo destino)
• Transclusión
• Atributos
copyright
[email protected]
Introducción a XML
22
E
s
t
r
u
c
t
u
r
a
L
ó
g
i
c
a
P
r
e
s
e
n
t
a
c
i
ó
n
DO
M
SAX
H
i
p
e
r
e
n
l
a
c
e
s
C
o
m
p
o
r
t
a
m
i
e
n
t
o
Cómo es XML
Proce
Comentarios de: Introducción a XML (0)
No hay comentarios