sdx-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [sdx-users] Encodage / récupération fic hiers XML bruts


From: Pierrick Brihaye
Subject: Re: [sdx-users] Encodage / récupération fic hiers XML bruts
Date: Thu, 02 Oct 2003 09:03:56 +0200
User-agent: Mozilla/5.0 (Windows; U; Win98; fr-FR; rv:1.0.2) Gecko/20030208 Netscape/7.02

Bonjour,

En effet, la solution était dans l'encodage d'url, ça fonctionne
avec ça:
        <xsl:stylesheet version="1.0"
                xmlns:url="http://www.jclark.com/xt/java/java.net.URLEncoder";
                exclude-result-prefixes="url">
puis:
        <a href="rech.xsp?q={url:encode(.)}>lien</a>

qui d'après ce que j'ai lu est une fonction non standard mais
présente dans pratiquement tous les processeurs XSLT.

A mettre dans les "tips and tricks" de SDX :-)

(mais ça ne nous dit pas pourquoi l'encodage d'url n'est pas
nécessaire pour les valeurs de sdx:field? Est-il effectué ailleurs
de façon automatique?)

Euh... je pensais avoir répondu. Mais je n'ai pa dû être assez clair :-)

Voilà, une XSL sort du HTML ; on utilise pour se faire "output-method".

Premier point : je suspecte fortement les transformateurs Cocoon d'ajouter *en interne* cette output-method lorsque le sérialiseur qu'il y a derrière est un sérialiseur HTML et ce quand bien même l'output-method est absente de la XSL source. Je pourrais trouver le code éventuellement :-)

Dès lors qu'on est en HTML, le processeur XSLT fait son travail et respecte les specs HTML (ou est censé les respecter).

Celles-ci mentionnent *explicitement* (v. la référence que j'ai donnée) que les href doivent être échappées. Par conséquent... le processeur échappe les href. Voilà pourquoi <a href=url"> est correctement gérée.

Par contre, <a toto="url"> ne fait pas partie des specs HTML. On a donc le comportement par défaut... et donc pas d'échappement.

Voilà.

A+

--
Pierrick Brihaye, informaticien
Service régional de l'Inventaire
DRAC Bretagne
mailto:address@hidden





reply via email to

[Prev in Thread] Current Thread [Next in Thread]