Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用XJC使用Mave从给定的XSD文件生成源代码_Java_Xml_Maven_Xsd_Jaxb2 - Fatal编程技术网

Java 使用XJC使用Mave从给定的XSD文件生成源代码

Java 使用XJC使用Mave从给定的XSD文件生成源代码,java,xml,maven,xsd,jaxb2,Java,Xml,Maven,Xsd,Jaxb2,我有两个XSD文件。其中一个已经用于生成大量Java源代码。我将构建另一个XSD来为另一个项目创建类。我想在第二个XSD中使用第一个XSD生成的类作为“类型”。 我试图在第二个XSD中导入第一个XSD。 但是通过这个,第一个XSD的所有类都被重新构建。 我只想使用正确的引用(类名和包名)为使用过的旧类构建一个在新XSD中定义的新类 样本: oldXSD: 您需要使用。虽然这个答案是正确的,但我建议您编辑它以包含更多相关信息。“仅链接的答案价值有限。@Rob甚至没有亲自尝试找到答案,链接是一个好的

我有两个XSD文件。其中一个已经用于生成大量Java源代码。我将构建另一个XSD来为另一个项目创建类。我想在第二个XSD中使用第一个XSD生成的类作为“类型”。 我试图在第二个XSD中导入第一个XSD。 但是通过这个,第一个XSD的所有类都被重新构建。 我只想使用正确的引用(类名和包名)为使用过的旧类构建一个在新XSD中定义的新类

样本: oldXSD:


您需要使用。

虽然这个答案是正确的,但我建议您编辑它以包含更多相关信息。“仅链接的答案价值有限。@Rob甚至没有亲自尝试找到答案,链接是一个好的开始。他仍然可以改进他的问题以获得帮助。@Michael:谢谢,链接真的是一个很好的开始。但直到目前为止,我花了很多时间从零开始熟悉JAXB的知识。没有关于生成源的良好描述;至少不是在科德豪斯或莫约豪斯我所期待的地方。即使是你提到的网站也只是一个闪光点;配置参数没有详细描述,到示例的链接通常不起作用,我从未使用过Mojohaus插件,我使用的是我提供给您的GitHub插件。到目前为止,我已经编译了几个带有两级嵌套的模式。Maven JAXB2插件在这方面做得非常好。你应该做的是从插件开始,一块一块地显示你的结果。我们的商店里有mojohaus,所以我从这个开始。但是我也尝试了maven jaxb插件,到目前为止我已经了解了逻辑;但不能使用它,至少不能立即使用。我们目前创建的“oldClasses”从“oldXSD”到路径。jar文件是由以后的“安装”创建的。
   <xs:element name="OldClass",....
   <xs:element name="OtherClass1",...
   <xs:element name="OtherClass2",...
   etc
    <?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://new.namespace.com"
    xmlns:empns="http://new.namespace.com" 
    xmlns:Q1="http://old.namespace.com">

    <xs:import namespace="http://old.namespace.com"
        schemaLocation="../oldXSD.xsd" />

    <xs:element name="bookingStatus" type="empns:BookingStatus"></xs:element>

    <xs:complexType name="BookingStatus">
        <xs:sequence>
            <xs:element name="userId" type="xs:string" minOccurs="1"
                maxOccurs="1" />
            <xs:element name="userName" type="xs:string"
                minOccurs="1" maxOccurs="1" />
            <xs:element name="oldclasses" type="Q1:OldClass" minOccurs="0"
                maxOccurs="unbounded" />
        </xs:sequence>
    </xs:complexType>

</xs:schema>
<plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>jaxb2-maven-plugin</artifactId>
        <version>1.6</version>
        <executions>
            <execution>
                <id>json</id>
                <goals>
                    <goal>xjc</goal>
                </goals>
                <configuration>
                    <outputDirectory>target/generated-sources/jaxb</outputDirectory>
                    <packageName>getting.started.with.jaxb.generated</packageName>
                    <schemaDirectory>src/main/resources/json</schemaDirectory>
                    <schemaFiles>newXSD.xsd</schemaFiles>
                </configuration>
            </execution>
        </executions>
    </plugin>