有没有办法忽略JAXB绑定文件中的空节点?
我正在尝试创建一个通用的有没有办法忽略JAXB绑定文件中的空节点?,jaxb,xjc,maven-jaxb2-plugin,Jaxb,Xjc,Maven Jaxb2 Plugin,我正在尝试创建一个通用的.xjb绑定文件,以便跨多个项目从WSDLs/xsd生成一致的Java类。 我们通过maven-jaxb2-plugin(由@lexicore制作)生成代码 问题在于多项目部分。如果特定的绑定指令与提供的XSD或WSDL中的任何内容都不匹配,则类生成将失败 对“”的XPath求值将导致空目标节点 我如何告诉JAXB忽略这些情况,使绑定文件可以在任何项目上使用而无需微调,而不管使用的元素类型如何? 以下是一个(精简版)版本,展示了我的问题: <?xml version
.xjb
绑定文件,以便跨多个项目从WSDLs/xsd生成一致的Java类。
我们通过maven-jaxb2-plugin
(由@lexicore制作)生成代码
问题在于多项目部分。如果特定的绑定指令与提供的XSD或WSDL中的任何内容都不匹配,则类生成将失败
对“
”的XPath求值将导致空目标节点
我如何告诉JAXB忽略这些情况,使绑定文件可以在任何项目上使用而无需微调,而不管使用的元素类型如何?
以下是一个(精简版)版本,展示了我的问题:
<?xml version="1.0" encoding="UTF-8"?>
<jxb:bindings xmlns:jxb="http://java.sun.com/xml/ns/jaxb" version="2.1"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
jxb:extensionBindingPrefixes="xjc">
<jxb:bindings schemaLocation="path/to/the/schema" node="/xs:schema">
<jxb:bindings multiple="true" node="//*[@type='xs:dateTime']">
<xjc:javaType name="java.time.LocalDateTime" adapter="a.b.c.LocalDateTimeAdapter" />
</jxb:bindings>
</jxb:bindings>
</jxb:bindings>
如果我尝试从没有dateTime
元素的模式生成类,它将失败
最终,目标是创建一些不同团队的所有项目都可以重用的东西,而无需更改
schemaLocation
您需要在绑定上设置required=“no”属性,以允许不匹配任何节点,即
<jxb:bindings required="no" multiple="true" node="//*[@type='xs:dateTime']">
根据您的上下文,您也可以选择说required=“false”或required=“0”