Le lundi 06 février 2006 à 18:33 +0100, greg@gregserveur.com a écrit :
> Je préfere bien preciser car j'ai pas envie de partir dans un truc qui
> n'est pa necessaire.
Je comprend cela :-) ...
Ce que vous cherchez à faire sort du cadre XSLT pur et c'est un domaine
où une base de données XML semblerait toute indiquée (c'est leur
vocation)!
> Les articles sont assez "volumineux", c'est des articles scientifiques et
> il risque d'y en avoir pas mal avec le temps. C'est pour ca qu'on a
> preferé crer plusieurs fichiers separés. De plus ca sera plus simple pour
> les mises à jour. Les articles ont été balisés afin de respecter une
> ontologie. (Realisé par des chercheurs de la facultés)
Certes, mais il faut bien comprendre que dès que vous utilisez la
fonction document() vous lisez l'ensemble du document concerné et que
pour faire votre tri vous devrez donc lire l'ensemble des documents à
chaque accès. Cela risque de devenir très long quand vous aurez pas mal
d'articles volumineux.
> Ce que je comprend pas c'est pourquoi on arrive a trier l'ensemble des
> titres de tous les articles (chaques titres est dans un fichier separé) et
> pourquoi on peut pas effectuer un filtrage de doublons.
Le tri a été possible en utilisant une fonctionnalité de la fonction
document() http://xmlfr.org/w3c/TR/xslt/#document.
Pour le filtrage des doublons, il faut utiliser soit des clés, soit la
fonction position(), soit l'axe preceding (ou preceding-sibling) et ces
fonctionnalités sont restreintes au cadre d'un document ce qui complique
les choses.
Il doit y avoir moyen de contourner cela en restant dans le document
"liste" le plus longtemps possible pour pouvoir utiliser soit ces
fonctionnalités, par exemple :
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:key name="auteur" match="fichier" use="document(.)/ARTICLE/id/@auteur"/>
<xsl:variable name="liste" select="/"/>
<xsl:template match="/">
<html>
<head>
<title>Liste par auteur</title>
</head>
<body>
<xsl:apply-templates select="/liste/fichier[count( . | key( 'auteur',
document(.)/ARTICLE/id/@auteur )[1] ) = 1]">
<xsl:sort select="document(.)/ARTICLE/id/@auteur"/>
</xsl:apply-templates>
</body>
</html>
</xsl:template>
<xsl:template match="fichier">
<h1>
<xsl:value-of select="document(.)/ARTICLE/id/@auteur"/>
</h1>
</xsl:template>
</xsl:stylesheet>
Par contre, les performances risquent de se dégrader assez vite au fur
et à mesure que vous rajouterez de gros documents.
> En tout cas, ca devient le bordel pour les doublons. Car encore les
> auteurs ca va. Ca m'inquite...Mais les concepts c'est deja plus emmerdants
> mais aprés c'est dans le moteur de recherche. Car il peux y avoir
> plusieurs resultats dans un même fichiers a des positions differentes...
> Il faut pas qu'un article apparaissent 2 fois des les resultats. Au
> maximum, dans le moteur de recherche il y aura x resultats : x etant le
> nombre d'articles referenciés.
>
> Quoique en reflechissant, on peut tres bien rien faire lorsque on
> rencontre un resultat et juste mettre à jour la pertinence. Il y aura donc
> autant de variable pertiance que de resultat... Comment on peux gérer ça ?
>
> On generera donc un structure avec les pertinance.. et on trira comme on
> en a discué dans un message précédent.
>
> D'ailleurs, peut-on créer et utiliser une structure dans un même fichier
> XSL ?
>
Avec une extension, oui.
> C'est nécessaire de créer le fichier ?
Oui et non, créer le fichier et ne le modifier que lorsque l'on ajoute
un article permet d'éviter de le créer à chaque requête.
C'est comme cela que fonctionne le site XMLfr...
Ceci dit, compte tenu des fonctions que vous voulez développer, une base
de données (XML ou SQL) semblerait bienvenue!
Cordialement,
Eric van der Vlist
--
GPG-PGP: 2A528005
If you have a XML document, you have its schema.
http://examplotron.org
------------------------------------------------------------------------
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
------------------------------------------------------------------------
-- Attached file included as plaintext by Ecartis --
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
iD8DBQBD55vEDvn+ZCpSgAURAnHsAJ9SYZF6yAl3ulXi1Dk8ja4u4bERTQCfYIrb
DNg2oNSwF+j6kVg/+sPVwVo=
=wqIb
-----END PGP SIGNATURE-----
--
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 Mon Feb 6 19:56:13 2006