从Java类生成XML Schema(或相反)

我想为我的项目生成一些XML Schema。 我有一些Java类,像这样:

package com.fortresswars.entity; import com.fortresswars.entity.properties.Armor; import com.jme3.scene.Spatial; public abstract class Object extends Thing { public Armor armor; public short hpMax; public boolean walkable = false; public short hpCurrent; public boolean alive; public Spatial object; public GameObject() { this.hpMax = hpMax; this.hpCurrent = hpMax; } public void setAlive(boolean alive) { this.alive = alive; } public void setHpCurrent(short hpCurrent) { this.hpCurrent = hpCurrent; } public void addHpCurrent(short hpToAdd) { this.hpCurrent += hpToAdd; } } 

 package com.fortresswars.entity; import com.jme3.texture.Image; import eu.javaspecialists.tools.apt.NoArgsConstructor; @NoArgsConstructor public abstract class Thing { Image icon; public Thing() { } } 

我想基于我的项目的那些类生成XML Schema,因此其他开发人员可以基于生成的Schema构建XML文件,他们可以在发送给我之前validation信息。 但我不知道什么是最好的,基于类生成XML Schema,或者基于XML Schema生成类。 请问,你能指出那里有哪些工具可以做到,以及使用这些方法的优势?

我知道有一个名为JAXB的工具,但我不知道它是否同时完成了这两个工作。

JAXB可以做到这两点

  1. 使用JAXB schemagen工具从Java类生成XML模式文件
  2. 使用JAXB xjc工具从XML模式文件生成JAXB类

在JDK bin目录中有一个名为schemagen的工具,它将java源/类文件转换为XML模式。 请参阅文档 。

是的,JAXB可以双向使用(使用注释)。 查看此问题以获取更多信息和一些链接。