题
我有这样的Maven “任务”,从使用JAXB XSD文件生成Java类。
<!-- XML to Java classes -->
<plugin>
<groupId>com.sun.tools.xjc.maven2</groupId>
<artifactId>maven-jaxb-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<generatePackage>nl.compay.service</generatePackage>
<schemaDirectory>src/main/webapp/compay</schemaDirectory>
</configuration>
</plugin>
有关的XSD类型“用户”,它生成一个命名为“用户”(杜)类。不过,我也有一个名为“用户” JPA实体类(虽然在不同的包)。 我可以改变上面的XML配置,让JAXB的东西,如“XML”?
前缀生成的类解决方案
这是一种常见的要求。您可以通过提供额外的JAXB绑定文件来定制JAXB如何转化的模式类型名称到Java类的名称做。
这些文件通常结束扩展名“.xjb”。您需要创建一个为您的架构,例如:
<jxb:bindings version="1.0"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
jxb:extensionBindingPrefixes="xjc">
<jxb:bindings schemaLocation="nl.company.service.xsd" node="/xs:schema">
<jxb:schemaBindings>
<jxb:nameXmlTransform>
<jxb:typeName prefix="XML"/>
<jxb:anonymousTypeName prefix="XML"/>
</jxb:nameXmlTransform>
</jxb:schemaBindings>
</jxb:bindings>
</jxb:bindings>
你这样做之后,某处掉落XJB文件在你的build目录,并告诉Maven的转换过程中使用它:
<includeBindings>
<includeBinding>mybindings.xjb</includeBinding>
</includeBindings>
和这里的道路的提示:如果你是在包含空格(例如“文档和Settings \用户\项目”)的路径,然后将JAXB翻倒用奇怪的错误
不隶属于 StackOverflow