在 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();
}
}
}
}
我需要一些帮助!我正在尝试从 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();
}
}
}
}