3. Formato de un archivo de definiciones

Los ejemplos presentados en las secciones anteriores, empleaban en las descripciones, palabras y definiciones en el formato por defecto que es texto plano. Es posible especificar otro formato con el atributo formato del elemento raíz def y limitar la longitud máxima aceptable para una cadena en tal formato con el atributo longitud. Por ejemplo:

	
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE def PUBLIC "-//Structio//DTD definiciones 1.0" "def.dtd">

<def formato="tex" longitud="80">
  <desc>Definiciones de matemáticas 10</desc>

  <derechos tipo="Dominio público">Cedido al dominio público</derechos>

  <pal id="g10s5" pal="$\pi \cdot 121 / (12 \cdot 180)$">
    <sig id="g10s5.Sexagesimal" fecha="1/09/2002">?`El ángulo escrito en 
sexagesimal 10\textdegree 5' en radianes es ...? (!`)</sig>
    <despiste>$\pi$</despiste>
    <despiste>$\pi \cdot 10/180$</despiste>
    <despiste>$\pi \cdot 5/(10 \cdot 180)$</despiste>
  </pal>
  
  <pal id="a"><sig id="a.a">texto a</sig></pal>
  <pal id="b"><sig id="b.b">texto b</sig></pal>
  <pal id="c"><sig id="c.c">texto c</sig></pal>
      
</def> 

 

Note que el elemento def indica que las cadenas se escriben en TeX y que no sobrepasan los 80 caracteres al transformarse en texto plano para presentarse. Además de texto y tex es posible emplear docbook. En los casos de TeX y DocBook sólo se soportan subconjuntos, que son traducidos a texto plano por las herramientas de repaso. El programa de chequeo (repchq) podrá verificar que se empleen sólo elementos soportados y que la longitud máxima tras traducir a texto plano (en caso de haberse especificado una) no se sobrepase. Con la opción -formato de repchq puede establecerse un formato que ignora el formato que pueda estar especificado en el archivo de definiciones que se verifica.

El siguiente ejemplo muestra el uso del formato DocBook:

	
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE def PUBLIC "-//Structio//DTD definiciones 1.0" "def.dtd">
<def formato="docbook">
  <desc>Información extraída de: Aprendiendo a aprender Linux: guías de estudio 
	para colegios</desc>
  <biblio>http://structio.sourceforge.net/guias/AA_Linux_colegio</biblio>
  <derechos tipo="Dominio público" tiempo="Febrero de 2003">DP</derechos>
  <autor fecha="17/02/2003">Jaime Irving Dávila, Pablo Chamorro, 
	Igor Támara, Vladimir Támara</autor>
  <pal id="dd" pal="&lt;command&gt;dd&lt;/command&gt;">
    <!--# 7685 administrador2.xml--><sig id="dd.linux0" fecha="17/02/2003">Este programa 
	permite copiar información por bloques. Es usado por ejemplo para copiar la imagen 
	de un disquete en un disquete. </sig>
  </pal>
  <pal id="apt" pal="&lt;command&gt;apt&lt;/command&gt;">
    <!--# 4481 administrador1.xml--><sig id="apt.linux0" fecha="17/02/2003">Método de acceso 
	que &lt;literal&gt;dselect&lt;literal&gt; soporta y que permite especificar los 
	repositorios en el archivo &lt;filename&gt;/etc/apt/sources.list&lt;/filename&gt;.</sig>
  </pal>
</def>

Note que además de la sintaxis de un archivo de definiciones usual, hay presentes: (1) elementos de DocBook con sintaxis especial de XML para < (&lt;) y > (&gt;); (2) comentarios interpretados por la librería de XML de repasa, que referencian otros archivos y líneas en ellos, así por ejemplo la palabra con identificación dd tiene un significado extraído de la línea 7685, del archivo administrador2.xml. Empleando estas referencias, los errores que puedan existir son reportados por repchq con respecto a la fuente. Esto resulta útil por ejemplo cuando el archivo de definiciones es extraído automáticamente de otro archivo (en este ejemplo de un documento DocBook).

Para el caso de formato docbook en lugar de emplear &lt; y &gt;, los textos de las definiciones podrían ser secciones CDATA, por ejemplo el significado de la palabra <command>apt</command> podría escribirse:

<sig id="apt.linux0" fecha="17/02/2003">
<![CDATA[
Método de acceso que
<literal>dselect</literal> soporta y que permite especificar 
los repositorios en el archivo 
<filename>/etc/apt/sources.list</filename>.
]]>
</sig>