有没有办法忽略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”