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

Eclipse Modeling Discussion :

ecore et genmodel à partir d'un xsd


Sujet :

Eclipse Modeling

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 45
    Par défaut ecore et genmodel à partir d'un xsd
    Bonjour,

    J'aimerais savoir ceci :

    1- comment, dans un méta modèle généré à partir d'un xsd, spécifier qu'il n'y a qu'un seul élément racine possible ?

    2- dans le modèle généré, on trouve un objet "DocumentRoot" reprenant tout les éléments et attributs définis directement dans les schéma xml, à quoi sert il (en deux lignes) ?

    3- dans l'éditeur généré par EMF, je vois que certains attributs même marqués required et fixed, ne sont pas persistés, y a-t-il un paramètre du genmodel à modifier pour obtenir qu'ils soient persistés ?

    4- lorsqu'un un attribut est édité, puis sa valeur effacée, on se retrouve quand même dans le fichier généré avec quelque chose comme nomAttri=""
    y a-t-il un moyen de ne pas voir un attribut dans le fichier si la longueur de son contenu est nulle ?

    Merci d'avance pour votre aide.

  2. #2
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 45
    Par défaut
    Voici ce que finalement j'ai trouvé :

    Je ne crois pas que ce sont les solutions idéales mais c'est ce que j'ai pu trouver, vu le temps qui m'est imparti pour le faire :

    1- ce problème ce pose quand dans le schéma xsd plusieurs éléments sont déclarés directement comme fils de la balise <xsd:schéma/> alors que l'on ne s'attend qu'à un seul type de d'éléménts.
    il s'agit ici d'un problème de conception : si on est amené soi même à concevoir l'xsd, ne déclarer directement sous l'élément schéma que les éléments que l'on voudra voir dans la racine du document xml.

    ceci dit, lorsque l'on est confronté à des xsd déjà existant, et que l'on souhaite utiliser une génération via EMF, on peut modifier le ecore ainsi obtenu pour ne permettre que les élément désirés en racine :

    dans l'élément documentRoot du métamodèle ecore, effacer tout les éléments non désirés.

    2- à quoi sert le documentRoot ? pas d'idée précise, mais si on l'efface rien ne va plus! ( peut être sert il à méta modélisé la racine d'un document xml, mais j'avoue que la substance de cette phrase m'échappe)

    3-toucher le code java généré : effectuer un set explicite dans le constructeur de la classe modélisant l'élément en question pour chaque attribut voulu, prendre soin d'appeler la méthode qui effectue les notifications nécessaires (ou bien implémenter les notifications soi même)

    4-pas pu trouvé de paramètre ... par contre, on peut modifier le code java généré, ce que j'ai fais n'est pas élégant mais ça marche : dans les classe impl représentant le modèle métier, modifier les setter d'attributs :
    poser en précondition que la longueur de la nouvelle valeur ne soit pas nulle, sinon on ne set pas!
    encore mieux : rajouter le suffixe Gen aux setter, créer des méthodes du même nom faisant la vérification de la longueur et appelant ensuite le setMachinGen (voir EMF developper guide -> programmer's guides -> EMF framwork programmer's guide pour plus de détail sur la modification du code généré et l'utilisation du suffixe Gen --à peu près en milieu de page -- )

    Voilà, si quelqu'un a plus de précisions ou peut proposer des solutions plus élégantes, je suis preneur.

  3. #3
    Membre Expert
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Par défaut
    Salut keb83,

    Mon post va ne servir a rien car je ne pourrais pas te donner de reponses a tes problemes. Je voulais juste te remercier de tes posts qui sont tres enrichissant.

    Je connais ces problemes car j'ai fait des tests avec un schema XML + EMF Edit et j'ai pu constater tous les problemes que tu as souleve.

    Dans mon cas, etant donne que j'utilise WST (avec les Translator) , je n'ai pas besoin d'utiliser XMLResource pour enregistrer mon instance EMF (c'est mon editor XML StructuredTextEditor qui s'occupe de la sauvegarde + chargement de l'instance EMF) , mais je mets ces problemes dans ma TODO list.

    Tu n'es pas seul au monde! Je suis avec attention tes posts. Merci de ton energie.

    Angelo

Discussions similaires

  1. Créer structure base à partir de fichier xsd
    Par vallica dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 16/08/2006, 19h50
  2. [XSD] [XML/XSD] Générer puis valider à partir d'un XSD
    Par benben13 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 08/06/2006, 13h59
  3. Déduire un fichier XML vide à partir d'un XSD
    Par wozzz dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 21/04/2006, 11h04
  4. editeur permettant de creer un sample xml à partir d'un xsd
    Par émile-henri dans le forum Valider
    Réponses: 5
    Dernier message: 01/06/2005, 14h02
  5. Réponses: 2
    Dernier message: 27/05/2004, 00h40

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