SGML/XML para autores de documentación

Por Ismael Olea <ismael@olea.org>
Una conferencia CACLE

Objetivos

Los documentos tienen estructura

Ventajas de la documentación estructurada

Formato ≠ Estructura
Múltiples formatos de salida de un mismo original.
Marcación descriptiva versus marcación procedimental
La estructuración añade información semántica sobre qué es cada parte en lugar de indicar cómo representarlo.
Sencillez de la creación
El autor se centra en la labor de escritura y creación, sin distraerse con asuntos que no son relevantes en el proceso de autoría.
Independencia y portabilidad
El documento es independiente de la plataforma, facilitando su intercambio, almacenaje, consulta y proceso.
Sencillez de edición
Al tratarse de puro texto es de fácil manejo con cualquier clase de herramientas básicas de edición de textos. Al ser absolutamente estructurado puede usarse cualquier editor estructurado compatible.
Mejora de calidad en los formatos de salida/reproducción
Apoyado por un adecuado sistema de representación mejora la calidad final de los documentos y unifica el uso de las convenciones de estilo de cada idioma y área de conocimiento.
Procesable automáticamente: compatible con la Web Semántica
Gracias al riguroso diseño también se facilita la automatización de procesamiento, la alimentación de aplicaciones de conocimento y el intercambio de documentos por medios informáticos.

Web Semántica

Definición: La Web Semántica es la representación abstracta de los datos en la World Wide Web usando los estándares XML, RDF y otros por definir. Está siendo desarrollada por el W3C en colaboración con un gran número de investigadores y socios industriales.

"La Web Semántica es una extensión de la web actual en la que el significado de la información queda bien-definido y ésta se optimiza para ser manejada cooperativamente tanto por ordenadores como por personas." -- Tim Berners-Lee, James Hendler, Ora Lassila, The Semantic Web, Scientific American, May 2001

Todos usamos SGML/XML

HTML (HyperText Markup Language) es una tecnología para estructurar documentos genéricos:

Entorno de desarrollo HTML

Entorno de producción SGML clásico

SGML

Estructura de SGML

Juego de caracteres
ASCII < Latin1 (ISO 8859-1) < Unicode (ISO/IEC 10646)
El juego de caracteres puede declararse explícitamente o, en su omisión, usar el juego predeterminado por el sistema.
Declaración de documento
La DTD (declaración de tipo de documento) especifica la sintaxis y la jerarquía y relación entre las marcas en las diferentes formas en las que puede construirse un tipo o familia concreto de documentos.
Como símil puede pensarse que es la definición rigurosa de un formulario especialmente flexible.
Elementos
Las secciones que componen al documento desde el punto de vista estructural. La jerarquía y relaciones de los elementos está definida en la DTD.
Familiarmente también se les llama etiquetas o marcas.
Existen dos tipos: «inline» y bloque.
Atributos
Los parámetro de cada elemento. Pueden ser opcionales (y tener o no valores predeterminados) u obligatorios.
Entidades
De uso múltiple y flexible: Las entidades deben estar declaradas en el documento o en la DTD.
Contenido
El texto introducido entre marcas
Instancia
El documento SGML compuesto usando una DTD, sus elementos y los atributos de estos, las entidades internas/externas y el contenido entre marcas.

XML vs. SGML

DSSSL

XSL

Entorno de producción SGML ampliado con DSSSL

Entorno SGML genérico

DTD de éxito: HTML

Entorno HTML en Linux

DTD de éxito: CALS

DTD de éxito: TEI

DTD de éxito: Linuxdoc-SGML

DTD de éxito: Docbook

Entorno Docbook SGML en Linux

Ejemplo de uso de Docbook

Obtener PDF:
docbook2pdf ejemplos/apannao.xml
Obtener HTML:
docbook2html ejemplos/apannao.xml

Herramientas:

jade/openjade
procesador DSSSL (integra el analizador SGML SP)
jadetex/pdfjadetex
Interfaz TeX para formatos de reproducción desde jadetex
xmllint
Analizador XML
xsltproc
Procesador XSLT

Creando documentos estructurados:

  1. elección de la DTD
  2. planificación del tipo de documento
  3. estructuración del documento
  4. dar contenido
  5. refine del marcado
  6. «impresión» final

Ejemplo de uso de aplicación SGML

Preguntas

Hagan alguna pregunta si no quieren descorazonar a este conferenciante

Despedida y cierre

¡Esto es to... esto es to... esto es todo amigos!