Java 使用schemagen和xjc时如何维护包结构
我是JAX B新手。我创建了一个具有以下结构的项目:Java 使用schemagen和xjc时如何维护包结构,java,xml,jaxb,xsd,Java,Xml,Jaxb,Xsd,我是JAX B新手。我创建了一个具有以下结构的项目: src- entity- Person property- Address 我使用命令生成一个xsd文档 C:\workspace\JAXTest\src>schemagen entity\Person.java property\Address.java 我现在在src文件夹中看到schema1.xsd,但它没有任何包信息。因此,如果我使用xjc生成类,我会将所有类都放在
src-
entity-
Person
property-
Address
我使用命令生成一个xsd文档
C:\workspace\JAXTest\src>schemagen entity\Person.java property\Address.java
我现在在src文件夹中看到schema1.xsd,但它没有任何包信息。因此,如果我使用xjc生成类,我会将所有类都放在同一个文件夹中
C:\workspace\JAXTest\src>xjc schema1.xsd
parsing a schema...
compiling a schema...
generated\Address.java
generated\ObjectFactory.java
generated\Person.java
如何使xsd包含包信息,以便生成的类遵循用于创建xsd的类的结构
提前谢谢
编辑:
我没有特别的要求。我只是想正确地学习XSD类和XSD类转换。另外,我发现我可以使用jax定制来指定全局包名,但它不适用于单个类。基本上,这不会把我的人放在PersonPackage中
<xs:complexType name="person">
<xs:annotation>
<xs:appinfo>
<jaxb:package name="PersonPackage"/>
</xs:appinfo>
</xs:annotation>
<xs:sequence>
<xs:element name="address" type="address" minOccurs="0">
</xs:element>
<xs:element name="name" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
我可以问一下为什么1)从Java实体类生成模式,然后2)从生成的xsd重新生成Java类吗?这似乎不是你真正想做的。此外,您确实不希望XSD被诸如目标java包名称之类的实现细节所污染,通常当您从XSD生成java类时,您可以在.xjb绑定文件中指定这一点。我只是想正确地学习XSD类和XSD类转换。另外,我发现我可以使用jax定制来指定全局包名,但它不适用于单个类。基本上,这不会把我的人放在PersonPackage里