[LinuxFocus-icon]
Hogar  |  Mapa  |  Indice  |  Busqueda

Noticias | Arca | Enlaces | Sobre LF
Este documento está disponible en los siguientes idiomas: English  Castellano  ChineseGB  Deutsch  Francais  Italiano  Nederlands  Portugues  Turkce  

convert to palmConvert to GutenPalm
or to PalmDoc

[Photo of the Author]
por Egon Willighagen
<egonw(at)linuxfocus.org>

Sobre el autor:

Tiene un máster en química por la Universidad de Nijmegen, y está realizando su doctorado sobre representación molecular en la misma universidad. Juega a Baloncesto y programa aplicaciones en Java.



Taducido al español por:
Francisco Igual Peña <pacodani(at)inicia.es>

Contenidos:

 

Edición de Documentos DocBook XML

[Illustration]

Resumen:

Este artículo describe el uso de Kate y su plugin para XML como herramienta para editar documentos en formato DocBook XML.


_________________ _________________ _________________

 

Introducción

La edición de XML con programas de Código Abierto ha sido desde siempre un problema. La gente necesita un editor capaz de producir código XML válido, y preferiblemente ver la salida directamente. Hay editores que pueden hacerlo, pero son propietarios. En el mundo del Código Abierto, hay algunos programas que no nos ofrecen una buena presentación gráfica, pero que son capaces de producir documentos XML válidos y pueden mostrarnos los elementos que están permitidos en una posición específica del documento.

Por supuesto tenemos Emacs, con su modo DocBook, que trabaja bien (ver el artículo DocBook article). Este modo especial hace posible elegir elementos hijo para insertar en el documento basados en los elementos que ya se encuentran en el documento. Y permite el uso del tabulador para completar basándose en su propio conocimiento.

Pero en este artículo no trataré esto, sino que introduciré Kate como editor de documentos en formato Docbook XML.

 

Kate

Kate es uno de los editores del entorno de escritorio KDE. Es razonablemente ligero, soporta múltiples archivos abiertos y resaltado de sintaxis, también para XML. Además, el año pasado Daniel Naber escribió un plugin para XML que es útil para escribir documentos XML correctos. En KDE 3.0 este plugin de XML para Kate se incluye en el paquete kde-addon. Si el paquete kde-addon para KDE 3.0 no está todavía instalado, se puede instalar desde una de las muchas distribuciones binarias o compilando el paquete desde las fuentes:
./configure --prefix=/path/where/your/kde3/is/installed
make
sudo make install

Cuando el plugin esté instalado, todavía hay que hacer que Kate sea consciente de ello. Para esto, basta seleccionar "Configurar Kate" en el menú "Preferencias". En el "Administrador de plugins", hay que colocar el plugin para XML en la lista de plugins cargados:

