IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XQUERY/SGBD XML Discussion :

XQuery et collections


Sujet :

XQUERY/SGBD XML

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 28
    Points : 10
    Points
    10
    Par défaut XQuery et collections
    Bonjour,

    J'ai une question à propos de XQuery et d'un fichier collection.xml qui regroupe plusieurs fichiers à analyser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <collection>
       <doc href="student1.xml"/>
       <doc href="student2.xml"/>
       <doc href="student3.xml"/>
       </collection>
    Cf
    http://www.abbeyworkshop.com/howto/x...ics/index.html

    Dans mon code java, j'ai la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <major_list>
       {
           for $doc in collection('student_collection.xml')
           return $doc/student/major
       }
       7:</major_list>
    Ma question est la suivante : est il possible de paramétrer XQuery pour que le fichier de collection ait une structure différente (ajout d'autres éléments dans le fichiers, modification des balises collection, doc et des attributs href) ?

    Par exemple, le fichier pourrait être le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <collection>
       <folder>
          <file path="student1.xml"/>
          <file path="student2.xml"/>
          <file path="student3.xml"/>
          </collection>
       </folder>
       <a />

  2. #2
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Si vous venez de commencer à travailler sur fn:collection() à partir de ligne de commande comme celui présenté dans le tuto, je dirais d'abord cette fonction est laissée une très parti à l'implémentation. En Saxon, avec la ligne de commande, on est en fait utiliser une Collection classe et plus précisément en appellant StandardCollectionURIResolver. Dans le cas plus général, dans un programme java, on peut en principe implémenter un Resolver plus général pour faire ça, CollectionURIResolver au lieu de StandardCollectionURIResolver. Donc, en principe, c'est possible mais pas possible avec le moyen d'une ligne de commande. Mais ça reste au niveau de principe, je ne peux pas vous donner de conseil concret comment faire.

    Si vous voulez le faire avec une ligne de commende intérpréter un fichier xq, vous pouvez pourtant le faire comme ça, mais cette fois, vous débarrassez même la fonction fn:collection(). Du coup, vous débarrassez la dépendance d'implémentation en échangeant quelque chose qui peut être moins optimisée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    (: for $doc in collection('student_collection.xml') :)
    for $path in doc('student_collection.xml')/collection/folder/file/@path
    let $doc:=doc($path)
    return $doc/student/major
    Voilà.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 28
    Points : 10
    Points
    10
    Par défaut
    Merci pour ta réponse
    En fait, je me suis basé sur l'exemple pour tout ce qui concerne les données à traiter (fichiers xml et requête)

    Sinon, je dois utiliser un programme Java et non la ligne de commande.

    En fait, l'idée est d'utiliser comme fichier xml qui liste la collection un fichier déjà utilisé par autre outil et donc de pouvoir utiliser une structure différente que celle de l'exemple.

  4. #4
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Bien entendu. Mais, il me semble j'ai répondu la question de tout les angles. Pas ça? ou bien tu n'as rien compris?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 28
    Points : 10
    Points
    10
    Par défaut
    Je t'avoue que j'étais un perdu dans ton message et je n'avais pas bien saisi ce qui concernait le mode ligne de commande du mode java...

    Si je résume, si je veux remplacer l'élément collection du fichier xml (fichier listant les autres fichiers à analyser) il faut implémenter notre propre classe Resolver et utiliser cette dernière dans le programme java ?

  6. #6
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Tu peux concentrer au deuxième paragraphe: le premier paragraphe semble ne pas être pour toi pour le mement.

    Mais la solution explicitée quand même exige une certaine compréhension générale comment fonctionne xquery en général sans quoi je ne peux rien faire.

Discussions similaires

  1. [XQUERY] xquery collection
    Par SuperArbre dans le forum XQUERY/SGBD
    Réponses: 4
    Dernier message: 08/01/2013, 16h22
  2. requete xquery sur une collection ??
    Par bassem-ca dans le forum Oracle
    Réponses: 3
    Dernier message: 24/03/2010, 16h55
  3. xquery sur une collection
    Par bassem-ca dans le forum Débuter
    Réponses: 2
    Dernier message: 09/03/2010, 13h33
  4. Comment créér une collection sous Delphi
    Par PsyKroPack dans le forum Langage
    Réponses: 6
    Dernier message: 11/02/2003, 13h20
  5. [VB6] Modifier la clé d'un élément d'une collection
    Par Ricou13 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 21/11/2002, 14h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo