2016-04-18 18 views
1

Ich brauche etwas Hilfe bitte! Ich versuche, Klassen von xsd in Java zu generieren (mit Eclipse) und ich weiß nicht, wie es geht, ich habe in vielen Tutorials gesucht, aber alle sprechen davon, zuerst die Klasse zu erstellen und dann das xsd zu verwenden. Ich möchte automatisch die Klassen von einem xsd mit Jaxb erstellen. hast du irgendwelche Vorschläge oder Tutorials, die mir bitte helfen können?Generiere Klassen von xsd in Java (Jaxb)

+0

Sie in mit einem Werkzeug XMLBeans genannt aussehen könnte. Es ist ein wenig alt und veraltet, aber für ein Studentenprojekt sollte es in Ordnung sein (eigentlich verwenden wir es in der Produktion, aber erzähl es niemandem). –

+0

Vielen Dank für Ihre Antwort, aber es ist kein Studentenprojekt, es ist für meine Arbeit, ich muss eine Anwendung erstellen, die die eingegebenen XML-Dateien liest und ihren Inhalt in einer Datenbank speichert (deshalb muss ich jaxb verwenden, um Klassen zu erstellen die Xml) –

Antwort

0

Ich habe es geschafft! Ich werde meine Lösung zeigen, falls jemand das gleiche Problem hat. verwendet i Process bei einem Verfahren, um den Befehl von Java auszuführen:

public class FromXmlToJava implementiert Runnable {

privaten final Inputinput;

FromXmlToJava (InputStream inputStream) 
    { 

    this.inputStream = inputStream; 

    } 

private BufferedReader getBufferedReader(InputStream is) 
    { 
     return new BufferedReader(new InputStreamReader(is)); 
    } 

public void run() { 

    BufferedReader br = getBufferedReader(inputStream); 
    String ligne = ""; 
    try 
    { 
     while ((ligne = br.readLine())!= null) 
     { 


      System.out.println(ligne); 
     } 


    } catch (IOException e) 

     { 

      e.printStackTrace(); 
     } 


} 

public static class Main { 
    // chemin de l'emplacement des classes generées 

    public static final String CHEMIN = "C:\\Users\\****"; 
    public static void main(String[] args) { 
      try { 
       ProcessBuilder pb = new ProcessBuilder("cmd.exe", "/C", 
         "C:\\Users\\***\\xjc.bat ***.xsd"); 

       // modifier le repertoire d'execution de la commande 

       pb.directory(new File(CHEMIN)); 



       /* Map env = pb.environment(); 
       for (Entry entry : env.entrySet()) { 
        System.out.println(entry.getKey() + " : " + entry.getValue()); 
       } 

       env.put("MonArg", "Valeur"); 
       */ 
       Process p = pb.start(); 
       FromXmlToJava fluxSortie = new FromXmlToJava(p.getInputStream()); 
       FromXmlToJava fluxErreur = new FromXmlToJava(p.getErrorStream()); 
       new Thread(fluxSortie).start(); 
       new Thread(fluxErreur).start(); 
       p.waitFor(); 

      } catch (IOException e) { 
       e.printStackTrace(); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 
} 
} 

}

1

Verwenden Sie den xjc Befehl, der mit dem JDK kommt:

Kompiliert eine XML-Schema-Datei in vollständig kommentierten Java-Klassen.

+0

Vielen Dank für Ihre Antwort, kann ich eine Anwendung erstellen, die es automatisch tun? Kennen Sie ein Tutorial, das mir helfen kann? Bitte –

+0

Sie können die ausführbare Datei 'xjc' ausführen, oder Sie können sie direkt aufrufen, indem Sie' tools.jar' (aus dem JDK 'lib'-Ordner) zu Ihrem Klassenpfad hinzufügen und dann' com.sun.tools.internal.xjc.Driver aufrufen .main (String [] args) '. – Andreas