从Java中的xsd生成类(Jaxb)

时间:2016-04-18 14:50:06

标签: java xml xsd jaxb

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

2 个答案:

答案 0 :(得分:1)

使用JDK随附的xjc命令:

  

将XML模式文件编译为完全注释的Java类。

答案 1 :(得分:0)

我设法做到了! 我将展示我的解决方案,以防有人遇到同样的问题。 我在一个方法中使用了ProcessBuilder,以便从java执行命令:

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

}

相关问题