Binding 同名嵌套元素的JAXB绑定

Binding 同名嵌套元素的JAXB绑定,binding,jaxb,Binding,Jaxb,我有一个给定的模式,因此我无法对其进行更改,我正在尝试为其生成JAXB对象,并且由于具有相同名称的嵌套元素而导致命名冲突。 我创建bindings.xml是为了避免命名冲突,当我有两级嵌套(例如XPath)时,它可以正常工作: /A/Value/B/Value /A/Value/B/Value/C/Value 这样就解决了问题: <jaxb:bindings node="/xsd:schema/xsd:complexType[@name='A'] /xsd:

我有一个给定的模式,因此我无法对其进行更改,我正在尝试为其生成JAXB对象,并且由于具有相同名称的嵌套元素而导致命名冲突。 我创建bindings.xml是为了避免命名冲突,当我有两级嵌套(例如XPath)时,它可以正常工作:

/A/Value/B/Value
/A/Value/B/Value/C/Value 
这样就解决了问题:

<jaxb:bindings
     node="/xsd:schema/xsd:complexType[@name='A']
        /xsd:complexType/xsd:sequence/xsd:element[@name='Value']
        /xsd:complexType/xsd:sequence/xsd:element[@name='B']
        /xsd:complexType/xsd:sequence/xsd:element[@name='Value']">
        <jaxb:class name="InnerValue" />
   </jaxb:bindings> 
我不知道如何定义绑定,是否需要两个绑定来避免编译错误


非常感谢任何帮助

我认为您必须自定义复杂类型,而不是元素。因此,将绑定附加到相应的xs:complexTypes。是的,对于内部的B和C类,可能需要两个。我会给他们起个A_B和A_B_C之类的名字

另请参见,这可能很有用