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 :

Factorisation d'arbres XML


Sujet :

XML/XSL et SOAP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut Factorisation d'arbres XML
    Hello,

    Je travaille sur un moteur de rendu 3D constitué de plusieurs nœuds décrivant des géométries, des caméras, etc. Chacun de ces nœuds est doté de paramètres, auxquels sont affectés des valeurs par défaut.

    J'ai récupéré la description de ces nœuds, et les ai formalisé en XML. Je dispose donc d'un document XML, dont chaque élément situé juste en-dessous de la racine décrit un nœud de ce moteur.

    Les informations de ces nœuds sont souvent factorisables.


    Exemple :

    disc
    center
    radius

    tube
    center
    radius
    height


    Connaîtriez-vous un moyen / outil pour effectuer cette factorisation, afin que je puisse via XSLT convertir tout cela XMI (format d'échange UML), puis créer un diagramme de classe présentant la nature arborescente de ces noeuds ?

    Voilà. J'espère que j'ai été clair.

    Merci.

    PS : Je travaille de préférence en Java (pour ce qui concerne le XML).

  2. #2
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Bonjour,

    qu'appelles-tu "factorisation" ? Etablir qu'il y a une relation d'héritage entre ton disque et ton tube ? Si c'est le cas, ce formalisme sera implicite dans le code XSLT, mais n'apparaîtra pas dans ton XML qui n'est qu'une collection de noeuds.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    Hello,

    Tu as bien compris ce que je désigne par factorisation.
    Si ce n'est que je ne veux pas établir, mais repérer les relations d'héritage.

    En revanche, je ne comprend pas ce que tu entends par "ce formalisme sera implicite dans le code XSLT".

    Veux-tu dire qu'on pourrait déceler les héritages par le biais du XSLT ?

    Merci.

  4. #4
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    OK, je pense avoir compris, ton document XML est la description du modèle, pas une instance de ce modèle. Tu as actuellement ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <node name="disc">
     <param name="center" />
     <param name="radius" />
    </node>
    <node name="tube">
      <param name="center" />
      <param name="radius" />
      <param name="height" />
    </node>
    et tu voudrais cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <node name="disc">
      <param name="center" />
      <param name="radius" />
      <node name="tube">
        <param name="height" />
      </node>
    </node>
    C'est bien cela ? Si c'est le cas, c'est dans les cordes de XSLT, à condition que le modèle en soit pas trop complexe et qu'il n'y ait pas d'ambiguïté possible.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    Pour le code dont je dispose actuellement, tu as tout bon.

    En revanche, pour le code de sortie, j'aimerais plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <abstract_node name="dudule">
     
      <param name="center" />
      <param name="radius" />
     
      <node name="disc"/>
     
      <node name="tube">
        <param name="height" />
      </node>
     
    </node>
    Pour "dudule", il faudrait un nom généré automatiquement par le XSLT, du style parent_node1, parent_node2, etc...

    Tu dis que c'est dans les cordes de XSLT, mais comment procéderais-tu ?

  6. #6
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Citation Envoyé par oodini Voir le message
    En revanche, pour le code de sortie, j'aimerais plutôt :
    Euh, là, c'est une autre paire de manches...

    Dans ma proposition, il faut repérer les nodes "racines" dont tous les paramètres sont présents dans d'autres nodes, et ce récursivement.

    Dans la tienne, tu introduis un abstract_node qui n'existe pas dans le document source et qu'il va falloir inférer en raisonnant non plus au niveau de chaque node mais au niveau de chaque paramètre. Quant à la numérotation automatique des abstract_node, elle introduit une complexité supplémentaire. Faisable je pense, mais alors pas trivial du tout.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/06/2005, 11h00
  2. [XSLT] Arbre XML -> Arbre HTML
    Par FT dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 29/09/2004, 09h49
  3. [XML] comment récupérer un arbre xml posté par http ?
    Par tomperso dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 02/07/2004, 10h29
  4. Arbre XML
    Par Neuromancien2 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 13/02/2004, 15h41
  5. XSL pour visualiser arbre XML sous forme de tableau en HTML
    Par mattmat dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 28/03/2003, 10h55

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