• No se han encontrado resultados

2. Principales componentes de XML

N/A
N/A
Protected

Academic year: 2021

Share "2. Principales componentes de XML"

Copied!
33
0
0

Texto completo

(1)

Análisis y diseño de sistemas de

i f

I

información para Internet

2. Principales componentes de

XML

Luís Rodríguez Baena ([email protected])

Universidad Pontificia de Salamanca (campus Madrid)

(2)

Documentos XML

‰

Un documento XML es un documento de texto que puede describir los

contenidos a partir de una DTD o esquema utilizados para declarar sus

contenidos a partir de una DTD o esquema utilizados para declarar sus

entidades, tipo de contenido y atributos que lo describen.

Una vez creado puede mostrar su contenido mediante una plantilla XSL.

‰

Tres componentes:

U D

t XML

Un Documento XML.

Opcionalmente, una DTD o esquema con la descripción del contenido.

Opcionalmente una plantilla XSL con las especificaciones para mostrar el

contenido.

(3)

Documentos XML

Tipos de documentos según el contenido

p

g

‰

Si tenemos en cuenta el contenido de un documento XML

podemos distinguir:

Aquellos en los que cada etiqueta sólo puede contener otra etiqueta

o contenido de texto.

9

P

t

t

t

i il

l

i t

d

b

d d t

9

Presentan un estructura similar a los registros de una base de datos.

Documentos narrativos, de formato libre en los que cada etiqueta

puede contener una mezcla de texto libre u otras etiquetas.

<personas>

<persona>

<nombre>Mi nombre</nombre>

<apellidos>Mis apellidos</apellidos>

<ciudad>Mi ciudad</ciudad>

<biografía>

<párrafo>

<persona><nombre>Juan</nombre><apellidos>Mar

tínez Pérez</apellidos></persona>nació en la

ciudad de <ciudad>Madrid</ciudad>cuando sólo

<ciudad>Mi ciudad</ciudad>

</persona>

</personas>

ciudad de <ciudad>Madrid</ciudad>cuando sólo

tenía <negrita>un año</negrita>

</párrafo>

</biografía>

(4)

Documentos XML

Tipos de documentos: bien formados y validados

‰

Según su nivel de conformidad pueden ser:

g

p

Documentos bien formados. Cumple las especificaciones del

lenguaje respecto a las reglas sintácticas y tiene una estructura

jerárquica estricta.

j á qu a

a

9

Todo documentos XML debe estar bien formado.

Documentos validados. Además de bien formado, presenta una

estructura y un semántica determinada por una DTD o esquema

estructura y un semántica determinada por una DTD o esquema

que define sus elementos, valores y jerarquía.

(5)

Documentos XML

Documentos bien formados

1. Toda etiqueta de inicio debe tener una de cierre.

Si

ti

t

ti

t id d b t

t

bié

ti

t d

i

Si una etiqueta no tiene contenido debe tener también una etiqueta de cierre.

9

<etiqueta></etiqueta>

Una etiqueta sin etiqueta de cierre deberá acabar con la secuencia

/>

.

9

<etiqueta />

2

Se pueden anidar elementos pero no superponer

2. Se pueden anidar elementos, pero no superponer.

Esta combinación no es posible en xml:

<strong><em>Contenido</strong></em>,

aunque si en html.

3. Debe tener un único elemento raíz.

4

Los alo es de los at ib tos deben esta ent ecomillados

4. Los valores de los atributos deben estar entrecomillados.

5. Un elemento no puede tener dos atributos con el mismo nombre.

6. Los comentarios y órdenes de procesamiento no pueden estar dentro

de las etiquetas.

q

7. No pueden aparecer signos < y & individuales dentro del contenido de

un elemento o atributo.

(6)

Documentos XML

Estructura

‰

Estructura lógica.

g

Se puede considerar cualquier documento se puede dividir en

componentes.

En XML estos componentes se denominan

elementos

, cada uno

ó

