从java对象实例生成XSD的框架
我需要一些框架来从java对象创建xsd。从java对象实例生成XSD的框架,java,jaxb,xsd,Java,Jaxb,Xsd,我需要一些框架来从java对象创建xsd。 我知道jaxb和xstream,但我不需要这些框架,因为这些框架是从java类XSD生成的,但我需要从java XSD实例的值生成。 例如: 我的java类: public class Example { public List<String> elements; } 这是我期望的xsd: <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/
我知道jaxb和xstream,但我不需要这些框架,因为这些框架是从java类XSD生成的,但我需要从java XSD实例的值生成。
例如:
我的java类:
public class Example {
public List<String> elements;
}
这是我期望的xsd:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3schools.com"
xmlns="http://www.w3schools.com"
elementFormDefault="qualified">
<xs:element name="something">
<xs:complexType>
<xs:sequence>
<xs:element name="a" type="xs:string"/>
<xs:element name="b" type="xs:string"/>
<xs:element name="c" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
您可以使用Maven工具 简单例子
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<id>schema1-xjc</id>
<goals>
<goal>xjc</goal>
</goals>
<configuration>
<schemaFiles>schema1.xsd</schemaFiles>
<packageName>com.example.foo</packageName>
<staleFile>${project.build.directory}/jaxb2/.schema1XjcStaleFlag</staleFile>
</configuration>
</execution>
</executions>
</plugin>
org.codehaus.mojo
您可以使用Maven工具
简单例子
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<id>schema1-xjc</id>
<goals>
<goal>xjc</goal>
</goals>
<configuration>
<schemaFiles>schema1.xsd</schemaFiles>
<packageName>com.example.foo</packageName>
<staleFile>${project.build.directory}/jaxb2/.schema1XjcStaleFlag</staleFile>
</configuration>
</execution>
</executions>
</plugin>
org.codehaus.mojo
您需要的不是XJC,而是一个不同的JAXB工具,即schemagen。
它的用法非常简单,解释也很清楚
作为一个例子,我尝试了以下方法:
Example.java
@XmlType(namespace=Namespaces.SOME_namespace,
比例={“a”、“b”、“c”})
@XmlAccessorType(XmlAccessType.FIELD)
公开课范例{
@XmlElement(必需=true,defaultValue=“requiredElementValue”)
私人字符串a;
@XmlAttribute(必需=true)
私有字符串b;
@XmlAttribute(必需=false)
私有字符串c;
}
pom.xml的相关部分
org.codehaus.mojo
jaxb2 maven插件
1.5
schemagen
schemagen
http://some/namespace
一些
myschema.xsd
**/*.爪哇
和输出->myschema.xsd
您需要的不是XJC,而是一个不同的JAXB工具,即schemagen。
它的用法非常简单,解释也很清楚
作为一个例子,我尝试了以下方法:
Example.java
@XmlType(namespace=Namespaces.SOME_namespace,
比例={“a”、“b”、“c”})
@XmlAccessorType(XmlAccessType.FIELD)
公开课范例{
@XmlElement(必需=true,defaultValue=“requiredElementValue”)
私人字符串a;
@XmlAttribute(必需=true)
私有字符串b;
@XmlAttribute(必需=false)
私有字符串c;
}
pom.xml的相关部分
org.codehaus.mojo
jaxb2 maven插件
1.5
schemagen
schemagen
http://some/namespace
一些
myschema.xsd
**/*.爪哇
和输出->myschema.xsd
<>代码>如果你发现其中一个答案是有用的,请考虑相应地对它们进行标记。或者评论为什么不。如果你发现其中一个答案有用,请考虑相应地对它们进行标记。或者评论why not.Downvoted,因为这个答案涉及为现有XSD生成Java文件,而(无可否认的)问题是如何为现有Java文件生成XSD。Schemagen最终成为了解决方案。投票被否决,因为这个答案涉及为现有XSD生成Java文件,而(无可否认的)问题是如何为现有Java文件生成XSD。Schemagen最终成为了解决方案。