Monografias.com > Computación > Internet
Descargar Imprimir Comentar Ver trabajos relacionados

Creación de artículos y páginas web usando XML en Linux




Enviado por Jaime E. Villate.



     

     

    22 de noviembre de 2000

    Versión 0.1, 16/8/2000

    Versión 0.2, 12/9/2000

    Versión 0.3, 15/9/2000

    Versión 0.4, 1/10/2000

    Versión 1.1, 22/11/2000

     

    Este documento es libre. Puedes copiarlo, distribuirlo
    y/o modificarlo bajo los términos de la Licencia GNU
    Para documentación Libre, versión 1.1 o
    cualquier versión posterior publicada por la Free
    Software
    Foundation.

    Este artículo ha sido producido por La Espiral y
    su versión más reciente se puede encontrar
    en http://www.laespiral.org/

     

    Resumen

    Este artículo explica como escribir documentos y
    páginas para publicar en la web, usando
    LE-document (versión 1.1), un tipo de documento basado en
    la versión XML de DocBook. Usando una versión
    simplificada de DocBook se facilita el proceso de
    creación de documentos y el editor de texto puede
    dar mayor ayuda en la construcción de la estructura del
    documento. Para transformar los ficheros fuente XML para otros
    formatos, se muestran algunos ejemplos de páginas de
    estilo XSL. Los ejemplos que se dan han sido creados en un
    sistema Debian,
    pero como no se usa ningún programa
    específico de Debian, deberá funcionar igual en
    cualquier distribución de Linux, una vez
    sean instalados los programas
    necesarios.

     

    Introducción

    El sistema de creación de páginas web y
    manuales que
    se describe en este artículo ha sido creado para el
    proyecto La
    Espiral (http://laespiral.org/).
    Este proyecto busca impulsar el uso del software
    libre, y en particular de Debian
    GNU/Linux, por parte de usuarios de habla hispana sin
    conexión permanente a la Internet; este tipo de
    usuarios tiene como principal fuente de instalación de
    Linux los discos compactos que se distribuyen con revistas. Para
    facilitar la distribución de Debian en revistas en
    español, pensamos crear selecciones de
    software basadas en Debian y acompañadas de
    documentación que pueda ser distribuida
    libremente

    Para cumplir nuestro objetivo, los
    documentos distribuidos por el proyecto deberán estar
    disponibles en versiones para imprimir con buena calidad, pero al
    mismo tiempo
    deberán existir versiones destinadas a consulta
    rápida en la web o en una consola. Otro requisito
    importante es mantener un estilo uniforme, ya que el proyecto se
    basa en contribuciones de muchos voluntarios.

    La solución que proponemos aquí, bautizada
    como LE-document, emplea XML para los ficheros fuente y unas
    páginas de estilo XSL para producir los diferentes
    formatos. Esta solución presenta varias
    ventajas:

    • permite definir el documento de una forma
      estructurada;
    • facilita la producción de varios formatos diferentes
      (html, latex,
      pdf, postscript, texto en ascii);
    • hace posible la extracción de partes de un
      documento para introducirlas automáticamente en una
      base de
      datos;
    • permite definir un estilo uniforme para todos los
      artículos del proyecto, el cual puede ser modificado en
      cualquier momento, sin tener que modificar ninguno de los
      artículos (el contenido está separado del
      estilo);
    • permite la construcción de todas las
      páginas web del proyecto usando la misma herramienta
      usada para los artículos.

    Un documento escrito en XML puede parecer complicado por
    la cantidad de etiquetas y atributos que es necesario introducir,
    pero con un editor de texto adecuado y un DTD (fichero que define
    la estructura del documento) bien diseñado, las etiquetas
    podrán ser introducidas fácilmente y el propio
    editor podrá sugerir la secuencia lógica
    que deben seguir las etiquetas. Antes de dar un ejemplo de como
    escribir un artículo, vamos a sugerir los programas que
    deben ser instalados para facilitar el proceso.

    El DTD que usaremos es una versión simplificada
    de DocBook, que es el sistema preferido por muchos proyectos de
    documentación libre. La ventaja de usar una versión
    simplificada, en vez del original, reside en que el proceso de
    creación de un documento se facilita mucho mas, al igual
    que la elaboración de páginas xsl para transformar
    el código
    xml en otros formatos. Cualquier documento creado usando el
    sistema que se describe en este artículo puede ser usado
    igualmente en DocBook, bastando substituir la definición
    del DTD al comienzo del fichero.

     

    Requisitos

    Para facilitar la redacción de artículos usando
    LE-document en Debian, es aconsejable instalar los siguientes
    paquetes:

    emacs

    Combinado con un modo para edición de ficheros XML, facilita
    el trabajo
    de escribir un artículo en XML.

    psgml

    Modo para editar ficheros sgml/html en emacs. Las
    versiones mas recientes (1.2.1-8 o superior) manejan mejor el
    código XML.

    sp

    Incluye el programa nsgmls que permite examinar la
    sintaxis de un fichero XML.

    sablotron

    Procesador de páginas XSL (lenguaje de
    descripción de estilo), útil para
    transformar la fuente xml de un artículo en html o
    latex, usando páginas de descripción de estilo.
    Se recomienda usar la versión 0.43 o superior; en
    versiones anteriores el resultado sale en código UFT8,
    siendo necesario usar um programa, por ejemplo recode, para
    transformarlo a código iso-latin-1.
    Los paquetes de sablotron y libsablot0 en woody pueden ser
    instalados sobre potato, y los puedes copiar de http://laespiral.org/software/.

    tetex

    Para producir las versiones PostScript
    y pdf, usaremos un fichero LaTeX generado a partir del fichero
    xml. En Debian será necesario instalar los paquetes
    tetex-base y tetex-extra. Usaremos también el paquete
    hyperref, que es parte de tetex-extra; sin embargo, las
    versiones actuales de este paquete en Debian no fucionan en
    español, ya que no reconocen la ñ (aparece un
    mensaje de error: Command texttilde unavailable in encoding
    OT1). Este problema solo fue corregido muy recientemente; para
    actualizar a la versión de hyperref que funciona en
    español, basta copiar los ficheros que se encuentran
    dentro del archivo
    http://laespiral.org/software/hyperref_6.70f.tgz;
    esto no creará ningún conflicto
    con el paquete tetex-extra original de Debian que ya ha sido
    instalado.

    lynx

    Para producir la versión en
    texto ascii de un fichero originalmente en xml, usaremos el
    programa lynx que leerá la versión html y la
    convertirá en texto.

    ledoc-xml

    Este es un paquete no-oficial de
    Debian, que puedes encontrar en http://laespiral.org/software/
    (si trabajas con otra distribución diferente de
    Debian, deberás copiar el archivo ledoc-xml-1.1.tar.gz y
    seguir las instrucciones para su instalación). Este
    paquete contiene el fichero de definición del tipo de
    documento (DTD) que vamos a crear, asi como las páginas
    de estilo y programas para producir las versiones html y latex
    a partir de la fuente xml.

    Primeros
    pasos

    Para comenzar a escribir un
    artículo, el primer paso es crear un fichero con
    extensión xml y con el siguiente contenido en las dos
    primeras líneas:

    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <!DOCTYPE article PUBLIC "-//laespiral.org//DTD LE-document 1.1//EN"
    "LE-document.dtd">

    La primera línea indica que lo que
    viene a continuación es un fichero en código xml,
    versión 1.0, y con caracteres del código
    ISO-8859-1. La segunda línea define el DTD (en este caso
    LE-document.dtd) y dá alguna información sobre la institución que
    lo ha producido, el nombre oficial que se le ha dado y el idioma
    en que fué escrito. Un DTD define un árbol
    jerarquico de elementos; dentro de la línea donde se
    identifica el DTD que será usado, debe identificarse
    también cual será el elemento principal, dentro de
    esa jerarquía, que será usado en el presente
    documento; en este caso hemos escrito article, pues iremos
    a escribir un artículo completo. Si fueramos a escribir
    únicamente una sección de un artículo,
    escribiríamos por ejemplo sect1, o si fueramos a
    crear una página para la web escribiríamos
    webpage.

    Si se abre con emacs un fichero con extensión xml
    que tenga las dos líneas anteriores, el resultado
    será como el de la figura 1.

     

    Fig.
    1
    : Comienzo de un artículo usando
    LE-document.dtd.

     

    La extensión xml del nombre del fichero ha hecho
    que emacs ejecute el modo XML de psgml, como se puede ver en el
    centro de la línea de estado (la línea negra
    en la parte inferior) y por la aparición de varios
    menús adicionales para trabajar con xml. El modo xml se ha
    encargado también de leer la línea que define el
    tipo de documento y ha cargado el fichero LE-document.dtd que se
    encuentra en el directorio de trabajo (si
    está en otro directorio, la línea de
    definición del documento debe ser modificada dando el
    camino completo del fichero dtd).

    En la línea de estado en la
    figura 1 se puede ver que el fichero dtd ya ha sido leído
    y analizado, pues ya ha sido identificado el elemento principal
    del documento: "article" ; también puede ver alguna
    información sobre el DTD y los elementos que define, en le
    menú DTD que presenta psgml en emacs. Si en tu
    sesión de emacs no aparece esa información, por
    ejemplo si comenzaste a escribir las dos primeras líneas
    en un fichero vacío, tendrás primero que asegurarte
    de que estás usando modo XML, con el comando “M-x
    xml-mode'', y después podrás seleccionar la
    opción “Parse DTD'' en el menú DTD (o si prefieres
    puedes usar el teclado: "C-c
    C-p" ).

     

    Creación de
    artículos con LE-document

    Después de estar en modo XML y de haber
    seleccionado un DTD, puedes usar una opción de menú
    muy útil y que será la que nos permitirá
    escribir el documento rápidamente; se trata de la
    opción Insert Element, en el menú "Markup" .
    Esta opción nos dá una lista de los elementos que
    son permitidos en el punto donde se encuentra el cursor;
    escogiendo un elemento en la lista, son introducidas las
    etiquetas exigidas por ese elemento y si existe alguna
    información adicional obligatoria, será pedida en
    el mini-búfer (la última línea en la
    pantalla).

    Otra forma rápida de introducir elementos,
    equivalente a la opción Insert Element, consiste en
    oprimir simultáneamente la tecla "Shift" y el botón
    derecho del ratón. Al hacer eso, aparece un cuadro con la
    lista de elementos válidos; por ejemplo en la figura 1 se
    acabó de pulsar "Shift+botón derecho" y ha
    aparecido una lista con un único elemento, article,
    que es el único elemento que se puede seleccionar
    inicialmente. Seleccionando este elemento, aparece toda la
    información que se muestra en la
    figura 2.

     

    Fig. 2: La estructura mínima
    de un artículo en LE-document.dtd.

     

    El contenido del fichero en la figura 2 constituye la
    estructura mínima que debe tener un artículo en el
    sistema LE-document. El cursor ha sido desplazado al primer lugar
    donde tendremos que comenzar a introducir texto: el título
    del artículo. Después de escribir el título
    del artículo, podemos usar la opción Next data
    field
    , en el menú Move (o con el teclado: "C-c
    C-d" ), para desplazarnos al próximo campo que debe ser
    rellenado.

    Repitiendo el comando Next data field,
    verás que inicialmente los únicos campos que tienes
    para rellenar son el título del artículo, el
    nombre(s) y apellido(s) del autor ( "firstname" y "surname" ) y
    el título de la primera sección. El resto del
    artículo es considerado opcional en el DTD que se
    está usando. Para introducir otra información
    opcional, conviene revisar qué otros elementos y atributos
    opcionales existen en cada sección. Por ejemplo
    después del final del elemento "author" y antes de
    terminar "artheader" , vemos que existen otras tres posibilidades
    "abstract" (resumen), "date" (fecha del artículo) y
    "revhistory" (historia de revisiones). Y
    si miramos dentro de <article>, veremos que este
    elemento tiene dos atributos opcionales: "xreflabel" y
    "lang" ; conviene seleccionar el atributo "lang" , y escoger su
    valor "es" si
    el artículo va a ser escrito en español.

    Algo muy importante que se debe tener en cuenta es lo
    siguiente: para escribir el contenido de la primera
    sección lo mas natural era pensar que deberíamos
    comenzar a escribir después de su título, pero
    cuando usamos "Next data field" en el título, somos
    desplazados hasta el final del artículo. Lo que pasa es
    que antes de comenzar a escribir el contenido de la
    sección nos falta escoger otro elemento después del
    título; podemos ver que la lista de posibles elementos en
    ese punto es la siguiente:

    para

    Indica un párrafo con texto. Cada párrafo en
    un artículo debe estar siempre entre las etiquetas
    <para> y </para>.

    sect2

    Una sección de segundo nivel, o
    subsección. Debemos notar que los números
    después de "sect" no se refieren al número que
    identifica la sección, sino a su nivel. Existen 5
    niveles de secciones.

    itemizedlist

    Una lista con ítems.

    orderedlist

    Una lista enumerada.

    variablelist

    Una lista con descripciones, como la que estoy
    usando en este preciso momento en este
    artículo!

    simplelist

    Una tabla con una columna (en el futuro
    permitirá usar mas de una columna); cada columna se pone
    dentro de un elemento "member" . Se puede usar por ejemplo
    cuando necesitamos escribir varias líneas separadas sin
    comenzar nuevos párrafos.

    figure

    Una figura.

    programlisting

    Un listado de un programa o unos pocos comandos, como
    el que se usó al comienzo de esta
    sección.

    Dentro de un párrafo y en general en cualquier
    punto donde se pueda escribir texto, existen otros elementos
    útiles, como por ejemplo <ulink> para introducir
    enlaces a localizadores url, <filename> para indicar el
    nombre de un fichero, y <command> para el nombre de un
    comando. Si el autor usa estos elementos, después
    será fácil que un programa busque el nombre de los
    comandos o ficheros referidos en su artículo con ventajas
    obvias para búsquedas de información y
    creación de bases de
    datos.

     

    Caracteres especiales en XML

    Existen 4 caracteres que bajo ninguna circunstancia se
    deben usar en el texto de un documento XML, pues están
    reservados a los comandos XML. Estos cuatro caracteres son los
    siguientes: >, <, & y ". Cuando sea necesario usar uno
    de estos caracteres, deberán ser escritos en la siguiente
    forma: &gt;, &lt;, &amp; y &quot;. Cuando sea
    necesario usar comillas, es mas aconsejable usar el elemento
    <quote>, ya que este será traducido correctamente a
    cada código que se use (html, latex, texto, etc) y
    podrá usar caracteres diferentes en diferentes
    idiomas.

    Transformación de xml a otros
    formatos

    Antes de transformar un fichero xml, conviene
    asegurarnos de que no tenga ningún error de sintaxis.
    Dentro de emacs, se usa el comando “Validate'' en el menú
    “SGML'' (o simplemente “C-c C-v'') y se pulsa "enter"
    .

    El paquete ledoc-xml viene con unas páginas de
    estilo (XSL) que se usan por defecto para producir html o latex.
    Para obtener código html a partir de un fichero xml que
    use LE-document.dtd, se usa el comando le2html:

    le2html fichero.xml > fichero.html

    Si quieres usar tus propias páginas de estilo,
    deberás dar la opción -s al comando. Por ejemplo,
    el paquete ledoc-xml también trae las páginas de
    estilo que usamos en el proyecto La Espiral. Para producir un
    fichero html usando este estilo se debe dar el
    comando:

    le2html -s laespiral.xsl fichero.xml > fichero.html

    En Debian las páginas han sido instaladas en
    /usr/lib/sgml/stylesheet/ laespiral donde podrás copiarlas
    para modificarlas y crear tu propio estilo. Para producir latex,
    el proceso es semejante:

    le2latex fichero.xml > fichero.tex

    o usando el estilo de propio de La Espiral,

    le2latex -s laespiral-latex.xsl fichero.xml > fichero.tex

    Los ficheros LaTeX generados por este método han
    sido hechos de forma a que sean aceptados tanto por latex, para
    producir un fichero dvi usando el comando "latex fichero.tex" , o
    por pdflatex para producir un fichero pdf (usando el comando
    "pdflatex fichero.tex" ). Para pasar de dvi a formato PostScript,
    se usa: "dvips -o fichero.ps fichero.dvi" . Si nunca has usado
    LaTeX, te recomiendo que para obtener versiones ps y pdf uses el
    comando le2all que viene con ledoc-xml.

    El comando le2all produce las versiones html,
    latex, ps, pdf y texto ascii; basta escribir en la línea
    de comandos:

    le2all fichero.xml

    y le2all se encargará de los detalles. Se puede
    usar también un estilo diferente, por ejemplo:

    le2all -s laespiral.xsl fichero.xml

    Pero en este caso hay que tener cuidado, pues si defines
    tu propio estilo, el nombre que dés con la opción
    s, por ejemplo "estilo.xsl" deberá ser una página
    para transformar en html, y deberá existir otra
    página para convertir en LaTeX, con nombre
    "estilo-latex.xsl" . Para ver un resumen del uso de estos
    comandos, consulta las páginas de manual de
    le2html, le2latex y le2all.

     

    Creación de
    páginas web

    El mismo método se puede usar para producir
    páginas web. en vez de comenzar con el elemento
    article, se debe comenzar en este caso con el elemento
    webpage (en la línea DOCTYPE al comienzo se
    deberá substituir article por webpage). El elemento
    webpage tiene casi todos los mismos sub-elementos de article, mas
    dos elementos adicionales: news y
    webmenu.

    "News" se usa para producir una lista de noticias en
    una página
    web. Cada noticia va dentro de una etiqueta
    <newsentry>, la cual está formada por una fecha,
    <date>, seguida de un párrafo, <para>, con el
    texto de la noticia.

    "Webmenu" se usa para colocar un índice al lado
    de varias páginas, que permita navegar mas
    fácilmente por entre las páginas. El paquete
    ledoc-xml viene acompañado por un programa
    LE-webmenu, que permite crear automáticamente el
    menú para un grupo de
    páginas. Consulta la página de manual de
    LE-webmenu.

    Compatibilidad con DocBook

    El elemento article de LE-document es un
    subconjunto de DocBook y por tanto cualquierr documento creado
    con ese elemento será totalmente compatible con DocBook;
    basta substituir la definición del DTD por la
    correspondiente de DocBook. La razón para crear una
    versión simplificada en vez de usar el DTD completo de
    DocBook, es que con un DTD mas simple se facilita la
    creación de documentos; si en cada punto del documento las
    posibles etiquetas que son aceptadas por el DTD son pocas,
    será mas fácil recordar la estructura que debe
    tener el documento.

    El elemento webpage de LE-document es una
    extensión que no está presente en DocBook, y por
    tanto no será totalmente compatible con DocBook, debido a
    los dos elementos adicionales "news" y "webmenu" .

    Bibliografia

    1. Walsh, N. y L. Muellner. DocBook: The Definitive
      Guide
      , 1a edic., O'Reilly & Associates, Inc. octubre de
      1999, ISBN: 156592-580-7. (disponible en http://www.docbook.org/)
    2. http://www.xml.com/
      . Allí se encuentra mucha información sobre
      XML y XSL.
    3. http://www.nwalsh.com/
      . Otra fuente muy buena de
      información.

    Jaime E. Villate.

    22 de noviembre de 2000

    © Copyright 2001, 2002, 2003, 2004, La
    Espiral,

    Permitida la copia y distribución textual,
    integral, siempre y cuando se mantenga este aviso.

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter