From: Pierre Attar (patt@tireme.fr)
Date: 20/09/2001 - 16:08
Bonjour,
Je suis toujours sur mon vieux cheval de battaille : documenter des
schémas. Pour ce faire, j'utilise la DTD docbook (db:) à laquelle je
rajoute mes éléments (sd:) qui pointent sur la DTD des schémas (xs:). Tout
cela fonctionne, et j'ai créé un fichier qui parse, avec xalan, xmlspy et epic.
Cela donne un fichier xml de la forme :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sd:schemaDoc PUBLIC
"http://www.tireme.fr/XMLSchema/documentation/V1/dtd/"
"../models/dtds/schemaDoc.dtd" [
<!ENTITY % local.article.attrib "
xmlns CDATA #IMPLIED
xmlns:tbl CDATA #IMPLIED
xmlns:sd CDATA #IMPLIED
xmlns:xs CDATA #IMPLIED
">
<!ENTITY schema SYSTEM "./schema.xml">
]>
<sd:schemaDoc xmlns="http://www.oasis-open.org/docbook/xmlschema/4.1.2"
xmlns:sd="http://www.tireme.fr/XMLSchema/documentation/V1/"
xmlns:tbl="http://www.oasis-open.org/tables/exchange/1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<title>Mon titre</title>
...
<para>La DTD commence toujours par l'élément <sd:elemRef
linkend="PUBLICATION"/> de plus haut niveau.</para>
<xs:schema>
...
</xs:schema>
</sd:schemaDoc>
Maintenant, mon problème est lié aux feuilles de style de présentation et
aux espaces de nom.
Si j'écris la feuille de style suivante :
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.oasis-open.org/docbook/xmlschema/4.1.2"
xmlns:sd="http://www.tireme.fr/XMLSchema/documentation/V1/"
xmlns:tbl="http://www.oasis-open.org/tables/exchange/1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xsl:template match="*">
<xsl:message>
<xsl:text>pas de template pour </xsl:text>
<xsl:value-of select="name(.)"/>
<xsl:text> (</xsl:text>
<xsl:value-of select="namespace-uri(.)"/>
<xsl:text>).</xsl:text>
</xsl:message>
<font color="red">
<xsl:text><</xsl:text>
<xsl:value-of select="name(.)"/>
<xsl:text>></xsl:text>
<xsl:apply-templates/>
<xsl:text></</xsl:text>
<xsl:value-of select="name(.)"/>
<xsl:text>></xsl:text>
</font>
</xsl:template>
<xsl:template match="para">OUI !!!!!
<xsl:apply-templates/></xsl:template>
</xsl:stylesheet>
L'élément para n'est jamais atteint. Pourtant, n'étant pas préfixé, il est
supposé êtr dans l'espace de noms courant de docbook.
C'est d'ailleurs bien ce que me dit le message :
pas de template pour para (http://www.oasis-open.org/docbook/xmlschema/4.1.2).
Si en revanche je déclare l'espace de noms docbook avec un préfixe (db) :
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.oasis-open.org/docbook/xmlschema/4.1.2"
xmlns:db="http://www.oasis-open.org/docbook/xmlschema/4.1.2"
xmlns:sd="http://www.tireme.fr/XMLSchema/documentation/V1/"
xmlns:tbl="http://www.oasis-open.org/tables/exchange/1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xsl:template match="*">
<xsl:message>
<xsl:text>pas de template pour </xsl:text>
<xsl:value-of select="name(.)"/>
<xsl:text> (</xsl:text>
<xsl:value-of select="namespace-uri(.)"/>
<xsl:text>).</xsl:text>
</xsl:message>
<font color="red">
<xsl:text><</xsl:text>
<xsl:value-of select="name(.)"/>
<xsl:text>></xsl:text>
<xsl:apply-templates/>
<xsl:text></</xsl:text>
<xsl:value-of select="name(.)"/>
<xsl:text>></xsl:text>
</font>
</xsl:template>
<xsl:template match="db:para">OUI !!!!!
<xsl:apply-templates/></xsl:template>
</xsl:stylesheet>
Tout marche bien.
Cela me contrarie car je préfèrerai largement la première solution qui
permet un réutilisation, sans modification, des feuilles de style associées
à DocBook.
J'imagine bien qu'il doit y avoir une solution ... juste, je ne vois pas
laquelle.
Des idées ?
Merçi,
------------
Pierre Attar (mailto:pattar@tireme.fr)
Projet "Mutualiser l'effort de montée en compétences sur XML"
http://www.mutu-xml.org/index.html
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC
webmaster@xmlfr.org
|