de los cuales representa un componente lógico del documento.

Estos elementos pueden, a su vez, estar compuestos de otros

elementos.

E

lti

i t

i

t á

t

d f

l b

En ultima instancia, estarán compuestos de frases, palabras y

caracteres:

datos de carácter

del documento.

Siempre existe un elemento llamado

raíz

o

elemento de

documento

documento

.

Los elementos incluidos en la raíz son los subelementos.

9

Si contienen otros subelementos se denominan

ramas

.

9

Si no contienen más subelementos se denominan

hojas

9

Si no contienen más subelementos se denominan

hojas

.

(7)

Documentos XML

Estructura (II)

( )

(8)

Documentos XML

Estructura (III)

(

)

‰

Estructura física.

C b

d l d

t

Cabecera del documento.

9

Declaración XML.

o

Declaración opcional pero conveniente.

9

Declaración del tipo de documento.

o

Opcional.

o

Opcional.

9

Información adicional del documento (enlaces a hojas de estilo).

o

Opcional.

Elementos.

9

Representación de las estructuras lógicas del documento.

9

Constituyen la base física del documento.

9

Pueden o no tener contenido.

9

La DTD o los esquemas pueden indicar el formato de los elementos del

documento.

Atributos

Atributos.

9

Información adicional de un elemento.

Entidades.

9

Unidad virtual de almacenamiento.

9

Representan información que se puede insertar en el documento

(9)

Elementos, etiquetas y datos de

caracteres

‰

A cada una de las porciones

de información se le

<persona>

<dni>123456C</dni>

de información se le

denomina elemento.

persona, dni, nombre, etc.

‰

Cada elemento está

<nombreCompleto>

<primerApellido>Pérez</primerApellido>

<segundoApellido>Gómez</segundoApellido>

<nombre>Ana María</nombre>

</nombreCompleto>

3 9123 3

6 /

compuesto por una etiqueta

de inicio

<nombre>

y una

de cierre

</nombre>.

‰

Entre esta dos etiquetas

<telefono>+34912343456</telefono>

<telefono>+34678675678</telefono>

</persona>

‰

Entre esta dos etiquetas

aparece el contenido del

elemento.

Puede contener casi

cualquier carácter Unicode.

q

Los espacios en blanco

también forman parte del

contenido.

9

Algunos analizadores pueden

ignorarlo

(10)

Elementos, etiquetas y datos de

caracteres (II)

ca acte es ( )

‰

Sintaxis de la etiqueta.

U

ti

t d i i i

i

l í b l

Una etiqueta de inicio comienza por el símbolo

<

.

Una etiqueta de fin comienza por los símbolos

</

.

Ambas etiquetas terminan con el símbolo >.

‰

Etiquetas vacías.

q

Toda etiqueta de inicio debe ir acompañada por una de cierre.

9

En HTML esto no es obligatorio.

o

La etiqueta

<br>

no tiene por qué tener cierre.

9

En XHTML (un lenguaje XML), la etiqueta

<br>

debe tener una de cierre, aunque

t

t id

no tenga contenido

<br></br>.

Si un elemento no tiene etiqueta de cierre, debe acabar con la secuencia

/>

.

9

En XHTML es equivalente poner

<br></br>

que

<br />.

‰

Los nombres de las etiquetas son sensibles a mayúsculas

‰

Los nombres de las etiquetas son sensibles a mayúsculas.

Si la etiqueta de inicio comienza en minúsculas, la etiqueta de cierre

también.

(11)

Elementos, etiquetas y datos de

caracteres (III)

ca acte es (

)

‰

Un documento XML tiene una estructura jerárquica.

El elemento de nivel superior es el elemento

padre

a sus descendientes se les llama

hijos

El elemento de nivel superior es el elemento

padre

, a sus descendientes se les llama

hijos

.

9

Cada elemento sólo puede tener un elemento padre.

9

Esto implica que todos los elementos deben estar correctamente anidados.

