copyright [email protected] Introducción a XML 1
Introducción a XML
Introducción a XML
Simon Pickin
Ingeniería Telemática
Basado en una presentación de M. Carmen Fernández Panadero
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.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
Problemas de SGML
• ComplejidadXML = +80%
-20%
Qué es XML
:
Un poco de historiacopyright [email protected]
Introducción a XML 3
• Permite almacenar
cualquier tipode información estruct.
• Comprensiblepor máquinas y por humanos.
• Independiente
de:
– Lenguajes de programación o – Plataformas software.
• Permite
validarlos 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íficospara diferentes industrias.
•
•
Estandar
Estandar
abierto y ampliamente difundido.
abierto y ampliamente difundido.
Qué es XML
Valor añadido
copyright [email protected]
Introducción a XML 4
•
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 (utilizaXPath) + XSL-FO’s : Hojas de estilo
– XLL= XLink + XPointer (utilizaXpath) : Hiperenlaces
Qué es XML:
copyright [email protected] Introducción a XML 5
Qué es XML:
¿Qué es un documento?
C o m porta m ie n to Hi per e nl aces P re sen ta ci ón Es tr u ct u ra L ó g ic a 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
)
Marcado no
declarativo
Marcado
declarativo
6Cómo es XML: (
XML vs HTML)
<?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>
<html> <dl>
<dt>Hot Cop
<dd>by Jacques Morali,
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> </ul>
</dl>
</html> Hot Cop
by Jacques Morali, Henry Beolo, and Victor Wills •producer: Jacques Morali
•publisher: PolyGramRecords •length: 6:20
•written: 1978 •artist: Village People
copyright [email protected]
Introducción a XML 7
Representación en forma de árbol
nodo raíz
title composer producer publisher length year artist song
<?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>
Cómo es XML
8
<!ELEMENT persona (nombre, nacimiento?, direccion+, (varon|hembra))> <!ELEMENT nombre (#PCDATA)>
<!ELEMENT nacimiento EMPTY> <!ATTLIST nacimiento
dia CDATA #REQUIRED 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>
Representación en forma de árbol
nodo raíz John Smith nombre dia="21" mes="Enero" anio="1969" nacimiento Avda. Universidad, 30 calle Leganés poblacion Madrid provincia 28911 cpostal direccion varon persona Nodos de elementos Nodos de atributos Nodos hoja (contenido)
copyright [email protected] Introducción a XML 9 <?xml version=‘1.0’?> <persona> <nombre>John Smith</nombre>
<nacimiento dia=’21’ mes=‘enero’ anio=‘1969’/> <direccion>
<calle>Avda. Universidad, 30</calle> <poblacion>Leganes</poblacion> <provincia>Madrid</provincia> <cpostal>28905</cpostal> </direccion> <varon/> </persona>
Tag de comienzo de elemento
Tag de final de elemento Elemento vacío Atributo Valor de atributo Declaración XML
Cómo es XML
copyright [email protected] Introducción a XML 10Có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
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” standalone=“yes”?> <foo>
<bar>...<blort/>...</bar> </foo>
<?xml version=“1.0”?>
<!DOCTYPEadvert SYSTEM“http://www.foo.org/adv.dtd”> <foo>
<bar>...<blort/>...</bar> </foo>
copyright [email protected]
Introducción a XML 11
Compartir información:
• Definir una estructura
–
DTD’s
(Document Type Definition)
– XML
Schemas
• Hacerla pública
– XML
Namespaces
Cómo es XML:
Compartir información
copyright [email protected] Introducción a XML 12<!ELEMENT CONTACT (NAME, (PHONE | EMAIL), ADDRESS?)> <!ELEMENT NAME (#PCDATA)>
<!ELEMENT EMAIL (#PCDATA)> <!ELEMENT PHONE (#PCDATA)>
<!ELEMENT ADDRESS (STREET+, CITY, STATE, ZIP, COUNTRY?) <!ELEMENT STREET (#PCDATA)>
<!ELEMENT CITY (#PCDATA)> <!ELEMENT STATE (#PCDATA)> <!ELEMENT ZIP (#PCDATA)> <!ELEMENT COUNTRY (#PCDATA)> <CONTACT>
<NAME>Roger Kaplan</NAME> <PHONE>555-5555</PHONE> </CONTACT>
Secuencia Alternancia 0 o 1 elementos
1o más elementos 0 o más elementos
*
Cómo es XML (Estructura):
copyright [email protected]
Introducción a XML 13
Cómo es XML (Hojas de Estilo)
XSL:
X
ML
S
tylesheet
L
anguage
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
XSL
= XSLT + XSL-FO’s (+ XPath)
copyright [email protected] Introducción a XML 14XSL
Lenguaje de
Transformación
(XSLT)
Vocabulario de
Formato
(XSL-FO)
Pattern
Template
Objetos de
formato
Propiedades
Atributo:
Valor:
(Son uds tipográficas ej character) (Localización de patrones con XPATH)
(Ej: text-decoration)
(Ej:underline) (Aplicación de una plantilla al patrón seleccionado)
Cómo es XML (Hojas de Estilo)
copyright [email protected] Introducción a XML 15
Transform
aci
ón
XML
Sourc e TreeXML
Resu lt TreeXSLT
Tran sform .XSL
Tran sform . Styled flow objec tFo
rm
at
o
• Template-rules
– Pattern – Template • Formatting Obj • Formatting PropCómo es XML (Hojas de Estilo)
XSL:
Transformación + Formato
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>
Este es mi primer documento </p>
</HTML>
xt fichero.xml fichero.xsl fichero.html
<xsl:template match = “document”> <HTML> <p> <xsl:apply-templates/> </p> </HTML> </xsl:template>
Cómo es XML (Hojas de Estilo)
copyright [email protected]
Introducción a XML 17
• 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
Cómo es XML (Hojas de Estilo)
Beneficios de XSL
copyright [email protected]
Introducción a XML 18
Cómo es XML (Hojas de Estilo)
copyright [email protected]
Introducción a XML 19
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
dicho documento
XLL
= XLink + XPointer (+ XPath)
Cómo es XML (Enlaces)
XLL: XML Linking Language
copyright [email protected] Introducción a XML 20• “Alias”
• Gestión de enlaces
• Enlaces multidireccionales
• Un origen y varios destinos
• Enlaces agregados
(Varios orígenes un sólo destino)
• Transclusión
• Atributos
Cómo es XML (Enlaces)
copyright [email protected] Introducción a XML 21 C o m porta m ie n to Hi per e nl aces P re sen ta ci ón Es tr u ct u ra L ó g ic a XML XSL XLL Java JavaScript DOM SAX
–
Orientado a objetos
(ej:DOM)
• API que proporciona acceso al documento completo
• Se construye un árbol en memoria con la jerarquía de elementos
–
Orientado a eventos
(ej:SAX)
• El documento se procesa de manera secuencial. • Cada elemento en el flujo de datos dispara un evento.
En las aplicaciones con restricciones sobre la
memoria se suele utilizar el modelo
orientado a eventos (ej. SAX)
Cómo es XML
Procesamiento
copyright [email protected] Introducción a XML 22Conclusiones
• Estructura de datos y mucho más
• No reemplazará a HTML
• Ya existen bastantes herramientas
• Cada comunidad un estándar.
copyright [email protected] Introducción a XML 23