Title: 2' Lenguajes de marcado: XML
12. Lenguajes de marcado XML
- El lenguaje de marcado XML (eXtensible Mark-Up
Language)
2Contenido
Tema 2. Lenguajes de marcado XML Contenido
- 1.1. Introducción
- 1.2. Marcado de documentos con XML
- El documento XML
- Marcado y notación de marca
- Creación y visualización de documentos XML
- 1.3. Definiciones de Tipo de Documento (DTD)
- 1.4. Referencias y recursos Web
- 1.5. Bibliografía básica
3Lenguajes de marcado
Tema 2. Lenguajes de marcado XML 2.1.
Introducción
- Desde el principio de la informática hemos
utilizado lenguajes etiquetados, los procesadores
de texto son un buen ejemplo. - En la mayoría de ocasiones los metadatos se
representaran en lenguaje etiquetado o bien el
propio recurso se encontrará estructurado en
alguno de estos lenguajes.
4Lenguajes de marcado
Tema 2. Lenguajes de marcado XML 2.1.
Introducción
- Un lenguaje de marcado cumple con dos objetivos
esenciales para diseñar y procesar un documento
digital - Separa un texto en los elementos en los que se
compone, como por ejemplo un párrafo, un
capítulo, etc. - Especifica las operaciones tipográficas y
funciones que debe ejecutar el programa
visualizador sobre dichos elementos. Las
operaciones tipográficas son instrucciones de
formato que se aplican a cada uno de los
elementos de un documento digital, por ejemplo,
imprimir un título en itálicas. - Varios lenguajes de marcado HTML, XHTML, TeX,
LaTeX, DocBook, XML, SGML, MathML, XSL, Lenguajes
de marcas ligeros
5HTML (Hypertext Markup Languaje)
Tema 2. Lenguajes de marcado XML 2.1.
Introducción
- HTML es un tipo de documento descrito con SGML
- Lenguaje para transmitir por la red documentos
sencillos y genéricos (cabeceras, párrafos,
listas, ilustraciones, etc., algo de hipertexto y
multimedia) - Lenguaje de visualización (apariencia del
documento) - Su sencillez le proporciona éxito inmediato
(revolución en Internet) - HTML evoluciona tablas, formularios..., mapas de
imagen..., scripts y applets...
6HTML (Hypertext Markup Languaje)
Tema 2. Lenguajes de marcado XML 2.1.
Introducción
- HTML hoy
- HTML 4.01 (Rec. 1999-12-24)
- ISO HTML (ISO/IEC 154452000, 1ª ed. 2000-05-15)
- XHTML 1.0 (The Extensible HyperText Markup
Language (Second Edition) A Reformulation of HTML
4 in XML 1.0, Rec. 2000-01-26, rev. 2002-08-01) y
1.1 (Module-based XHTML, Rec. 2001-05-31)
7HTML (Hypertext Markup Languaje)
Tema 2. Lenguajes de marcado XML 2.1.
Introducción
- Problemas de HTML
- limitación para describir documentos complejos o
datos - orientación paulatina hacia el marcado de formato
(hasta 4.0) - normalización poco respetada por los
desarrolladores...
8HTML (Hypertext Markup Languaje)
Tema 2. Lenguajes de marcado XML 2.1.
Introducción
- Limitaciones
- elementos estructurales iguales para cualquier
documento - estructura demasiado flexible para algunos
documentos (datos...) - enlaces hipertextuales muy simples
- presentación pobre de los documentos a pesar de
las ampliaciones - ausencia de normalización en esquemas de metadatos
Necesidad de un nuevo lenguaje para la web
9Lenguajes de marcado
Tema 2. Lenguajes de marcado XML 2.1.
Introducción
- No lenguaje de formato o descripción de páginas
(RTF, PostScript, PDF...) - No es un lenguaje de programación (la marca es
interpretada por un programa) - Describe las partes lógicas del documento
(estructura lógica y semántica) - Marcado a base de etiquetas asignadas a las
partes ltTITULOgtEl mundo y sus demonioslt/TITULOgt
10SGML (Standard Generalized Markup Language)
Tema 2. Lenguajes de marcado XML 2.1.
Introducción
- Estándar internacional para definir la estructura
y contenido de múltiples tipos de documentos
electrónicos - Metalenguaje permite crear lenguajes de marcas
propios que describan la información contenida en
múltiples clases de documentos - El Origen de todos los lenguajes de marcas
existentes - GML (1969) creado por Ch. F. Goldfarb (Mosher y
Lorie), de IBM, para intercambiar documentos
electrónicos entre plataformas informáticas - SGML (1986) versión final desarrollada por la
ISO (ISO88791986) - Norma de facto para el intercambio de documentos
extensos, complejos y de tipos muy diferentes
(transcripciones de rollos sumerios,
documentación técnica de aviones, historiales
médicos, notaciones musicales...) - Lenguaje robusto y potente / complejo,
exhaustivo, y caro de implantar y mantener
11XML (Extensible Markup Language)
Tema 2. Lenguajes de marcado XML 2.1.
Introducción
- Versión abreviada de SGML, omitiendo las partes
más complejas y menos usadas de SGML - incidiendo en aspectos de distribución e
interoperatividad en la Web - Permite definir la estructura de tipos
específicos de documentos electrónicos (o datos)
por medio de Definiciones de Tipo de Documento
(DTD o XML Schemas), definiendo conjuntos de
etiquetas y atributos (vocabularios) - Desarrollado (1996-gt) en el W3C por Jon Bosak
(Sun) y otros Rec. 1.0, 1998-02-10, Rec. 1.0, 2ª
ed. 2000-10-06, 3ª ed. 2004-02-04 Rec. 1.1,
2004-02-04. - Apto para cualquier plataforma, SO o entorno de
trabajo (documentos en ASCII de 7 u 8 bits)
12XML (Extensible Markup Language)
Tema 2. Lenguajes de marcado XML 2.1.
Introducción
- Es un lenguaje de marcado diseñado para describir
estructuras de datos. - No está centrado, como ocurre con html en
cuestiones de presentación, sino en la estructura
del documento. - Extensible, etiquetas no predefinidas.
- Puede usarse para intercambiar o almacenar datos.
- Gran éxito industrial y adopción en múltiples
contextos - Parte fundamental de la arquitectura Web
- Otras aplicaciones Ficheros de Configuración,
vocabularios específicos, etc.
13XML (Extensible Markup Language)
Tema 2. Lenguajes de marcado XML 2.1.
Introducción
- Muchas otras normas asociadas a XML (1)
- uso de varios vocabularios en el mismo documento
- Namespaces in XML (Rec. 1.0, 1999-01-14 Rec.
1.1, 2004-02-04) - referencias a partes de un documento
- XPath (XML Path Language, Rec. 1.0, 1999-11-16
en preparación la version 2.0, WD), usado por
XSLT, XPointer, XQuery... - inserción de enlaces
- XLink (XML Linking Language, Rec. 1.0,
2001-06-27) - XML Base (1.0, 2001-06-27)
- XPointer (XML Pointer Language, Rec. 2003-03-25)
14XML (Extensible Markup Language)
Tema 2. Lenguajes de marcado XML 2.1.
Introducción
- Muchas otras normas asociadas a XML (2)
- semántica asociada a los recursos electrónicos
- RDF (Resource Description Framework, Rec.,
1999-02-22, Rev. 2004-02-10), hoy un conjunto de
seis documentos que ya incluye RDF Schema o RDF-S
(RDF Vocabulary Description Language, Rec. 1.0,
2004-02-10) - OWL (Ontology Web Language, Rec. 2004-02-10)
- hojas de estilo, transformación de documentos...
- XSL (Extensible Stylesheet Language, conjunto de
XSLT, XSL-FO y XPath) - XSLT (XSL Transformations, Rec. 1.0, 1999-11-16
en preparación la version 2.0, WD) - XSL Formatting Objects (o propiamente XSL,
Extensible Stylesheet Language, Rec. 1.0,
2001-10-15)
15XML (Extensible Markup Language)
Tema 2. Lenguajes de marcado XML 2.1.
Introducción
- Muchas otras normas asociadas a XML (y 3)
- definición de tipos de documentos
- XML Schema (Rec. 2001-05-02), mayor potencia que
DTD de SGML - búsquedas en documentos XML
- XQuery (XML Query, WD LC 1.0, 2003-12-12)
- formularios
- Xforms (Rec. 1.0 2003-10-14)
- comunicación entre aplicaciones que usan XML
- XMLP (XML Protocol Abstract Model, WD 1.0,
2003-02-20)
16Creación y visualización de documentos XML
Tema 2. Lenguajes de marcado XML 2.2. Marcado de
documentos XML
- Creación (documentos XML y DTDs)
- editor de textos (Bloc de notas)
- editor de páginas web (Macromedia Dreamweaver)
- editor específico de XML (IBM Xeena, XMLWriter,
XML Spy...) - Visualización
- procesador XML genérico Netscape 6, MS Internet
Explorer 5, Opera 5, Mozilla 1.0, Doczilla... - procesadores especializados según el tipo de
documento (En HTML es el navegador de Web)
-previsible-
17Documento XML
Tema 2. Lenguajes de marcado XML 2.2. Marcado de
documentos XML
- Fichero de texto, generalmente de extensión
".xml", que usan el juego de caracteres - ISO-Latin-1 (ISO-8859-1) de 8 bits o
- Unicode (ISO 10646, o UCS-2, Universal Character
Set, v.2) de 16 bits, para cualquier alfabeto - Formados por
- Prólogo
- Instancia del documento
18Documento XML
Tema 2. Lenguajes de marcado XML 2.2. Marcado de
documentos XML
- Formados por
- Prólogo
- una declaración XML (instrucción de
procesamiento) lt?xml version"1.0"
encoding"ISO-8859-1"?gt versión de XML y
codificación de caracteres. - generalmente (no necesariamente en XML) una
declaración de tipo de documento seguida de una
DTD (interna, externa o mixta) para la que hayan
sido construidos lt!DOCTYPE MENSAJE SYSTEM
"mensaje.dtd"gt - la referencia a una hoja de estilo externa que
indica cómo representar el documento, en su caso
(instrucción de procesamiento) lt?xml-stylesheet
href"mensaje.css" type"text/css"?gt - ... Otras instrucciones de procesamiento
- la instancia del documento contenido textual,
marcado por etiquetas que señalan cada elemento,
y que pueden llevar atributos para dar
información más específica de cada elemento
19Ejemplo de documento XML
Tema 2. Lenguajes de marcado XML 2.2. Marcado de
documentos XML
20Marcado y notación de marca
Tema 2. Lenguajes de marcado XML 2.2. Marcado de
documentos XML
- Un documento XML está compuesto exclusivamente de
marcado y datos de carácter, y ambos conocidos
como "Texto XML". - Sintaxis simple pero estricta
- El marcado es el texto incluido entre
delimitadores - "lt" y "gt", que encierran etiquetas, o bien
- "" y "", que encierran la referencia a una
entidad. - Comentarios contienen instrucciones no
analizadas por el procesador. Comienzan por lt-- y
finalizan por --gt -
21Caracteres especiales
Tema 2. Lenguajes de marcado XML 2.2. Marcado de
documentos XML
- Existen 5 caracteres especiales
- lt lt
- gt gt
- amp
- quot "
- apos '
- Cualquier carácter Unicode puede indicarse
mediante seguido del número y acabado por
22Marcado y notación de marca
Tema 2. Lenguajes de marcado XML 2.2. Marcado de
documentos XML
- Las etiquetas pueden ser
- Dos una inicial (en la forma ltelementogt) y otra
final (lt/elementogt), encerrando un elemento
suelen describir contenido (párrafos, niveles de
encabezado...), p.ej. lttitulogtEl Código Da
Vincilt/titulogt son la mayoría - Una sólo etiqueta inicial (termina con "/gt")
suelen insertar algo en el documento (una imagen,
un salto de línea o de página...), p.ej.
ltnuevalinea/gt - Toda la instancia del documento va encerrada
dentro de las etiquetas que marcan el elemento
raíz o elemento de documento, y ha de
corresponderse con el tipo expresado en la
declaración
23Marcado y notación de marca
Tema 2. Lenguajes de marcado XML 2.2. Marcado de
documentos XML
- El "elemento de documento" (o "elemento raíz")
- encierra toda la instancia del documento,
- se corresponde con el tipo expresado en la
declaración - Ej. ltMENSAJE ...gt ... lt/MENSAJEgt
-
- Un elemento puede contener (según se especifique
en la DTD, si existe) - Otros elementos (subelementos o elementos hijos),
p.ej. ltMENSAJEgtltCABECERAgt ...
lt/CABECERAgtltCUERPOgt ... lt/CUERPOgtltMENSAJEgt - Texto (el espaciado no tiene importancia
cualquier número de espacios o saltos de línea es
equivalente a un espacio), p.ej. ltSALUDOgtHola de
nuevo, Gema.lt/SALUDOgt - Una mezcla de elementos o texto (contenido
mixto), p.ej. ltPgtEl curso se celebrará el
próximo mes de ltENFASISgtnoviembrelt/ENFASISgt.lt/Pgt - O nada, si es un elemento vacío
(ltelemento_sin_contenido /gt )
24Marcado y notación de marca
Tema 2. Lenguajes de marcado XML 2.2. Marcado de
documentos XML
- Un elemento puede llevar uno o más atributos
- especifican alguna propiedad del elemento en
cuestión, por medio de un valor asociado, en la
forma atributo"valor" - se expresan en la etiqueta inicial del elemento,
p.ej. ltMENSAJE prioridad"maxima"gt - si existen varios pueden expresarse en cualquier
orden - dan sentido a la mayoría de los elementos vacíos,
p.ej. ltimagen src"logo"/gt - el tipo de valor que puede llevar asociado se
especifica en la DTD (si existe) - Nombres de elementos y atributos
- comienzan por una letra, seguida sólo de letras o
números - son sensibles a la caja de letra (SGML, y por
tanto HTML, no)
25Estructura de un documento XML
Tema 2. Lenguajes de marcado XML 2.2. Marcado de
documentos XML
Un documento XML siempre se puede representar
como un árbol
26Documento XML bien formado y válido
Tema 2. Lenguajes de marcado XML 2.2. Marcado de
documentos XML
- Documento bien formado
- Un documento XML está bien formado si cumple las
reglas anteriores (Importante contiene un único
elemento raíz, las etiquetas están correctamente
anidadas) - Una condición básica para trabajar con un
documento XML es que esté bien formado - Documento válido
- Un documento bien formado, es además válido, si
cumple con alguna regla de validación - DTD
- XML Schema
- Relax NG
- Schematron
27La definición del tipo de documento (DTD)
Tema 2. Lenguajes de marcado XML 2.3. Definición
de Tipo de Documento (DTD)
- Definición formal de un tipo de documento
particular - elementos de su estructura que conforman el
vocabulario - atributos que esos elementos pueden tomar
- reglas que rigen las interacciones entre esos
elementos y - entidades que se pueden incluir en los documentos
- En el documento XML se "declara" opcionalmente la
DTD que usa ("Declaración del Tipo de Documento"
interna, externa, o combinación de ambas). - Hay miles en SGML (accesibles y de uso público),
que pueden ser convertidas a XML, pero a veces
será necesario escribir nuestras propias DTDs
28DTDs internas Vs externas
Tema 2. Lenguajes de marcado XML 2.3. Definición
de Tipo de Documento (DTD)
- Las DTDs pueden definirse dentro del documento
XML - lt!DOCTYPE reseña lt!ELEMENT reseña (obra,titulo,
autor,)gt . . . gt - ltreseñagt. . . lt/ reseña gt
- También pueden residir en otro documento
- lt!DOCTYPE poema SYSTEM reseña.dtd"gt
- ltreseñagt. . . lt/reseñagt
- Algunas DTDs pueden tener identificadores
públicos - lt!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Strict//EN" "http//www.w3.org/TR/xhtml1/DTD/xhtml
1-strict.dtd"gt
29Estructura básica de una DTD
Tema 2. Lenguajes de marcado XML 2.3. Definición
de Tipo de Documento (DTD)
- Todos los aspectos de la marca se especifican en
la DTD con declaraciones - DE ELEMENTOS tantas como elementos contenga la
DTD (contenedores o vacíos) - DE CONTENIDO parte de la declaración de
elemento, describe qué tipo de contenido puede
anidarse en su interior (datos, otros elementos o
contenido mixto) - DE LISTAS DE ATRIBUTOS que puede adoptar un
elemento específico (en su caso) - DE ENTIDADES sobrenombre asociado a un grupo de
datos (interna, de texto externa, binaria
externa, de carácter o numérica)
30Estructura básica de una DTD
Tema 2. Lenguajes de marcado XML 2.3. Definición
de Tipo de Documento (DTD)
- Declaración de elementos
- Bloques básicos de una DTD o documento los demás
(atributos, modelos de contenido, entidades...)
se forman a partir de los elementos - Incluye el modelo de contenido para el elemento
- Hay dos tipos de elementos
- CONTENEDORES (el caso más habitual)
- pueden albergar otros elementos o texto regular
- DTD Declarado como lt!ELEMENT SALUDO ...gt
- Documento marcado con una etiqueta inicial y
otra final ltSALUDOgtHola de nuevo,
Adela.lt/SALUDOgt - VACÍOS
- no pueden contener texto ni ningún otro elemento
- normalmente transmiten información mediante los
valores de sus atributos - Se declaran en la forma lt!ELEMENT fecha_sistema
EMPTYgt - Documento marcado con sólo una etiqueta inicial
ltfecha_sistema ... /gt
31Estructura básica de una DTD
Tema 2. Lenguajes de marcado XML 2.3. Definición
de Tipo de Documento (DTD)
- Modelos de contenido
- aplicado al primer nivel de elementos anidados en
su interior (los elementos hijos tienen sus
propios modelos de contenido) - tipos de contenido de un elemento (salvo
elementos vacíos) - Otros elementos
- Texto lt!ELEMENT FIRMANTE (PCDATA)gt
- Otros elementos y texto ("" oblig.) lt!ELEMENT
Resumen (PCDATA Enfasis Cita)gt - Cualquier tipo de contenido (infrecuente y
desaconsejado) lt!ELEMENT nombre ANYgt - orden en que se anidarán los elementos
- "," lista o secuencia lt!ELEMENT MENSAJE
(SALUDO, TEXTO, DESPEDIDA, FIRMANTE)gt - "" lista de alternativas lt!ELEMENT FIGURA
(GRAFICO FOTO)gt - frecuencia de aparición
- "" 1 vez
- "" 1 o más lt!ELEMENT TEXTO (P CITA)gt
- "?" 0 o 1 lt!ELEMENT MENSAJE (SALUDO?, TEXTO,
DESPEDIDA?, FIRMANTE)gt - "" 0 o más lt!ELEMENT notas (nota ref)gt
32Estructura básica de una DTD
Tema 2. Lenguajes de marcado XML 2.3. Definición
de Tipo de Documento (DTD)
- Declaración de listas de atributos
- Consisten en un nombre del atributo y un valor
asociado - DTD lt!ATTLIST FIRMANTE estado (BROMISTA ALEGRE
SERIO TRISTE) "SERIO"gt - Documento ltFIRMANTE estado"BROMISTA"gt
- Tipos de valores
- de texto simple (la mayoría) señalados con CDATA
- de señalización ID, IDREF / IDREFS, ENTITY /
ENTITIES, NMTOKEN / NMTOKENS - enumerados lista de valores posibles
- de notación notación NOTATION
- Tipos de atributos
- requeridos (REQUIRED) deben aparecer
- fijos (FIXED) el autor del documento no puede
modificarlo - Implícitos (IMPLIED) pueden aparecer o no (no
toman ningún valor por defecto) - valor por defecto si el atributo no aparece toma
ese valor por defecto
33Estructura básica de una DTD
Tema 2. Lenguajes de marcado XML 2.3. Definición
de Tipo de Documento (DTD)
- Declaración de entidades
- Unidad virtual de almacenamiento (cadena de
caracteres, fichero gráfico...) - Tipos
- DE TEXTO
- DE CARÁCTER Y NUMÉRICAS
- BINARIAS
- PARAMÉTRICAS
- Hay que declararlas en la DTD antes de poder
utilizarlas - Usan la sintaxis lt!ENTITY nombre "contenido"gt
- Se referencia a una entidad en la DTD o en el
documento como nombre (las paramétricas como
nombre )
34Ejemplo de DTD
Tema 2. Lenguajes de marcado XML 2.3. Definición
de Tipo de Documento (DTD)
- lt?xml version"1.0" encoding"ISO-8859-1"?gtlt!--
Ejemplo muy sencillo de DTD XML mensaje simple
--gtlt!ELEMENT MENSAJE (CABECERA,
CUERPO)gtlt!ATTLIST MENSAJE prioridad ( alta
normal baja ) "normal"gtlt!ELEMENT CABECERA
(FECHA, DE, A, ASUNTO?)gtlt!ELEMENT CUERPO
(SALUDO?, (P), DESPEDIDA?, FIRMANTE?)gtlt!ELEMENT
FECHA (PCDATA)gtlt!ATTLIST FECHA fnorm CDATA
REQUIREDgtlt!ELEMENT DE (PCDATA)gtlt!ELEMENT A
(PCDATA)gtlt!ELEMENT ASUNTO (PCDATA)gtlt!ELEMENT
SALUDO (PCDATA)gtlt!ELEMENT P (PCDATA
ENFASIS)gtlt!ELEMENT DESPEDIDA (PCDATA)gtlt!ELEMENT
FIRMANTE (PCDATA)gt
35Contenido
Tema 2. Lenguajes de marcado XML Contenido
- 2.1. Introducción
- 2.2. Marcado de documentos con XML
- El documento XML
- Marcado y notación de marca
- Creación y visualización de documentos XML
- 2.3. Definiciones de Tipo de Documento (DTD)
- 2.4. Referencias y recursos Web
- 2.5. Bibliografía básica
36Recursos Web
Tema 2. Lenguajes de marcado XML 2.4. Recursos
web
- Referencias oficiales
- Extensible Markup Language (XML)
- http//www.w3.org/XML
- XML Schema Validator
- http//www.w3.org/2001/03/webdata/xsv
- XML Tools at W3C
- http//www.w3.org/XML/software
37Tutoriales
Tema 2. Lenguajes de marcado XML 2.4. Recursos
web
- Tutoriales
- Nogales Flores, Tomás. Breve Introducción a XML.
- http//www.bib.uc3m.es/nogales/cursos/xml.html
- Reino Romero, Alfredo. Introducción a XML en
castellano. Versión 2.0 (26 enero 2000).
http//sunsite.unam.mx/archivos/xml/IntroXMLc.pdf - García Castellano, Javier. Tutorial de XML .
Versión 2.3. Marzo 2003. http//flanagan.ugr.es/x
ml/ - Labra Gayo, José Emilio. XML. Octubre 2006.
http//www.di.uniovi.es/labra/cursos/XMLAvanzado/
XML.html
38Contenido
Tema 2. Lenguajes de marcado XML Contenido
- 2.1. Introducción
- 2.2. Marcado de documentos con XML
- El documento XML
- Marcado y notación de marca
- Creación y visualización de documentos XML
- 2.3. Definiciones de Tipo de Documento (DTD)
- 2.4. Referencias y recursos Web
- 2.5. Bibliografía básica
39Referencias bibliográficas
Tema 2. Lenguajes de marcado XML 2.5.
Bibliografía básica
- Box, Don Skonnard, Aaron Lam, John. Essential
XML beyond markup. Boston Madrid etc.
Addison-Wesley, 2000. ISBN 0201709147 - Brown, Peter. Information Architecture with XML
a Management Strategy. London John Wiley and
Sons, 2003. ISBN 0471486795 - Geroimenko, Vladimir Chen, Chaomei (eds.).
Visualizing the semantic web XML-based internet
and information visualization. London Springer,
2003. ISBN 1852335769 - Goldfarb, Charles F. Prescod, Paul. Manual de
XML. Madrid etc. Prentice Hall, 1999. - Harold, Elliotte Rusty. XML bible (2nd ed.). New
York etc. Hungry Minds, 2001. ISBN
0764547607 - Harold, Elliotte Rusty. XML Extensible Markup
Language. Foster City etc. IDG Books
Worldwide , 1998. ISBN 0764531999 - Morrison, Michael. XML al descubierto. Madrid
etc. Prentice Hall , 2000. ISBN 8420529648 - Pitts, Natanya, XML. Madrid Anaya Multimedia ,
1999. - Ray, Erik T. Learning XML. Beijing etc.
O'Reilly, 2001. ISBN 0596000464 - Tennant, Roy (ed.). XML in libraries. New York
Neal-Schuman Pub., 2002. ISBN 1555704433