2

我有不同的服务模式文件(超过 5 个),我想使用 xmlbeans 从中生成一个 jar 文件。

我正在使用 xmlbean 插件如下

<plugins>
    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>xmlbeans-maven-plugin</artifactId>
        <version>${xmlbeans.version}</version>
        <executions>
            <execution>
                <goals>
                    <goal>xmlbeans</goal>
                </goals>
                <phase>compile</phase>
            </execution>
        </executions>
        <inherited>true</inherited>
        <configuration>
            <download>true</download>
            <javaSource>${java.version}</javaSource>
            <schemaDirectory>src/main/xsd</schemaDirectory>
            <xmlConfigs>
                <xmlConfig implementation="java.io.File">src/main/xsdconfig/xsdconfig.xml</xmlConfig>
            </xmlConfigs>
        </configuration>
    </plugin>
</plugins>

我想为不同的服务模式使用不同的包名称。如何指定以及在何处提供架构路径和 xsdConfig 文件以应用包详细信息。

请指教。

4

1 回答 1

2

您需要定义一个以.xsdconfig(eg myConfig.xsdconfig) 结尾的文件,以将每个模式文件中的 targetNamespace 映射到 Java 包名称。将此.xsdconfig文件放在与您正在编译的相应文件相同的目录中。.xsd例如,假设您有以下.xsd文件:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
       targetNamespace="http://your.company.org/dileep">
    ...
</xs:schema>

然后,您将定义以下myConfig.xsdconfig文件,如下所示:

<!-- you must use the http://www.bea.com/2002/09/xbean/config namespace here -->
<xb:config xmlns:xb="http://www.bea.com/2002/09/xbean/config">
    <xb:namespace uri="http://your.company.org/dileep">   <!-- map this namespace -->
        <xb:package>org.company.your.dileep</xb:package>  <!-- to this Java package -->
    </xb:namespace>
    <!-- more namespace mappings can go here ... -->
</xb:config>

还可以控制从每个模式文件生成的 Java 类的名称。

您可以在官方 XMLBeans 文档中阅读有关此内容的更多信息。

于 2015-05-14T06:58:13.330 回答