Java 使用schemagen和xjc时如何维护包结构

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生成类,我会将所有类都放在

我是JAX B新手。我创建了一个具有以下结构的项目:

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里