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

Format d'échange (XML, JSON...) Java Discussion :

Générer des classes Java à partir d'une description XML ou JSON


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut Générer des classes Java à partir d'une description XML ou JSON
    Bonjour,

    Je connais plutôt bien le langage Java, mais je l'utilise dans des runtimes allégés pour l'embarqué et donc je suis peu au fait des classes dispos sur PC. Je souhaite pouvoir décrire des hiérarchies de widgets avec des fichiers XML ou JSON (j'étais plutôt parti sur XML pour pouvoir fournir les XSD qui vont bien) et pouvoir générer du code Java à partir de ces descriptions.

    Un exemple pour clairement illustrer le propos.

    En entrée :
    Code GUI.xml : 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
    19
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <page class="MyPage">
        <content>
        	<layout class="MyLayout">
        		<widget class="MyLabel">
        			<position>
        				<x>15</x>
        				<y>15</y>
        			</position>
        		</widget>
        		<widget class="MyButton">
        			<position>
        				<x>30</x>
        				<y>40</y>
        			</position>
        		</widget>
        	</layout>
        </content>
    </page>

    En sortie :
    Code MyPage.java : 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
    19
    package com.gradot.custom;
     
    public class MyPage extends Page {
     
    	private MyLayout myLayout;
    	private MyLabel myLabel;
    	private MyButton myButton;
     
    	public MyPage() {
    		myLayout = new MyLayout();
    		myLabel = new MyLabel();
    		myLabel.setPos(15, 15);
    		myLayout.add(myLabel);
    		myButton = new MyButton();
    		myButton.setPos(30, 40);
    		myLayout.add(myButton);
    	}
     
    }

    On m'a parlé de JAXB, j'ai regardé un peu mais je n'ai pas l'impression que ça réponde au problème. De ce que j'ai compris, JAXB permet de générer des objets Java à partir d'un XML de description mais aussi d'une classe de référence annotée. Or, je souhaite générer une classe (le fichier Java) et non une instance. Me suis-je tromper ? JAXB peut-il répondre à mon problème ? Si je ne me suis pas trompé, connaitriez-vous des outils ou bibliothèques qui peuvent m'aider à faire ça ?

    Merci pour vos lumières !

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    En cherchant sur le net, j'ai trouvé un outil qui fait partie d'Eclipse Modeling Framework : Jet. Savez-vous si c'est un outil répandu ou un truc totalement obscur d'EMF ? J'ai vu qu'il y a Jet 2, encore plus obscur...

    J'entrevois des possibilités en combinant les Jet et JAXB mais ça me semble un peu lourd.

  3. #3
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    EMF est un méta-projet concernant la modélisation (création / manipulation de modèle, voir MDA).

    Je connais pas tous les sous-projets mais il y a une partie consacrée à la transformation de modèle en texte. C'est ce genre de moteur qui est utilisé pour générer des fichiers Java.

    Si tu veux générer dynamiquement des classes Java, tu peux regarder du côté des bibliothèque de "ByteCode engineering" (ex: BCEL, ASM, Javassist ou cglib.

    Si c'est pour faire de la description d'interface, tu devrais regarder du côté de JavaFX.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

Discussions similaires

  1. Générer des classes Java à partir de xsd avec patterns
    Par Danicela dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 30/10/2012, 17h58
  2. Générer mes classes Java à partir de la DTD
    Par Lyuna dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 08/02/2010, 10h21
  3. Générer des variables Kettle à partir d'une table
    Par FBSVG dans le forum kettle/PDI
    Réponses: 10
    Dernier message: 17/07/2009, 16h07
  4. Réponses: 5
    Dernier message: 18/11/2006, 14h26
  5. Générer une classe java à partir d'une autre
    Par hebmaster dans le forum Général Java
    Réponses: 5
    Dernier message: 29/05/2006, 16h09

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