On Nov 01, 2005, at 00:43, Sylvain Wallez wrote:
> Quelque chose du genre:
>
> not (//*[local-name() = local-name(current()) and
> namespace-uri() = namespace-uri(current()) and
> generate-id() != generate-id(current())])
>
> (tapé vite fait dans le mail et pas testé!)
En gros c'est l'idée, sauf qu'il n'y a pas besoin de tester que ce
n'est pas le même noeud. Sachant que tout le document est traité
linéairement (Schematron peut être implémenté via une conversion en
XSLT), la règle suivante suffit:
preceding::*[not( local-name() = local-name(current()) and
namespace-uri() = namespace-uri(current()) )]
Ce qui parait long c'est qu'en XPath on est obligé de tester les deux
composants du nom séparemment, avec une fonction d'extension n:same-
name(), ça serait tout simplement:
preceding::*[not( n:same-name(., current()) )]
--
Robin Berjon
Senior Research Scientist
Expway, http://expway.com/
--
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 Tue Nov 1 09:11:16 2005