我正在使用mojohaus jaxb2 maven插件从xsd模式文件生成Java源代码。我的pom。xml如下所示:
...
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>2.5.0</version>
<executions>
<execution>
<id>xjc-1</id>
<goals>
<goal>xjc</goal>
</goals>
<configuration>
<packageName>my.first.package.types</packageName>
<sources>
<source>src/main/java/META-INF/wsdl/firstSchema.xsd</source>
</sources>
</configuration>
</execution>
<execution>
<id>xjc-2</id>
<goals>
<goal>xjc</goal>
</goals>
<configuration>
<packageName>my.second.package.types</packageName>
<sources>
<source>src/main/java/META-INF/wsdl/secondSchema.xsd</source>
</sources>
<clearOutputDir>false</clearOutputDir>
</configuration>
</execution>
</executions>
<configuration>
<outputDirectory>src/main/javagen</outputDirectory>
</configuration>
</plugin>
这个插件配置应该与这里找到的对应。当我运行构建时,从第一个模式生成的源文件也被放入第二个包中。有人能解释一下为什么会这样吗?这是一个错误还是我遗漏了什么?
非常感谢您的任何意见!
编辑:
我也尝试了maven-jaxb2-plugin。同样的结果!所以这似乎是一个generell maven问题。我对maven-jaxb2-plugin的插件配置如下:
...
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.14.0</version>
<executions>
<execution>
<id>first</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<schemaIncludes>
<include>firstSchema.xsd</include>
</schemaIncludes>
<generatePackage>my.first.package.types</generatePackage>
</configuration>
</execution>
<execution>
<id>second</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<schemaIncludes>
<include>secondSchema.xsd</include>
</schemaIncludes>
<generatePackage>my.second.package.types</generatePackage>
</configuration>
</execution>
</executions>
<configuration>
<schemaDirectory>src/main/java/META-INF/wsdl</schemaDirectory>
<generateDirectory>src/main/javagen</generateDirectory>
</configuration>
</plugin>
有人有什么想法吗?这开始让我有点恼火了。。。
编辑:
我发现这与一些xsd文件导入了这样的文件有关:
<xs:import namespace="http://referenced/namespace"
schemaLocation="referencedSchema.xsd" />
在我看来,Maven似乎忽略了命名空间标签。我怎么能告诉Maven停止这样做呢?
我可以回答我自己很久以前的问题。问题是我们还使用maven jaxws插件从wsdl文件生成Web服务。这两个插件实际上都采用底层xsf文件并为各自的包生成数据结构类。所以解决方案是从pom中删除jaxb插件。所有xsd只生成一次。
问题内容: Json.NET文档说您过去不对类中的某些属性进行序列化: 在使用序列化第3方对象时,如何使Json.NET忽略特定属性? 问题答案: 制作自定义合同解析器: 我如何测试它:
问题内容: 在反序列化过程中(据我了解,这是将JSON数据转换为Java对象的过程),我如何告诉Jackson,当它读取不包含数据的对象时,应该忽略它吗? 我正在使用Jackson 2.6.6和Spring 4.2.6 我的控制器收到的JSON数据如下: 问题是对象“ containedObject”按原样解释,并且正在实例化。因此,控制器读取此JSON数据后,它将立即生成ContainedObj
问题内容: 长话短说,我的一个实体有一个GeometryCollection,当您调用“ getBoundary”时会引发异常(这是另一本书的原因,现在让我们说这是它的工作方式)。 有没有办法让我告诉Jackson不要包括那个特定的吸气剂?我知道自己拥有/控制代码时可以使用@JacksonIgnore。但是,事实并非如此,Jackson通过父对象的连续序列化结束了这一点。我在杰克逊文档中看到了一个
然后使用这个changelog文件执行liquibase,它驻留在目录/home/changelogs中。则应用更改。然后使用相同的changelog文件再次运行liquibase。正如预期的那样,这次不应用更改。 但如果我将更改日志文件移动到/home/changelog/migration并再次运行liquibase,则应用更改。 liquibase似乎将changelog的路径包含在deci
问题内容: 我想针对XSD架构验证XML文件。XML文件根元素没有任何名称空间或xsi详细信息。它没有属性,只是。 我已经尝试从http://www.ibm.com/developerworks/xml/library/x-javaxmlvalidapi.html尝试以下代码,但运气不佳 xml可以使用包含的名称空间标头等(通过xmlspy添加)很好地验证,但是我想可以不用手动编辑源文件就可以声明
我花了一些时间来调查是什么问题,但我不能解决它。当我在XML下面反封送和回封送时,我看到的是不同的XML。 在上面的xml中,只有一个标记(第一个),其余所有(包括名称空间)都是意外元素。另一个应用程序发送上述XML。 null 我真的不明白QName的事