JAXB外部自定义绑定XJC问题 - 解析结果为空节点

jun*_*sal 9 jaxb xjc

如果这是重复,请原谅我.这是我的binding.xjb文件.但现在我得到的常规错误是找不到复杂类型目标"AddBankVaultRplyType".我没有看到任何问题.有人可以帮我这个吗?我列出了我想要自定义的xsd

<jxb:bindings 
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:pd="http://chubb.com/cpi/polsvc/xmlobj"
xmlns:inheritance="http://jaxb2-commons.dev.java.net/basic/inheritance"
jxb:extensionBindingPrefixes="inheritance"
jxb:version="2.1"
>


<jxb:bindings node="/xs:schema/xs:ServiceReply/xs:complexType[@name='AddBankVaultRplyType']">
<inheritance:extends>com.print.poc.AddressTypeHelper</inheritance:extends>
</jxb:bindings>
Run Code Online (Sandbox Code Playgroud)

这是我试图定制的XSD

<xs:schema xmlns:pd="http://com/polsvc/xmlobj" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://com/polsvc/xmlobj" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:complexType name="AddBankVaultRplyType">

</xs:complexType>
<xs:element name="ServiceReply">
   <xs:complexType>
   <xs:sequence>
    <xs:element name="ReplyHeader" type="pd:MsgHeaderType"/>
    <xs:element name="RequestHeader" type="pd:MsgHeaderType"/>
    <xs:choice>
     <xs:element name="AddBankVaultReply" type="pd:AddBankVaultRplyType"/>
</xs:choice>
 </xs:sequence>
  </xs:complexType>
 </xs:element>
</xs:schema>
Run Code Online (Sandbox Code Playgroud)

现在,如果我运行XJC,它告诉我目标"/xs:schema/xs:ServiceReply/xs:complexType[@name='AddBankVaultRplyType']"导致空节点.我在这里做的错误是什么?

bdo*_*han 8

您将需要包含已设置架构位置的绑定.它应该是这样的:

<jxb:bindings 
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
    xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
    xmlns:pd="http://chubb.com/cpi/polsvc/xmlobj"
    xmlns:inheritance="http://jaxb2-commons.dev.java.net/basic/inheritance"
    jxb:extensionBindingPrefixes="inheritance"
    version="2.1">
    <jxb:bindings schemaLocation="your-schema.xsd">
        <jxb:bindings node="//xs:complexType[@name='AddBankVaultRplyType']">
            <inheritance:extends>com.print.poc.AddressTypeHelper</inheritance:extends>
        </jxb:bindings>
    </jxb:bindings>
</jxb:bindings>
Run Code Online (Sandbox Code Playgroud)

欲获得更多信息:

  • 再次感谢.看起来它工作正常,但它显示此错误.解析模式... [错误]不支持的绑定命名空间"http://jaxb2-commons.dev.java.net/basic/inheritance".也许你的意思是"http://java.sun.com/xml/ns/jaxb/xjc"? (3认同)