o

En HTML es correcto poner

<b><i>Hola</b></i>

.

o

En XML es incorrecto poner

<nombreCompleto><nombre>Pepe</nombreCompleto></nombre>

.

El elemento de jerarquía superior no tiene padre

El elemento de jerarquía superior no tiene padre.

9

Elemento raíz

o

elemento del documento

.

9

Sólo puede haber un elemento raíz.

(12)

Elementos, etiquetas y datos de

caracteres (III)

ca acte es (

)

‰

En el elemento persona…

Algunos elementos sólo tienen caracteres (dni, telefono, nombre).

Otros elementos sólo tienen etiquetas (persona, nombreCompleto).

Esta estructura es común cuando se trabaja con documentos jerárquicos

similares a los registros

similares a los registros.

‰

XML también se puede utilizar para definir documentos en formato libre:

documentos narrativos.

<biografía>

á

<párrafo>

<persona><nombre>Juan</nombre><apellidos>Martínez Pérez</apellidos></persona>nació en la

ciudad de <ciudad>Madrid</ciudad>cuando sólo tenía <negrita>un año</negrita>

</párrafo>

<hechos><persona><nombre>Juan</nombre><apellidos>Martínez Pérez</apellidos></persona> ha sido

un destacado miembro de la <abreviatura>XJK</abreviatura>bla, bla, bla…

El elemento raíz sería biografía, que tendría dos elementos hijos (párrafo y hechos).

9

Estos elementos tienen algunos elementos como nombre, apellidos, ciudad o negrita.

9

También contienen datos de caracteres sin marcar

</hechos>

</biografía>

9

También contienen datos de caracteres sin marcar.

9

Tienen contenido mixto.

(13)

Atributos

‰

Un elemento XML puede tener atributos.

Un atributo es una pareja de valores separados por el signo igual en la etiqueta de inicio de

Un atributo es una pareja de valores separados por el signo igual en la etiqueta de inicio de

un elemento.

9

Por ejemplo:

<telefono tipo="casa">+34912343456</telefono>

<telefono tipo="trabajo">+34678675678</telefono>

El nombre del atributo es un nombre XML válido.

El nombre del atributo es un nombre XML válido.

El contenido del atributo puede contener casi cualquier carácter encerrado entre comillas

(simples o dobles).

‰

Cada elemento sólo puede tener un atributo con un nombre determinado.

‰

¿Cuándo elegir un atributo para meter información?

Normalmente se utilizan cuando se requiere dar información adicional de un elemento (meta

información).

9

Por ejemplo en la etiqueta

img

de html.

En ocasiones no está muy claro que es información.

9

Se podría sustituir el elemento DNI por un atributo del elemento persona.

<persona dni= "123456C">

Como una etiqueta sólo puede tener un atributo con el mismo nombre, no sería posible

utilizarlos para meter los teléfonos de la persona.

Una estructura basada en atributos suele ser más flexible y ampliable que una basada en

atributos.

(14)

Nombres XML

‰

Los nombres de los atributos, las etiquetas y de otros elementos de

XML

b

XML

XML son

nombres XML

.

‰

Para formarlos se deben seguir las mismas reglas:

Pueden contener cualquier carácter alfanumérico Unicode (o ideograma en

el caso del algunos idiomas)

el caso del algunos idiomas).

9

La diferencia entre XML 1.0 y XML 1.1 es que la versión 1.1 utiliza la versión 3 de

Unicode que incluye idiomas como el camboyano, el mongol o el birmano.

Pueden incluir los caracteres de puntuación _ (guión bajo), - (guión) o .

(punto)

(punto).

9

No se permiten espacios en blanco.

9

Se pueden utilizar también los dos puntos, pero se reserva para los espacios de

nombre.

Deben comenzar con un carácter alfabético (o ideograma) o por el guión

Deben comenzar con un carácter alfabético (o ideograma) o por el guión

bajo (_).

Todos los nombres que comienzan por la cadena XML en cualquier

