java - 如何将多个 .xsd 生成到同一个 ObjectFactory 中?

标签 java xsd objectfactory cxf-xjc-plugin

我需要一个包含来自多个模式的多个 java 对象的 ObjectFactory。我有几个不同的插件和这些插件的变体是 0 运气。目前我正在使用以下内容:

<plugin>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-xjc-plugin</artifactId>
    <version>2.6.2</version>
    <configuration>
        <extensions>
            <extension>org.apache.cxf.xjcplugins:cxf-xjc-dv:2.6.2</extension>
        </extensions>
    </configuration>
    <executions>
        <execution>
            <id>generate-sources</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>xsdtojava</goal>
            </goals>
            <configuration>
                <sourceRoot>${basedir}/target/generated-sources/xjc</sourceRoot>
                <xsdOptions>
                    <xsdOption>
<xsd>${basedir}/src/main/resources/osds/schemas/IataAsmAdmEvent.xsd</xsd>
<xsd>${basedir}/src/main/resources/osds/schemas/IataAsmCnlEvent.xsd</xsd>
<xsd>${basedir}/src/main/resources/osds/schemas/IataAsmEqtEvent.xsd</xsd>
<packagename>com.mypackage</packagename>
                    </xsdOption>
                </xsdOptions>
            </configuration>
        </execution>
    </executions>
</plugin>

使用这个插件和许多其他插件,我只能生成一个仅包含列表中最后一个模式的 ObjectFactory。以前的 xsds 都没有在 OF 中作为 java 对象。 谁能帮我解决这个问题?

谢谢!

最佳答案

我有同样的问题,可以用包装器 XSD 解决:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:include schemaLocation="schema1.xsd" />
    <xs:include schemaLocation="schema2.xsd" />
    <xs:include schemaLocation="schema3.xsd" />
</xs:schema>

当然,这不允许这些包含的 XSD 相互包含或共用其他 XSD。如果“schema3.xsd”包含“schema2.xsd”,请从此列表中删除“schema2.xsd”。

关于java - 如何将多个 .xsd 生成到同一个 ObjectFactory 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18538597/

相关文章:

java - java中的sysLoader.getResource()问题

java - Spring Rest Controller POST 请求不起作用

xsd - xml 模式 maxOccurs = xs :all 内无界

具有抽象工厂的派生类的 C++11 单例

java - 我们可以在解码期间在运行时决定 jaxb 类吗?

java - 表单向 Servlet 发送空查询字符串

java - 什么是多播?

xml - 将 XSD 模式转换为 GraphQL 模式

java - 在数据库中存储 XML 数据 - 许多表与在列中转储 xml

java - 指定`DataSource`工厂而不是Tomcat的默认工厂