【问题标题】:Generate source using jaxb from an xsd that is in my classpath使用 jaxb 从我的类路径中的 xsd 生成源代码
【发布时间】:2012-09-06 19:52:42
【问题描述】:
我正在尝试使用 JAXB 从我的类路径中的模式生成 java 类。对于 CXF,我从类路径中的 wsdl 生成 java 类,如下所示:
<wsdlOptions>
<wsdlOption>
<wsdl>classpath:wsdl/MetsInterfaceService.wsdl</wsdl>
</wsdlOption>
</wsdlOptions>
我希望 JAXB 也存在类似的东西。我确实尝试过使用目录,但是当模式(存储在同一个 Maven 模块中)在类路径中导入另一个模式时,这似乎更符合要求。
任何帮助将不胜感激!
-萨尔
【问题讨论】:
标签:
xsd
classpath
cxf
jaxb2
generated-code
【解决方案1】:
CXF XJC Maven Plugin 似乎支持classpath:。
XsdOption 对象用于传递特定的选项和
每个要处理的 XSD 文件的配置。
网站上的示例显示了classpath: 以多种方式在<xsd>、<bindingFile> 和<catalog> 路径的<xsdOption> 路径中使用:
<configuration>
<sourceRoot>${basedir}/target/generated/src/main/java</sourceRoot>
<xsdOptions>
<xsdOption>
<xsd>classpath:/schemas/wsdl/http.xsd</xsd>
<bindingFile>classpath:/schemas/wsdl/http.xjb</bindingFile>
<catalog>${basedir}/src/main/build-resources/catalog.cat</catalog>
</xsdOption>
<xsdOption>
<xsd>classpath:/schemas/wsdl/ws-addr.xsd</xsd>
<packagename>org.apache.cxf.ws.addressing</packagename>
</xsdOption>
<xsdOption>
<xsd>classpath:/schemas/wsdl/addressing.xsd</xsd>
<bindingFile>classpath:/schemas/wsdl/addressing.xjb</bindingFile>
</xsdOption>
<xsdOption>
<xsd>classpath:/schemas/configuration/security.xsd</xsd>
<bindingFile>classpath:/schemas/configuration/security.xjb</bindingFile>
<catalog>${basedir}/src/main/build-resources/catalog.cat</catalog>
<extensionArgs>
<extensionArg>-Xdv</extensionArg>
</extensionArgs>
</xsdOption>
<xsdOption>
<xsd>classpath:/schemas/wsdl/ws-addr-wsdl.xsd</xsd>
<bindingFile>classpath:/schemas/wsdl/ws-addr-wsdl.xjb</bindingFile>
<extension>true</extension>
</xsdOption>
<xsdOption>
<xsd>classpath:/schemas/wsdl/addressing200403.xsd</xsd>
<bindingFile>classpath:/schemas/wsdl/addressing200403.xjb</bindingFile>
</xsdOption>
</xsdOptions>
</configuration>