XML
por Daniel M. Germán (dmg@csg.uwaterloo.ca)
Estructura en Documentos
- Todos los documentos tienen estructura
- Implícita (periódicos y revistas)
- ejemplo: El Título de un artículo, la importancia del artículo en un
periódico
- Interpretación depende de dicha estructura
- Explícita
- Reglas tipográficas de los diccionarios
Anotaciones
- Un texto sin anotaciones es una simple cadena de caracteres
- En el mejor de los casos, equivalentes al resultado de una máquina de
escribir.
- Procesadores de texto agregan montones de anotaciones.
Definición Anotación
- Anotación: Todo aquello que es parte de un documento electrónico
que no es texto imprimible.
- Lenguaje de anotación reglas que describen como deben realizarse
estas anotaciones, bajo que condiciones se permiten y su significado.
Anotaciones: para qué
- Separan los elementos lógicos de un documento: título, capítulo, verso,
párrafo, referencia, etc.
- Especifican las operaciones tipográficas que han de realizarse sobre el
documento
Tipos de anotaciones
- Procedural: Los lenguajes procedurales describen operaciones
tipográficas
- Estructurales: Estos lenguajes describen la estructura lógica del
documento, pero no su tipografía
- Híbridos: combinación de ambos
Estructurales mejores que los procedurales
- Dos elementos estruc. diferentes pueden estar anotados proc. en la misma
forma.
- V. gr. ¿qué significa algo entre cursivas?
- Dos elementos estruc. diferentes pueden ser anotados estruc. en formas
diferentes, aún si son tipografiados en la misma forma.
- ¡Las operaciones tipográficas no deben mezclarse con el contenido!
Separación entre estructura y tipografía
- Anot.Estruc. requiren de una función que traduzca las anotaciones a
operaciones tipográficas:
- Hoja de Estilo (style sheet)
- ¡Independencia entre contenido y presentación!
XML
- eXtensible Markup Language (lenguaje de anotación extendible)
- Subconjunto de SGML (Standard Generalized Markup Language)
- XML es una versión simplificada de SGML
XML como metalenguaje
- XML es un metalenguaje:
- Se utiliza para crear lenguajes de anotación, no para anotar texto per
se.
- Permite al usuario definir sus propios lenguajes de anotación adaptados
a sus necesidades.
XML como sucesor de HTML
- HTML es un lenguaje de anotación genérico y además híbrido
- Especifica muy poco sobre la estructura del documento
- Combina tipografía y contenido al mismo tiempo
- Difícil de mantener
- Ha sido malutilizado
- XML trata de eliminar estos problemas.
XML como alternativa a SGML
Cuando XML se diseño, se decidió que :
- XML debería ser fácilmente utilizable en Internet
- XML debería soportar una amplia variedad de aplicaciones
- XML debería ser compatible con SGML
- Debiera ser fácil escribir programas en para procesar documentos en XML
- El número de características opcionales de XML debe ser mínimo, idealmente
0
- Los documentos en XML deben ser fáciles de leer
- El diseño de XML debiera ser formal y conciso
- Debiera ser fácil crear documentos en XML
- Que tan terso es XML es de mínima importancia
Componentes de XML
- Un documento se compone de elementos (v.gr.H1 es un elemento de
HTML)
- Cada elemento a su vez puede contener otros elementos o entidades
- Las entidades funcionan abreviaciones ("defines" de C)
(´ en lugar de á)
- Un elemento puede tener atributos (propiedades) que indican información
sobre como el elemento debe ser procesado (width es un atributo del
elemento table)
- Cada documento en XML debe seguir las reglas de una DTD y de XML
(documento válido)
Character data y Markup
- Un documento es character data y markup mezclado.
- Markup se compone de etiquetas de inicio y de final, entidades,
comentarios, delimitadores de CDATA, DTD e instrucciones de procesado.
- Todo lo demás es character data.
Hello World
Prólogo y Declaración de un documento
Comentarios
- Los comentarios pueden ocurrir en cualquier lugar fuera de otro
markup
<!-- comentario -->
Espacio en Blanco y Final de Lineas
Elementos vacíos
Declarationes de Elementos
Contenido "Elemento" (element content)
Contenido Mixto
Definiendo Atributos
Otros tipos de Atributos: ID
Haciendo referencia a un ID: IDREF
Entidades
Entidades refiriendo a archivos externos
Entidades Predefinidas
- Existen cinco entidades que deben ser reconocidas ya sea que estén
definidas o no:
- lt: <
- gt: >
- amp: &
- apos: '
- quot: "
Instrucciones de Procesado
- No son parte del documento sino que ofrecen al procesador información
adicional:
<?xml version="1.0"?>
Secciones CDATA
Definiendo un lenguaje
- DTD, Document Type Definition es un documento que describe
formalmente las características de una clase de documentos.
- La DTD permite al procesador saber las características del documento
- Permite la verificación de un documento
- Ejemplo:
<!doctype memo[
<!ELEMENT Memo (para, de, fecha, razon?, parrafo+) >
<!ELEMENT para (#PCDATA) >
<!ELEMENT de (#PCDATA) >
<!ELEMENT fecha (#PCDATA) >
<!ELEMENT razon (#PCDATA) >
<!ELEMENT parrafo (#PCDATA) >
]>
memo.dtd
- Esta DTD, llamada memo, describe que un memo se compondrá de un
destinatario (para), un remitente (de), la fecha,
una razón (opcional), y un conjunto de uno o más párrafos.
- Cada uno de los elementos (para, de, from, razon y parrafo) esta
compuesto de texto (#PCDATA).
- Reglas de sintaxis: para debe siempre proceder a de, por
ejemplo.
Ejercicio
- Crear una DTD para mensajes electrónicos.
- ¿Cuáles son las partes más importantes?
- ¿Se subdivide cada parte?
- ¿Cómo especificamos los attachments
Tipos de documentos en XML
- Son dos:
- Válidos: aquellos que siguen las reglas de una DTD específica.
- Bien formados (well-formed) que no necesariamente tienen una
DTD, pero que siguen las reglas de XML al pie de la letra (cada elemento
está iniciado y terminado correctamente, el documento está incluído en un
solo elemento y no en varios consecutivos)
- Los documentos válidos son bien formados.
Visualizando XML
- XML es un formato de almacenamiento
- XML no tiene instrucciones de tipografiado
- Documentos en XML requiere de otras herramientas para ser convertido a
documentos tipografiados.
Futuro de XML
- No todos lo utilizarán.
- Serán los grandes autores de páginas los más beneficiados
- La curva de aprendizaje se pagará en menos horas de mantenimiento
- Las comunidades virtuales crearán DTDs de acuerdo a sus necesidades.
- Es probable que algún día los procesadores de texto almacenen texto en XML
en lugar de formatos propios.
- XML probablemente reemplazará a SGML
Más información
- La mejor fuente de referencia es la SGML/XML home page
- Su URL se las debo para mañana :)
© Daniel M. Germán
(dmg@csg.uwaterloo.ca)