Gentoo Logo

Guía Metadoc XML de Gentoo

Contenido:

1.  Introducción

¿Por qué se necesita MetadocXML?

MetadocXML no es realmente necesario, se trata de un recurso adicional para que el Proyecto de Documentación siga la pista de los documentos, incluso si están localizados fuera del ámbito normal [gentoo]/xml/htdocs/doc.

Gracias a MetadocXML, podemos:

  • seguir la pista de los documentos localizados dentro de los espacios web de los proyectos (/proj) en lugar de centrarnos solo en el repositorio normal de documentación (/doc).
  • clasificar la documentación en varias categorías (o subcategorías) con el beneficio adicional de que podemos generar automáticamente el índice de la documentación (y algunas cosas más).
  • seguir la pista de la documentación de miembros de equipos no oficiales (por ejemplo, traductores).
  • utilizar partes de grandes documentos (manuales) como guías individuales en ciertos temas.
  • asignar incidencias (bugs) a documentos particulares para una rápida referencia y tener la posibilidad de enmascarar un documento en caso de una incidencia severa.
  • comprobar de forma primitiva si un fichero traducido está en sincronía con su original en inglés o no.

Observará que la última ventaja mencionada es primitiva y probablemente no será ampliada. Algunos equipos de traducción usan guiones basados en trads-doc para gestionar los documentos traducidos, otros utilizan herramientas de traducción en línea. Si va a comenzar a realizar traducciones para Gentoo, asómese por #gentoo-doc o pida ayuda en la lista de correo gentoo-doc@gentoo.org.

Los equipos de traducción que no utilicen MetadocXML no se tienen porqué preocupar, no perderán ninguna funcionalidad ya que se construye contra la infraestructura existente, no hay cambios al formato GuideXML que necesite MetadocXML.

¿Cómo funciona MetadocXML?

Existe un único fichero central en el que se mantiene toda la meta-información sobre la documentación. A este fichero lo llamamos metadoc.xml. Este fichero debería estar localizado en su repositorio principal (/doc/${IDIOMA}) aunque no está escrito explícitamente.

Dentro de este fichero se almacena toda la meta-información:

  • Miembros del equipo
  • Categorías en las que los documentos participan
  • Ficheros cubiertos
  • Documentos cubiertos
  • Incidencias (Bugs) que son parte de un documento

Además de metadoc.xml, puede haber un documento generado dinámicamente (este fichero normalmente se llama index.xml), una lista global de toda la documentación (normalmente list.xml) y una vista global de todos los miembros, ficheros e incidencias (normalmente overview.xml).

2.  El fichero metadoc.xml

Estructura XML

El fichero metadoc.xml comienza con el código de inicialización XML y la información de cabecera CVS de Gentoo:

Listado de Código 2.1: Inicialización XML

<?xml version='1.0' encoding="UTF-8"?>
<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/metadoc.xml,v 1.25 2004/12/23 09:51:30 swift Exp $ -->
<!DOCTYPE metadoc SYSTEM "/dtd/metadoc.dtd">

A continuación, comienza la declaración MetadocXML.

Listado de Código 2.2: Declaración MetadocXML en Inglés

<metadoc lang="en">

Los traductores deben hacer referencia al fichero principal /doc/en/metadoc.xml en el atributo parent. Esto hace que metadoc identifique fichero sin traducir y busque si las versiones de los documentos traducidos coinciden con las originales.

Listado de Código 2.3: Declaración de MetadocXML para una traducción

<metadoc lang="código de idioma" parent="/doc/en/metadoc.xml">

Dentro de la entidad metadoc, se deben declarar las siguientes entidades (en el orden dado):

  • version para ayudar en el seguimiento de los cambios.
  • members que declara todos los miembros de un equipo de traducción.
  • categories que declara las posibles categorías utilizadas.
  • files que contiene todos los ficheros cubiertos por el fichero Metadoc.
  • docs que contiene todos los documentos cubiertos por el fichero Metadoc.

La entidad version