[Kate's plugin manager]
 

Construir el Meta DTD

Los Meta DTD son generados con el dtdparser de Norman Walsh, cuyos paquetes se pueden descargar desde SourceForge.net.

He usado una versión 2.0beta6 ligeramente adaptada. Por ejemplo, tuve que corregir la ruta en el programa dtdparse en la primera línea para adaptarlo a la ruta correcta de mi instalación de Perl. Ejecutando el programa obtendríamos una salida similar a esta:

> ./dtdparse /path/to/docbookx.dtd
Public ID: unknown
System ID: /usr/share/sgml/docbook/dtd/xml/4.1.2/docbookx.dtd
SGML declaration: unknown, using defaults for xml and namecase
Loading dbnotnx.mod
Loading dbcentx.mod
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsa.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsb.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsc.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsn.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamso.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsr.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISObox.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOcyr1.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOcyr2.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOdia.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk1.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk2.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk3.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk4.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOlat1.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOlat2.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOnum.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOpub.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOtech.ent
Loading dbpoolx.mod
Loading calstblx.dtd
Loading dbhierx.mod
Loading dbgenent.mod
Parse complete.
Writing docbookx.dtd.xml...
Done.

Hay que fijarse en la gran cantidad de entidades cargadas. En parte debido a esto, el Meta DTD resultante ocupa 1.63 Mibibytes . Pero con un procesador de XSLT como xsltproc el tamaño puede reducirse hasta 0.96 MiB con la hoja de estilo symplify_dtd.xsl del paquete kde-addon:

> xsltproc simplify_dtd.xsl docbookx.dtd.xml > docbook-xml-4.1.2.dtd.xml

El archivo resultante docbook-xml-4.1.2.dtd.xml puede entonces copiarse a /path/to/kde3/share/apps/katexmltools/ donde /path/to es la ruta donde está instalado KDE3, aunque el home del usuario también será válido, ya que el plugin nos pedirá un nombre de archivo a la hora de asignar un nuevo Meta DTD (ver abajo)

 

Editar

Al crear un nuevo documento DocBook XML debe ser asignado un Meta DTD. Esto se hace eligiendo "Asignar Meta DTD" en el menú "XML Plugin". Aparecerá entonces un cuadro de diálogo de elección de archivo, dónde elegiremos el DTD que deseemos usar. En este caso, éste es el DocBook XML 4.1.2 Meta DTD que acabamos de crear. Un nuevo diálogo nos mostrará el progreso:

[Meta DTD parsing dialog]

En el nuevo documento vacío, escribimos "<book>". Para cerrar el elemento pulsamos F11. Si el resaltado de sintaxis no está todavía activado, podemos hacerlo manualmente seleccionando "Modo de Resaltado" en el menú "Documento". El resaltado de sintaxis para XML está en el submenú "Marca".

Como hemos olvidado los atributos que tiene el elemento book, situamos el cursor al final de la palabra book en la etiqueta inicial y pulsamos Ctrl+Return. Una ventana nos muestra una lista de todos los posibles atributos para el elemento actual:

[Inserting an attribute]

Situando el cursor entre la "'s y pulsando Ctrl+Return obtenemos los posibles valores para el atributo si están definidos en el DTD. Este no es el caso en el atributo id.

Tras insertar el atributo tenemos este código DocBook XML:

<book id="SomeID">
</book>

Situando el cursor entre el las etiquetas inicial y final del elemento book, y pulsando Ctrl+Return en esa posición obtenemos una nueva lista emergente, pero ahora con todos los posibles elementos hijo para el elemento book. Podemos seleccionar, por ejemplo, el elemento title:

[Inserting an attribute]

Un punto débil de este plugin es que sólo tiene en cuenta los elementos hijo, y no el orden o veces que está permitido que aparezcan. Por ejemplo, el DTD no permite dos o más elementos title, pero el plugin XML no nos avisará de esto. Como el plugin tampoco tiene (todavía) opción de validación, es bastante fácil obtener documentos no válidos.

Un resumen de las funcionalidades del plugin se muestra en la tabla inferior:

Acción Órden
Insertar XML (elementos y atributos) Ctrl+Return
Insertar Entidad F10
Cerrar etiqueta F11
 

KDE DocBook

El proyecto KDE en sí también usa DocBook como formato para su documentación. Prueba de ello es que el plugin XML viene por defecto con una versión personalizada de DocBook para KDE. Asignar ese Meta DTD para DocBook es obviamente preferible frente al Meta DTD para DocBook XML 4.1.2 si se está escribiendo documentación para KDE

 

MathML y SVG

Hoy por hoy, DocBook también soporta MathML para incluir ecuaciones matemáticas en documentos. Un DTD para validar documentos DocBook con código MathML se encuentra en este mensaje.

Desafortunadamente, el DTD de SVG ha sido escrito de tal forma que no es posible incluirlo en DocBook. Aún así, los esfuerzos para hacer esto posible son cada día mayores.

El uso en el plugin de XML para Kate requiere crear un nuevo Meta DTD basado en el DTD combinado con dtdparse.

 

Conclusión

El plugin de XML para Kate puede ayudarnos mucho a la hora de editar documentos DocBook XML. No es perfecto, pero hay que tener en cuenta que su desarrollo es reciente. Con KDE 3.0, está disponible para mucha una gran cantidad de personas.

 

Formulario de "talkback" para este artículo

Cada artículo tiene su propia página de "talkback". A través de esa página puedes enviar un comentario o consultar los comentarios de otros lectores
 Ir a la página de "talkback" 

Contactar con el equipo de LinuFocus
© Egon Willighagen, FDL
LinuxFocus.org
Información sobre la traducción:
en --> -- : Egon Willighagen <egonw(at)linuxfocus.org>
en --> es: Francisco Igual Peña <pacodani(at)inicia.es>

2003-08-06, generated by lfparser version 2.34