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 :

Binding et XSD associée à une classe Java "représentant un arbre"


Sujet :

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

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Binding et XSD associée à une classe Java "représentant un arbre"
    Bonsoir,

    J'ai une classe java "représentant un arbre" du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Classe Cl {
     
    String s1;
    String s2;
    List<Cl> l;
    }
    Je ne sais pas si je suis assez clair... Mais je voudrais créer le fichier XML de binding associé à cette classe et le XSD associé mais je ne sais pas trop comment procéder...

    Quelqu'un pourrait-il maider svp?

    Merci,

    A.You

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2009
    Messages : 169
    Points : 100
    Points
    100
    Par défaut
    Bonjour,

    Je ne suis pas certain d'avoir bien compris ta question.
    Cependant, s'il s'agit de générer le XSD et un XML à partir de ta class voici un exemple :

    il te faut d'abord ajouter l'annotation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    @XmlRootElement
    Classe Cl {
     
    String s1;
    String s2;
    List<Cl> l;
    }
    Ensuite il te faut le code suivant pour générer le XSD :
    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
    19
    20
    21
    22
    23
    24
    25
    26
     
    public static void generateXSD(String destDir, String destName, Class<?> classe) {
    	final File baseDir = new File(destDir);
     
    	class MySchemaOutputResolver extends SchemaOutputResolver {
    		private String fileName;
    		public MySchemaOutputResolver(String fileName) {
    			this.fileName = fileName;
    		}
    		public Result createOutput(String namespaceUri, String suggestedFileName) throws IOException {
    			return new StreamResult(new File(baseDir, this.fileName));
    		}
    	}
     
    	JAXBContext context;
    	try {
    		context = JAXBContext.newInstance(classe);
    		context.generateSchema(new MySchemaOutputResolver(destName));
    	} catch (JAXBException e1) {
    		// TODO Auto-generated catch block
    		e1.printStackTrace();
    	} catch (IOException e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    	}
    }
    et pour générer le XML, il te faut un pojo alimenté bien sûre et le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public static void generateXML(String destDir, String destName, Pojo classe) {
    	final File baseDir = new File(destDir + "\\" + destName);
    	JAXBContext context;
    	try {
    		context = JAXBContext.newInstance(Affaire.class);
    		Marshaller marshall = context.createMarshaller() ;
    		marshall.marshal(classe, baseDir) ;
    	} catch (JAXBException e1) {
    		// TODO Auto-generated catch block
    		e1.printStackTrace();
    	}
    }
    Voilà, j'espère avoir répondu à ta question.

    HadanMarv

Discussions similaires

  1. [JAXB] comment traduire un XSD à une class java?
    Par sakli dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 19/02/2008, 16h08
  2. Réponses: 3
    Dernier message: 09/04/2006, 13h04
  3. appel d'une class java en javascript ou autre
    Par tit_oune dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/04/2006, 15h24
  4. [Tomcat]Executer une classe JAVA au demarrage de TOMCAT
    Par dehbi dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 18/08/2005, 14h23
  5. Réponses: 13
    Dernier message: 25/03/2005, 11h00

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