El número de versión debe incrementarse cada vez que se añade o elimina un fichero o un documento, también cuando se cambia una ruta o cualquier otra actualización que tenga algún impacto en las versiones traducidas.

La entidad members

Dentro de la entidad members, se pueden declarar dos 'tipos' de miembros: lead y member. Un lead debe ser conocido por el equipo de Relaciones con los Desarrolladores de Gentoo (Gentoo Developers Relations) ya que consta únicamente del alias del desarrollador líder y se busca en la lista de miembros de Gentoo. Un member puede ser tanto un desarrollador Gentoo (en cuyo caso solo se muestra el aliar) o un contribuyente.

En el caso de un contribuyente, la etiqueta member posee dos atributos: mail y fullname, que contienen la dirección de correo y el nombre completo del contribuyente.

Listado de Código 2.4: Ejemplo de uso de la entidad members

<members>
  <lead>chiguire</lead>
  <lead>nimiux</lead>
  <member>yoswink</member>
  <member mail="contribuyente-gentoo@gmail.com" fullname="Juan Nadie">jnad</member>
</members>

La entidad categories

Dentro de la entidad categories se declaran únicamente entidades cat. Cada entidad cat cubre una categoría. Utiliza un parámetro obligatorio: id que se utiliza para hacer referencia a la categoría. Puede también definir un parámetro parent en el caso en que la categoría sea hija de otra categoría.

En este caso, la atributo parent hace referencia al atributo id de la categoría padre.

Listado de Código 2.5: Ejemplo de uso de la entidad categories

<categories>
  <cat id="faq">Preguntas de uso frecuente</cat>
  <cat id="install">Recursos relacionados con la instalación</cat>
  <cat id="install_guides">Guías de Instalación</cat>
</categories>

La entidad files

La entidad files contiene únicamente entidades file.

Cada entidad file hace referencia a un solo fichero XML. Tiene un atributo obligatorio id que se debe usar como clave primaria para buscar el fichero. Metadoc comparará el nombre del fichero definido con el mismo atributo id en el fichero metadoc padre (definido en el elemento raíz) para averiguar si el fichero es una traducción on no. Los nombres de los ficheros deben ser idénticos en el segundo caso.

El propio fichero metadoc se puede listar y aparecerá en la página con la vista general (overview).

Listado de Código 2.6: Ejemlpos de la entidad files

<files>
  <file id="metadoc">/doc/es/metadoc.xml</file>
  <file id="ati-faq">/doc/es/ati-faq.xml</file>
</files>

La entidad docs

La entidad docs debe contener únicamente entidades doc.

Cada entidad doc tiene un atributo id obligatorio que se usará como clave primaria del documento. Cada entidad doc tiene un atributo obligatorio fileid, que hace referencia al atributo id de una entidad file que corresponde con el fichero principal del documento.

En el caso de un capítulo de manual, la entidad doc debe contener una entidad bookref que hace referencia a la página principal del manual (el fichero XML principal del manual). Esta entidad contiene dos atributos llamados vpart y vchap que hacen referencia a la parte y capítulo correspondientes del documento dentro del manual.

Dentro de la entidad doc, pueden existir otras dos entidades:

  • Una o más entidades memberof, que hacen referencia a la categoría o categoría en las que se localiza el documento (observar que un documento puede estar en varias categorías a la vez)
  • Una entidad bugs que contiene una o más entidades bug. Una entidad bug hace referencia a un número de bug que cubre una incidencia con el documento. En el caso de una incidencia importante, se puede añadir el atributo stopper="yes" a la entidad bug para que el documento no aparezca en la página índice que se genera.

Listado de Código 2.7: Example Docs entity

<docs>
  <doc fileid="ldap-howto">
    <memberof>sysadmin_specific</memberof>
    <bugs>
      <bug>102481</bug>
      <bug stopper="yes">1151330</bug>
    </bugs>
  </doc>
  <doc fileid="uml">
    <memberof>sysadmin_general</memberof>
  </doc>
</docs>

Fichero ejemplo metadoc.xml

