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

XML/XSL et SOAP Discussion :

aide création xml


Sujet :

XML/XSL et SOAP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2004
    Messages : 149
    Par défaut aide création xml
    Bonjour,

    J'aimerais créer un fichier xml selon le modèle suivant.

    J'ai un club de foot avec différents groupes et dans chaque groupe différents athlètes.

    Ce qui correspond à cela si je ne me trompe pas :
    <TEAM1>Equipe1</TEAM1>
    <ATHLETE1>Paul</ATHLETE1>
    <ATHLETE2>Nestor</ATHLETE2>
    <TEAM2>Equipe2</TEAM2>
    <ATHLETE1>Eric</ATHLETE1>
    <ATHLETE2>Nicolas</ATHLETE2>

    Dans cette version, un athlète ne peut appartenir qu'à un seul groupe. J'aimerais pouvoir faire appartenir des athlètes à plusieurs groupes.

    Merci pour votre aide

  2. #2
    Membre expérimenté
    Avatar de VforVincent
    Homme Profil pro
    Doctorant (EPUB 3.0)
    Inscrit en
    Avril 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Doctorant (EPUB 3.0)
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 115
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <TEAM1>Equipe1</TEAM1>
    <ATHLETE1>Paul</ATHLETE1>
    <ATHLETE2>Nestor</ATHLETE2>
    <TEAM2>Equipe2</TEAM2>
    <ATHLETE1>Eric</ATHLETE1>
    <ATHLETE2>Nicolas</ATHLETE2>
    En lisant ce code, je n'ai pas l'impression que tes athlètes appartiennent à un groupe. Visuellement, on a bien un "ordre" d'apparition qui sous-entendrait qu'effectivement Paul et Nestor sont dans la Team 1, Eric et Nicolas dans la Team 2. Mais le XML n'a pas d'oeils, tout se joue par l'arborescence.

    Une première modification serait donc d'ajouter de la profondeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <TEAM id="Equipe1">
    <ATHLETE1>Paul</ATHLETE1>
    <ATHLETE2>Nestor</ATHLETE2></TEAM>
    <TEAM id="Equipe2">
    <ATHLETE1>Eric</ATHLETE1>
    <ATHLETE2>Nicolas</ATHLETE2></TEAM>
    Désormais on comprend très clairement l'appartenance à telle ou telle équipe. Mais, tu aimerais qu'un joueur puisse être dans plusieurs équipes. Je propose donc deux solutions :

    1) Ton "référentiel" (ce sur quoi porte principalement ton code) est les équipes : les joueurs sont donc des sous-éléments de <TEAM>. Dans ce cas, tu dois répéter les joueurs dans chaque équipe d'appartenance, en ajoutant par exemple un identifiant unique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <TEAM id="Equipe1">
    <ATHLETE1>Paul</ATHLETE1>
    <ATHLETE2 id="Nestor1">Nestor</ATHLETE2></TEAM>
    <TEAM id="Equipe2">
    <ATHLETE1>Eric</ATHLETE1>
    <ATHLETE2 id="Nestor1">Nestor</ATHLETE2></TEAM>
    L'identifiant Nestor1 permet de savoir dans quelle(s) équipe(s) ce joueur apparaît.

    2) Ton "référentiel" est les joueurs : sa ou ses équipes d'appartenance est une information parmi d'autres (sa taille, son âge, etc.). Dans ce cas, il faut inverser la hiérarchie :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <ATHLETE>
    <NAME>Paul</NAME>
    <TEAM id="Equipe1"/>
    </ATHLETE>
    <ATHLETE>
    <NAME>Nicolas</NAME>
    <TEAM id="Equipe1"/>
    </ATHLETE>
    <ATHLETE>
    <NAME>Nestor</NAME>
    <TEAM id="Equipe1"/><TEAM id="Equipe2"/>
    </ATHLETE>
    <ATHLETE>
    <NAME>Paul</NAME>
    <TEAM id="Equipe1"/>
    </ATHLETE>
    En espérant que tout ceci puisse t'aider. Ce que je propose est encore hautement critiquable, je pense qu'il faudrait limiter le nombre de balise (TEAM plutôt que TEAM1 ou TEAM2, ATHLETE plutôt que ATHLETE1 ou 2, balisage des noms ou mise en attribut, etc.). J'ai inséré de-ci de-là ces petits changements.

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 580
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 580
    Par défaut
    Suivant les cas, il peut être intéressant, ou non, d'avoir aussi la liste des teams existantes (par exemple en prévision d'extension futures de données, ou pour aider à la validation.)

    Ça pourrait donner ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <club>
      <team id="Equipe1"/>
      <team id="Equipe2"/>
     
      <athlete teams="Equipe1">
        <nom>Paul</nom>
      </athlete>
      <athlete teams="Equipe2">
        <nom>Nestor</nom>
      </athlete>
      <athlete teams="Equipe1 Equipe2">
        <nom>Pierre</nom>
      </athlete>
    </club>
    où l'attribut teams serait un ID-REFS : une suite d'ids séparées par des whitespaces.

    Possible aussi de faire comme ça si du traitement par Xpath 1.0 est souhaitable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <club>
      <team id="Equipe1"/>
      <team id="Equipe2"/>
     
      <athlete>
        <nom>Paul</nom>
        <in-team ref="Equipe1"/>
      </athlete>
      <athlete>
        <nom>Nestor</nom>
        <in-team ref="Equipe2"/>
      </athlete>
      <athlete>
        <nom>Pierre</nom>
        <in-team ref="Equipe1"/>
        <in-team ref="Equipe2"/>
      </athlete>
    </club>
    Quoiqu'il en soit, XML n'ayant pas de structure de type relationnelle, on est obligé de passer par un mécanisme d'id /*références, qui devra être résolu par les programmes qui s'en servent.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Aide création requette MDX
    Par Tankian dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 23/05/2006, 17h23
  2. xml - création xml via php(mysql) - manque données
    Par Raiders dans le forum XQUERY/SGBD
    Réponses: 5
    Dernier message: 23/03/2006, 18h54
  3. [Aide] Construire XML / Recuperer ressources machine
    Par JamesP dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 16/01/2006, 18h56
  4. demande aide pour XML/XSL
    Par Jarod51 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 11/01/2006, 19h10
  5. Aide en XML svp
    Par crashyear dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 11/01/2006, 15h18

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