combinación de minúsculas o mayúsculas se reservan para las

especificaciones del W3C

(15)

Referencias, entidades y notaciones

‰

Una referencia es un forma de llamar a un elemento de forma abreviada.

Ese elemento puede ser un carácter predefinido (referencias de carácter) o estar definido en una

Ese elemento puede ser un carácter predefinido (referencias de carácter) o estar definido en una

DTD.

Se utilizan de la forma

&nombreReferencia;

.

‰

Referencias de carácter.

En el contenido de un elemento no se pueden utilizar determinados caracteres.

9

El símbolo < siempre se interpreta como el inicio de una etiqueta.

El símbolo < siempre se interpreta como el inicio de una etiqueta.

9

El símbolo & siempre se interpreta como el inicio de una referencia.

Si se quieren utilizar estos elementos, en el contenido de un elemento se debe utilizar:

9

&lt;

para el carácter <.

9

&amp;

para el carácter &.

Además se pueden utilizar las referencias de carácter:

9

l

á t

t

i ió

&lt

9

&gt;

, para el carácter >, por contraposición a &lt;

9

&quot;

, para el carácter ".

9

&apos;

, para el carácter '.

Se puede hacer referencia a cualquier carácter mediante la secuencia

&#NúmeroCarácterDecimal;

o mediante

&#xNúmeroCarácterHexadecimal;

.

‰

En la DTD se pueden definir entidades con valor predefinido que se utilizarán en el

‰

En la DTD se pueden definir entidades con valor predefinido que se utilizarán en el

documento XML como una referencia de entidad.

‰

Sólo se pueden utilizar en el contenido de un elemento o en el valor de un atributo.

‰

El analizador reemplazará las referencias por su valor determinado en las especificaciones

XML o por el valor determinado por la entidad en la DTD.

(16)

Secciones CDATA

‰

Una sección CDATA se utiliza para incluir en ella código literal.

N

l

t

t t d

ódi

f

t HTML XML

Normalmente se trata de código fuente HTML o XML.

Permite que no nos preocupemos de sustituir los caracteres < y & por las

referencias a entidad.

El analizador inserta de forma literal todo lo que haya en una sección CDATA

sin procesarlo

sin procesarlo.

‰

Una sección CDATA tiene el siguiente formato:

<!CDATA

...lo que sea

]]>

]]>

Dentro se puede incluir cualquier cosa excepto la secuencia

]]>

.

9

En su lugar se puede utilizar

]]&gt;

.

‰

En XHTML su uso es fundamental para incluir código Javascript.

‰

U

j

l

‰

Un ejemplo…

<p>La etiqueta &lt;img&gt; tiene el siguiente formato: </p>

<pre>

<![CDATA[

<img src="url de la imagen" alt ="texto alternativo">

<img src

url de la imagen alt

texto alternativo >

]]>

(17)

Comentarios

‰

Los comentarios XML son sintácticamente iguales que los

g

q

comentarios HTML:

<!-- Cualquier cosa -->

Puede contener cualquier cosa excepto el doble guión

Puede contener cualquier cosa excepto el doble guión.

‰

Pueden aparecer en cualquier lugar del documento,

excepto:

Dentro de una etiqueta.

Dentro de otro comentario.

‰

Los analizadores de XML pueden incluir o no la

‰

Los analizadores de XML pueden incluir o no la

(18)

Instrucciones de procesamiento

‰

XML proporciona un mecanismo para indicar a una aplicación que

realice un proceso:

realice un proceso:

‰

Las instrucciones de procesamiento…

Comienzan con la secuencia de inicio

<?

y terminan con la secuencia de fin

?>

.

A continuación aparece un nombre XML que hace referencia al nombre de la

aplicación

aplicación.

Por último aparece información para a aplicación a la que va destinada la

instrucción.

‰

Algunos ejemplos…

XML ha propuesto una instrucción estándar para indicar a los motores de

XML ha propuesto una instrucción estándar para indicar a los motores de

búsqueda cómo deben indexar una página:

<?robots index="yes" follow="no" ?>

9

Indica a los robots de búsqueda que deben indexar la página y que no deben seguir

sus enlaces.

l

ód

h

l

Para incluir código php en XHTML se utiliza…

<?php

código php

?>

(19)

Declaración XML

‰

Un documento XML debe llevar al comienzo una declaración XML.

Su formato es:

<?xml version="númeroVersión" encoding="codificacionCaracteres"

standalone="yes | no">

No es obligatorio su inclusión,

9

A d

l

d

l

li

i

i t

t

l

t id d l d

t

9

Ayuda al procesador y a la aplicaciones a interpretar el contenido del documento

XML de manera más eficiente.

Si la incluye debe estar al comienzo del documento y no puede estar

precedida por espacios en blanco, saltos de línea ni ningún otro elemento.

9

L

XML tili

l

i

i

t

(

l

)

li

9

Los parser XML utilizan los cinco primero caracteres

(<?xml

) para realizar

suposiciones acerca del contenido.

‰

Atributo

version

.

Debe tener el valor 1.0 o 1.1.

9

Utilizar el atributo

version="1.1"

limita el documento a los parser más

recientes.

o

La versión 1.1 prácticamente sólo aporta la inclusión de lenguajes como el

(20)

Declaración XML (II)

‰

Atributo

encoding

.

Permite especificar el juego de caracteres a utilizar

Por omisión XML utiliza el conjunto de caracteres UTF-8 que se

corresponde con el ASCII estándar.

l

j

d

i d

SO 88 9

álid

l

El conjunto de caracteres Unicode ISO-8859-1 es válido para los

idomas de Europa Occidental.

‰

Atributo

standalone

.

I di

i l d

t

ti

lid d

TDT

t

Indica si el documento se tiene que validad con una TDT externa.

Por omisión toma el valor

yes

, es decir se trata de un documento

independiente.

Habrá que poner el valor

no

si se desea validar el documento con

Habrá que poner el valor

no

si se desea validar el documento con

una TDT externa.

‰

Un ejemplo de declaración XML…

(21)

Comprobar la estructura de un

documento

docu e to

‰

Un analizador XML se fijará primero en la estructura del documento

que tiene que estar bien formado (tener una estructura correcta)

que tiene que estar bien formado (tener una estructura correcta).

Comprobará:

1.

Toda etiqueta de inicio debe tener una de cierre.

2.

Se pueden anidar elementos, pero no superponer.

3

Debe tener un único elemento raíz

3.

Debe tener un único elemento raíz.

4.

Los valores de los atributos deben estar entrecomillados.

5.

Un elemento no puede tener dos atributos con el mismo nombre.

6.

Los comentarios y órdenes de procesamiento no pueden estar dentro de las

etiquetas.

q

7.

No pueden aparecer signos < y & individuales dentro del contenido de un

elemento o atributo.

‰

El parser informará a la aplicación de la buena estructura del

documento.

En caso contrario devolverá un error.

9

En algunos casos parará la comprobación, en otros devolverá todos los errores

que acarrea el primero.

(22)

Comprobar la estructura de un

documento (II)

docu e to ( )

‰

Se puede comprobar la estructura del documento XML cargándolo

en Internet Explorer o Firefox

en Internet Explorer o Firefox.

Si no aparece nada, hay un error en la estructura.

(23)

Comprobar la estructura de un

documento (III)

docu e to (

)

‰

Comprobación con libxml.

p

Una analizador de Gnomo Project.

9

Proporciona unas bibliotecas de funciones en C e incluye un

ejecutable con interfaz de línea de órdenes:

j

xmllint.exe

.

9

Está disponible en

http://www.zlatkovic.com/pub/libxml/

.

o

Es necesario bajarse

libxml

,

zlib

y

iconv

.

o

Lo más fácil: colocar

