我想为以下类生成xsd
public class Node{
private String value;
private List<Node> childrens;
}
为此类代码生成xsd架构的最佳实用程序是什么
总的来说,我想实现简单的树。我已经在使用jaxb从schema中生成类。
答案 0 :(得分:3)
如果您已经在使用JAXB,则可以使用schemagen
工具创建XSD:
还有Ant任务和Maven插件以自动方式执行相同操作。
答案 1 :(得分:1)
如果您使用的是Eclipse IDE,则可以按照此官方文档中的步骤进行操作:
Generating Schema from Classes
答案 2 :(得分:0)
还有一些Ant任务和Maven插件可以自动完成这些任务。
是的,确实有。在您亲自弄清楚之前,这里是Maven版本:
(1)将Maven插件添加到您的pom.xml
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>schemagen</id>
<goals>
<goal>schemagen</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- Renaming default 'schema1.xsd' -->
<transformSchemas>
<transformSchema>
<uri>http://www.your.url/namespace/foo</uri>
<toFile>your-schema-name.xsd</toFile>
</transformSchema>
</transformSchemas>
</configuration>
</plugin>
...
<plugins>
<build>
(2)添加包裹信息(可选)类:
package-info.java
到您的(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;
(3)将XML注释添加到您的类中,例如
@XmlRootElement(name = "Container")
@XmlAccessorType(XmlAccessType.FIELD)
public class Container {
@XmlElement(name = "Info", required = true)
private Info info;
@XmlElement(name = "Unit")
private Unit unit;
...}
然后,您只需要执行maven构建,然后在目标文件夹中将找到xsd文件。