在 Java 中从 xsd 生成 类 (Jaxb)

Generate classes from xsd in Java ( Jaxb )

我需要一些帮助!我正在尝试从 java 中的 xsd 生成 classes(使用 eclipse),但我不知道该怎么做,我在许多教程中进行了搜索,但它们都谈到了创建首先是 class,然后是 xsd。 我想使用 Jaxb 从 xsd 自动创建 classes。 你有什么建议或教程可以帮助我吗?

使用JDK附带的xjc命令:

Compiles an XML schema file into fully annotated Java classes.

我做到了! 我会展示我的解决方案,以防有人遇到同样的问题。 我在方法中使用了 ProcessBuilder 以执行来自 java 的命令:

public class FromXmlToJava 实现 Runnable {

private final InputStream inputStream;

 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();
            }
}
}

}