El sitio de Gentoo utiliza un fichero metadoc.xml para agregar la información contenida en su documentación. Puede ver la versión actual en línea.

3.  Fichero adicionales MetadocXML

Índice generado automáticamente

Si se desea un índice generado automáticamente, se debe comenzar el documento con el siguiente código:

Listado de Código 3.1: Generar índice automáticamente

<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/xsl/metadoc.xsl" type="text/xsl"?>
<?xml-stylesheet href="/xsl/guide.xsl"   type="text/xsl"?>

<!-- $Header$ -->

<!DOCTYPE dynamic SYSTEM "/dtd/metadoc.dtd">

<!-- Sustituya "/doc/es/metadoc.xml" por la localización de su fichero metadoc -->
<dynamic metadoc="/doc/es/metadoc.xml">
<title>Recursos de documentación de Gentoo</title>
<intro>

(...)

</intro>

<catid>faq</catid>
<catid>install</catid>

</dynamic>

Entre las etiquetas intro debe escribir una o más secciones que siempre aparecerán al comienzo de la página. Probablemente quiera escribir una introducción y alguna información adicional para que el lector sepa con quién contactar en caso de errores en la traducción u otras cuestiones.

Dentro de las etiquetas intro puede utilizar texto GuideXML que comience con la etiqueta section.

Las etiquetas catid hacen referencia a las categorías principales utilizadas or el índice dinámico. Debe listar cada categoría posible que no sea terminal y que esté declarada en su fichero metadoc. No liste categorías que son hijas de otras categorías.

Documento tipo lista generado dinámicamente

Un documento tipo lista que se genera dinámicamente comienza de forma similar a un fichero índice generado automáticamente.

Listado de Código 3.2: Documento tipo lista generado dinámicamente

<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/xsl/metadoc.xsl" type="text/xsl"?>
<?xml-stylesheet href="/xsl/guide.xsl"   type="text/xsl"?>

<!-- $Header$ -->

<!DOCTYPE dynamic SYSTEM "/dtd/metadoc.dtd">

<!-- Sustituya "/doc/es/metadoc.xml" por la localización de su fichero metadoc -->
<dynamic metadoc="/doc/es/metadoc.xml">
<title>Listado de documentación Gentoo</title>

Sin embargo, no posee la etiqueta intro. Lo que se necesita añadir en este caso son todas las categorías de primer nivel que se van a usar en el listado. Para diferenciar este documento del índice (que también mostrará la información de resumen en cada documento), las categorías se añaden entre etiquetas list dentro de una etiqueta listing:

Listado de Código 3.3: Listar categorias

<listing>
  <list>faq</list>
  <list>install</list>
</listing>

Documento tipo sumario generado automáticamente

El documento tipo sumario (vista general) comienza de forma similar a los dos documentos descritos automáticamente:

Listado de Código 3.4: Documento tipo sumario generado automáticamente

<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/xsl/metadoc.xsl" type="text/xsl"?>
<?xml-stylesheet href="/xsl/guide.xsl"   type="text/xsl"?>

<!-- $Header$ -->

<!DOCTYPE dynamic SYSTEM "/dtd/metadoc.dtd">

<!-- Sustituya "/doc/es/metadoc.xml" por la localización de su fichero metadoc -->
<dynamic metadoc="/doc/es/metadoc.xml">
<title>Vista general de la documentación</title>

Puede, de nuevo, escribir una pequeña introducción en formato GuideXML entre las etiquetas XML intro, comenzando con una etiqueta section. Una vez terminado, una etiqueta <overview/> simple será suficiente.

Listado de Código 3.5: Etiquetas intro y overview

<intro>
(...)
</intro>

<overview/>


Imprimir

Página actualizada 4 de septiembre, 2011

Sumario: Esta guía informa a los desarrolladores sobre cómo utilizar el formato Metadoc XML que permite al Proyecto de Documentación de Gentoo mantener sus documentos de una forma jerárquica y también permite almacenar más información sobre cada documento.

Sven Vermeulen
Autor

Xavier Neys
Editor

José María Alonso
Editor

José María Alonso
Traductor

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.