Java jaxb2 maven插件按名称空间创建包
我和你有这个问题 org.codehaus.mojoJava jaxb2 maven插件按名称空间创建包,java,xml,maven,xsd,jaxb2,Java,Xml,Maven,Xsd,Jaxb2,我和你有这个问题 org.codehaus.mojo jaxb2 maven插件 我有不同的XSD-s,不同的XSD-s中有相同的元素/类型,它们属于相同的命名空间 现在,我想知道我是否可以为不同的名称空间创建包,这样就不会在其中包含双重类 这是我的pom.xml <groupId>org.codehaus.mojo</groupId> <artifactId>jaxb2-maven-plugin</artifactId&
jaxb2 maven插件 我有不同的XSD-s,不同的XSD-s中有相同的元素/类型,它们属于相同的命名空间 现在,我想知道我是否可以为不同的名称空间创建包,这样就不会在其中包含双重类 这是我的pom.xml
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>${mvn-jaxb2-plugin.version}</version>
<configuration>
<quiet>true</quiet>
<verbose>false</verbose>
<clearOutputDir>false</clearOutputDir>
<readOnly>true</readOnly>
<arguments>-mark-generated</arguments>
</configuration>
<executions>
<execution>
<id>teenus-meta</id>
<goals><goal>xjc</goal></goals>
<configuration>
<schemaDirectory>${project.basedir}/src/main/resources/schemas/teenus1</schemaDirectory>
<outputDirectory>${project.basedir}/src/main/java</outputDirectory>
<packageName>ee.teenus</packageName>
<schemaFiles>one.xsd</schemaFiles>
</configuration>
</execution>
<execution>
<id>vaetis</id>
<goals><goal>xjc</goal></goals>
<configuration>
<schemaDirectory>${project.basedir}/src/main/resources/schemas/teenus2</schemaDirectory>
<outputDirectory>${project.basedir}/src/main/java</outputDirectory>
<packageName>ee.teenus2</packageName>
<schemaFiles>two.xsd</schemaFiles>
</configuration>
</execution>
</executions>
org.codehaus.mojo
jaxb2 maven插件
${mvn-jaxb2-plugin.version}
真的
假的
假的
真的
-标记生成
蒂努斯梅塔酒店
xjc
${project.basedir}/src/main/resources/schemas/teenus1
${project.basedir}/src/main/java
伊提努斯
1.xsd
瓦蒂斯
xjc
${project.basedir}/src/main/resources/schemas/teenus2
${project.basedir}/src/main/java
ee.teenus2
2.xsd
此时,package1和package2包含相同的元素
谢谢 最近,我需要来自不同xsd的不同名称空间的包。找到的解决方案是使用绑定文件。也许你应该使用绑定文件
<executions>
<execution>
<id>one</id>
<goals>
<goal>xjc</goal>
</goals>
<configuration>
<schemaDirectory>${basedir}/src/main/resources/xsd</schemaDirectory>
<schemaFiles>one.xsd</schemaFiles>
<bindingDirectory>${basedir}/src/main/resources/binding</bindingDirectory>
<bindingFiles>onebinding.xjb</bindingFiles>
<outputDirectory>${basedir}/src/main/java</outputDirectory>
<clearOutputDir>false</clearOutputDir>
<extension>true</extension>
</configuration>
</execution>
<execution>
<id>two</id>
<goals>
<goal>xjc</goal>
</goals>
<configuration>
<schemaDirectory>${basedir}/src/main/resources/xsd</schemaDirectory>
<schemaFiles>two.xsd</schemaFiles>
<bindingDirectory>${basedir}/src/main/resources/binding</bindingDirectory>
<bindingFiles>twobinding.xjb</bindingFiles>
<outputDirectory>${basedir}/src/main/java</outputDirectory>
<clearOutputDir>false</clearOutputDir>
<extension>true</extension>
</configuration>
</execution>
</executions>
一
xjc
${basedir}/src/main/resources/xsd
1.xsd
${basedir}/src/main/resources/binding
onebinding.xjb
${basedir}/src/main/java
假的
真的
二
xjc
${basedir}/src/main/resources/xsd
2.xsd
${basedir}/src/main/resources/binding
twobinding.xjb
${basedir}/src/main/java
假的
真的
onebinding.xjb
<jaxb:bindings jaxb:extensionBindingPrefixes="xjc" version="2.1"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc">
<jaxb:globalBindings>
<xjc:simple/>
</jaxb:globalBindings>
<jaxb:bindings schemaLocation="../xsd/one.xsd">
<jaxb:schemaBindings>
<jaxb:package name="my.package.one" />
</jaxb:schemaBindings>
</jaxb:bindings>
<jaxb:bindings schemaLocation="http://www.example.com/xmlns/example1.xsd">
<jaxb:schemaBindings>
<jaxb:package name="my.package.one.example1" />
</jaxb:schemaBindings>
</jaxb:bindings>
</jaxb:bindings>
<jaxb:bindings jaxb:extensionBindingPrefixes="xjc" version="2.1"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc">
<jaxb:globalBindings>
<xjc:simple/>
</jaxb:globalBindings>
<jaxb:bindings schemaLocation="../xsd/two.xsd">
<jaxb:schemaBindings>
<jaxb:package name="my.package.two" />
</jaxb:schemaBindings>
</jaxb:bindings>
<jaxb:bindings schemaLocation="http://www.example.com/xmlns/example1.xsd">
<jaxb:schemaBindings>
<jaxb:package name="my.package.two.example1" />
</jaxb:schemaBindings>
</jaxb:bindings>
</jaxb:bindings>
twobinding.xjb
<jaxb:bindings jaxb:extensionBindingPrefixes="xjc" version="2.1"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc">
<jaxb:globalBindings>
<xjc:simple/>
</jaxb:globalBindings>
<jaxb:bindings schemaLocation="../xsd/one.xsd">
<jaxb:schemaBindings>
<jaxb:package name="my.package.one" />
</jaxb:schemaBindings>
</jaxb:bindings>
<jaxb:bindings schemaLocation="http://www.example.com/xmlns/example1.xsd">
<jaxb:schemaBindings>
<jaxb:package name="my.package.one.example1" />
</jaxb:schemaBindings>
</jaxb:bindings>
</jaxb:bindings>
<jaxb:bindings jaxb:extensionBindingPrefixes="xjc" version="2.1"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc">
<jaxb:globalBindings>
<xjc:simple/>
</jaxb:globalBindings>
<jaxb:bindings schemaLocation="../xsd/two.xsd">
<jaxb:schemaBindings>
<jaxb:package name="my.package.two" />
</jaxb:schemaBindings>
</jaxb:bindings>
<jaxb:bindings schemaLocation="http://www.example.com/xmlns/example1.xsd">
<jaxb:schemaBindings>
<jaxb:package name="my.package.two.example1" />
</jaxb:schemaBindings>
</jaxb:bindings>
</jaxb:bindings>