From: Pierre Attar (patt@tireme.fr)
Date: 21/09/2000 - 10:43
At 12:12 21/09/2000, Eric wrote:
>Bonjour Pierre,
>
> > J'essaye d'utiliser des attributs prédéfinis pour formatter des blocks
> > (fo:block) et n'arrive pas à adresser une variable dans un QName :
>
>C'est normal, c'est interdit ;=)
>
>Lorsque la spécification XSLT indique qu'une valeur (comme c'est la cas
>pour les "attribute-sets" est un QNAME, c'est que XSLT attend une chaine
>de caractères qui soit elle même un QNAME (c'est à dire un nom au sens
>XML) donc une constante.
Bien, je comprend la réponse. Du coup, j'ai un problème d'ordre
méthodologique lié à l'expression de programmes selon des arbres bien formés.
En toute logique, ce que je voudrais faire serait :
<xsl:template match="S1|S2">
<xsl:choose>
<xsl:when test="name()='S1'">
<fo:block xsl:use-attribute-set="{$attrSet}">
</xsl:when>
<xsl:when test="name()='S1'">
<fo:block xsl:use-attribute-set="{$attrSet}">
</xsl:when>
</xsl:choose>
<xsl:apply-templates />
</fo:block>
</xsl:template>
Mais cela ne marche pas car ce n'est pas un arbre bien formé, en ce qui
concerne le fo:block. Pourtant, c'est quand même ce que l'on veut assez
souvent faire : agir sur les attributs d'un élément seulement.
On y arrive, quand on peut décaler à un niveau inférieur le choose ... mais
pour le coup, je ne vois pas comment déclarer l'élément puis, à
l'intérieur, mettre en place mon choose.
En effet, je ne vois pas où, dans la spécification, il est possible d'avoir
quelque chose comme :
<fo:block>
<xsl:attribute>use-attribute-set ....</xsl:attribute>
</fo:block>
Si j'ai bien compris, use-attribute-set ne s'applique qu'a des éléments ou
a des attribute-set.
Note que ceci n'est pas une question réthorique, dans mon exemple, il y a 6
niveaux de titres et je fais beaucoup d'autres choses à l'intérieur.
Pierre
--
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:05 UTC
webmaster@xmlfr.org
|