|
|
Este artículo está disponible en los siguientes idiomas: English Castellano ChineseGB Deutsch Francais Italiano Nederlands Portugues Turkce |
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 XMLResumen:
Este artículo describe el uso de Kate y su plugin para XML como herramienta para editar documentos en formato DocBook XML. |
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.
./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:
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)
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:
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:
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:
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 |
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
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.
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.
|
Contactar con el equipo de LinuFocus
© Egon Willighagen, FDL LinuxFocus.org |
Información sobre la traducción:
|
2003-08-06, generated by lfparser version 2.34