Por partes:
el link sobre generar
xhtml estricto ya lo había visto por encima. Sobre el problema de generar xhtml estricto y el "type" de dice:
ol does not take a type attribute.
Pero no el cómo. No es un problema que me preocupe demasiado, porque podría evitar escribir listas ordenadas y ya está.
El segundo me resulta más molesto. El caso es que me he puesto un ejemplo reducido a la mínima expresión:
<?xml version='1.0' encoding="iso-8859-1"?>
<!DOCTYPE article PUBLIC "-//OASIS/DTD DocBook V4.3//EN"
"/usr/share/xml/docbook/schema/dtd/4.3/docbookx.dtd" >
<?xml-stylesheet type="text/xml"
href="/usr/share/xml/docbook/stylesheet/nwalsh/xhtml/docbook.xsl"?>
<article lang="es">
<title>Ejemplo</title>
<section>
<title>Primera seccion</title>
<informaltable summary="Una tabla asquerosa">
<tbody>
<tr>
<td>Nada de particular</td>
<td>Otra cosa</td>
</tr>
</tbody>
</informaltable>
</section>
</article>
Y ahora genero el xhtml:
bash$ xsltproc ejemplo.xml > ejemplo.html
y el código html de la tabla es:
<table summary="Una tabla asquerosa">
<tbody xmlns="">
<tr>
<td rowspan="1" colspan="1">Nada de particular</td>
<td rowspan="1" colspan="1">Otra cosa</td>
</tr>
</tbody></table>
Me aparece el dichoso atributo del namespace en tbody. En table, no; porque en el caso particular de informaltable, no se genera con un en htmltbl.xsl, sino con una teiqueta puesta a pelo en formal.xsl. Pero en el resto de los elementos de la tabla. sí actúa el y desbarata el namespace. De hecho, si meto un elemento que no sea propio de una tabla (por ejemplo, meto la palabra "cosa" en un para generar un ), ocurre algo así:
<table summary="Una tabla asquerosa">
<tbody xmlns="">
<tr>
<td rowspan="1" colspan="1">Nada de particular</td>
<td rowspan="1" colspan="1">Otra <span
xmlns="http://www.w3.org/1999/xhtml">cosa</span></td>
</tr>
</tbody>
</table>
Es decir, el elemento , que no se genera con el del resto de la tabla, vuelve a estar en el namespace adecuado. Aparece el atributo que refiere su namespace, porque su elemento contenedor no lo está.
Por cierto que en debian, la versión es la 1.66.noséqué. He probado a bajarme la última de sourceforge (1.68.1) y generarlo con ella y me sigue pasando lo mismo.
Una última cosa, uso porque me resultó sencillo localizar qué parte de las hojas xsl se encargaba de él. Con me sucede lo mismo excepto porque es en la propia etiqueta de xhtml en la que tengo el problema del namespace.
Bueno, esa era la penúltima cosa. La última es ¿tiene setido lo que dije? Es decir, como la hoja xsl hace un de los elementos de la tabla conserva el namespace de los elementos del documento .xml. En este caso, ninguno ("").
EDITO: No sé exactamente cómo generas tú el manual de zonasiete.org, ni cómo es porque no encuentro las fuentes docbook. Yo he probado a hackear un poco htmltbl.xsl y sustituir todos los por . No sé si me dará algún otro problema, pero ahora los namespace me van perfectamente. Incluso la variante del ejemplo en la que metía un phrase dentro.