iconv.lib

,

libxml2.dll

,

zdll.lib

,

zlib.lib

, xmlcatalog.exe y xmllint.exe en el mismo directorio (por

ejemplo

c:\xmllib

).

Ejecución.

9

D d l lí

d ó d

9

Desde la línea de órdenes.

(24)

Comprobar la estructura de un

documento (IV)

docu e to (

)

‰

Si todo está correcto saca la estructura del árbol

Si todo está

correcto sale el

árbol XML

(25)

Comprobar la estructura de un

documento (V)

docu e to ( )

‰

Si hay errores indica el problema.

Puede que se arrastren otros errores.

9

En el ejemplo se ha cambiado la primera etiqueta persona por Persona y se han quitado las comillas

de cierre de atributo casa.

Se han quitado

las segundas

comillas a casa

Se ha cambiado

l

d

la etiqueta de

inicio persona

por Persona

(26)

Comprobar la estructura de un

documento (VI)

docu e to (

)

‰

Visual Studio 2005 también proporciona un analizador XML.

Para crear un nuevo documento XML en cualquier proyecto de cualquier tipo dar la opción “Agregar elemento” del

Para crear un nuevo documento XML, en cualquier proyecto de cualquier tipo, dar la opción “Agregar elemento” del

menú “Proyecto” y seleccionar “Archivo XML”.

(27)

Comprobar la estructura de un documento

Validadores on line

‰

Validador XML del W3Schools (

www.w3schools.com/XML/xml_validator.asp

).

Pegar aquí el

código XML

Al pulsar el botón Validate, un

cuadro de texto informa del error

(28)

Comprobar la estructura de un documento

Validadores on line (II)

( )

‰

XMLValidation.com (

www.xmlvalidation.com/

).

Pegar aquí el

código XML

(29)

Comprobar la estructura de un documento

Validadores on line (III)

(

)

‰

XMLValidation.com (

www.xmlvalidation.com/

).

Salida de resultados

(30)

Comprobar la estructura de un documento

Validadores on line (IV)

(

)

‰

Validator for XML Schema del W3C (

www.w3.org/2001/03/webdata/xsv

).

Es un validador de esquemas.

(31)

Comprobar la estructura de un documento

Validadores on line (V)

( )

‰

Validator for XML Schema del W3C (

www.w3.org/2001/03/webdata/xsv

).

(32)

Comprobar la estructura de un documento

Validadores on line (VI)

(

)

‰

Validator for XML Schema del W3C (

www.w3.org/2001/03/webdata/xsv

).

(33)

Ejemplos

‰

Crear un documento XML que permita guardar los datos de un alumno

(expediente apellidos y nombre)

(expediente, apellidos y nombre).

‰

Modificar el documento anterior de forma que contenga un elemento

nombre_completo con los elementos hijo apellidos y nombre.

‰

Modificar el documento anterior de forma que permita almacenar la

i f

ió d

i

l

información de varios alumnos.

‰

Modificar el elemento anterior de forma que por cada alumno se

puedan almacenar las notas de cada asignatura.

Por cada asignatura se almacenará el código y la descripción de la misma, la

f h d l

l

b

d

l ú

d

l h

l d

fecha del examen, la nota obtenida, el número de veces que la ha matriculado y

el número de convocatorias a las que se ha presentado.

‰

Crear un documento XML que permita almacenar la información de un

CD.

P

d álb

l

á

id tifi d

l

b d l álb

l ti t

Por cada álbum se almacenará un identificador, el nombre del álbum, el artista,

la duración, el género, el año, un campo de observaciones en formato HTML e

información de las pistas que contiene.

9

Por cada pista se almacenará el número de pista, el nombre de la canción, el artista, la

duración, el año, el género y un campo de observaciones en formato HTML

Referencias

Documento similar

Con los componentes obtenidos en el análisis es posible seleccionar el primer componente, el cual es el que aporta mayor variabilidad y, a partir de la estructura