用于从java类生成xsd的实用程序

我想为以下类生成xsd

public class Node{ private String value; private List childrens; } 

为此类代码生成xsd架构的最佳实用程序是什么

一般来说,我想实现简单的树。 我已经在使用jaxb从schema中生成类。

如果您已经在使用JAXB,则可以使用schemagen工具创建XSD:

还有Ant任务和Maven插件,用于以自动方式执行相同操作。

您可以使用JAXBContext上的generateSchema API生成XML架构:

 import java.io.IOException; import javax.xml.bind.*; import javax.xml.transform.Result; import javax.xml.transform.stream.StreamResult; public class Demo { public static void main(String[] args) throws Exception { JAXBContext jc = JAXBContext.newInstance(Node.class); jc.generateSchema(new SchemaOutputResolver() { @Override public Result createOutput(String namespaceURI, String suggestedFileName) throws IOException { return new StreamResult(suggestedFileName); } }); } } 

还有Ant任务和Maven插件,用于以自动方式执行相同操作。

是的确有。 在你必须自己解决之前,这是maven版本:

    org.codehaus.mojo jaxb2-maven-plugin 2.4   schemagen  schemagen        http://www.your.url/namespace/foo your-schema-name.xsd     ...   

另请注意,您在包中添加了package-info.java 。 该文件包含包名:

 @javax.xml.bind.annotation.XmlSchema(namespace = "http://www.your.url/namespace/foo", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED) package url.your.namespace.foo;