Cliquez ici.
Accueil
 chercher             Plan du site             Info (English version) 
L'histoire de XML s'écrit en ce moment même. XMLfr vous aide à la suivre et à en dégager les tendances.Les listes de discussions XMLfr sont à votre disposition pour réagir sur nos articles ou simplement poser une question.Si vous ètes passionnée(e) par XML, pourquoi ne pas en faire votre métier ?XMLfr n'est heureusement pas le seul site où l'on parle de XML. Découvrez les autres grâce à XMLfr et à l'ODP.Les partenaires grâce auxquels XMLfr peut se développer.Pour tout savoir sur XMLfr.XMLfr sans fil, c'est possible !Pour ceux qui veulent vraiment en savoir plus sur XML.L'index du site.
 Commentaires et questions non techniques.Commentaires et questions techniques.

 
Cliquez ici.

xml tech : Technologies XML

[xml-tech] Re: Feuille de style XSLT?

[xml-tech] Re: Feuille de style XSLT?

Auteur: Eric van der Vlist <vdv@dyomedea.com>
Date: 16/12/2004 - 09:53
X-Mailer: Evolution 2.0.2

Bonjour,

Le jeudi 16 décembre 2004 à 10:42 +0100, Oscar NIYONKURU a écrit :
> J'ai une feuille de style j'ai 5 normalisations à mettre en place:
>
> 1. La transformation des miniscules en majuscules sans accents
> 2. La transformation des miniscules en majuscules avec accents
> 3. La suppression des caractères parasites
> 4. Le remplacement de l'espace par un tiret
> 5. La concaténation
>
> Dans ma feuille de style j'ai donc mis en place 5 fonctions:
>
> - translate(ch1,ch2):transformation des miniscules en majuscules sans
> accents
> - translate(ch1,ch2):transformation des miniscules en majuscules en
> tenant compte des accents
> - translate(normalize-space(arguments),chaine)::remplacement avec
> suppression de
> caractères superflus
> - concat(ch1,ch2):concaténation
> - substring(ch,indice1,indice2):extraction
>
> Le problème est que je suis obligé d'appeler chaque fois une de ces
> fonctions chaque fois qu'il y a une règle de normalisation à appliquer
> (ex:transformation des miniscules en majuscules sans accents,
> remplacement de l'espace par un tiret) ce qui fait que j'ai à certains
> endroits (à l'intérieur d'un même élement!!!!) une fonction utilisée
> plusieurs fois (bien sûr avec des arguments différents).
>
> Questions:
>
> 1. Pour éviter d'appeler chaque fois ces fonctions à plusieurs
> endroits, est-ce que vous savez s'il
> existe un moyen de déclarer des fonctions personnalisées que
> j'appelerai par exemple UPPER
> ( qui transformerait des miniscules en majuscules) ou une
> fonction concatener() (pour la
> concaténation), etc..et que je pourrai appeler chaque fois???

En XSLT 1.0, il n'est pas possible de définir des fonctions mais
uniquement des templates nommés (très lourds à appeler). Ce sera
possible en XSLT 2.0 (qui n'est pas encore une recommandation W3C).

> 2. Si oui comment je pourrai l'implémenter?
>
> 3. Je cherche à faire une transformation équivalente à celle de la
> fonction SQL decode d'ORACLE .
> Pour information je donne à ceux qui ne connaissent pas ORACLE cet
> exemple:
>
> SELECT job, sal,
> DECODE(job,'ANALYST', SAL*1.1,
> 'CLERK', SAL*1.15,
> 'MANAGER', SAL*1.20,
> SAL)
> REVISED_SALARY
> FROM emp;
> Cette fonction est équivalente à:
>
> if job='ANALYST' then REVISED_SALARY=SAL*1.1;
> ELSIF job = 'CLERK' THEN revised_salary = sal * 1,15 ;
> ELSIF job = 'MANAGER' THEN revised_salary = sal * 1,20 ;
> ELSE revised_sal = sal ;
>
>
> Je cherche une fonction qui me permettrait de faire une opération de
> ce gerne sans passer par les tests <xsl:when test="val1">, etc...

Pourquoi pas en passant par des templates ?

<xsl:apply-templates select="." mode="revised_salary"/>

.../...

<xsl:template match="*[job='ANALYST']" mode="revised_salary">
 <xsl:value-of select="sal * 1.1"/>
</xsl:template>

<xsl:template match="*[job='CLERK']" mode="revised_salary">
 <xsl:value-of select="sal * 1.15"/>
</xsl:template>
...

Cordialement,

Eric van der Vlist

-- 
Carnet web :
           http://eric.van-der-vlist.com/blog?t=category&a=Fran%C3%A7ais
------------------------------------------------------------------------
Eric van der Vlist       http://xmlfr.org            http://dyomedea.com
(ISO) RELAX NG   ISBN:0-596-00421-4 http://oreilly.com/catalog/relax
(W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema
------------------------------------------------------------------------
--
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)
Received on Thu Dec 16 10:54:04 2004

Archive générée par hypermail 2.1.8 le 31/12/2004 - 11:12 UTC

webmaster@xmlfr.org

 

xml tech

Discussions techniques au sujet de XML.

Cette liste est à votre disposition pour discuter en français de tout sujet technique lié à XML.



Devenez rédacteur <XML>fr et contribuez au développement du xml francophone !
Les documents publiés sur ce site le sont sous licence "Open Content"
Conception graphique
  l.henriot@online.fr  

Conception, réalisation et hébergement