jaxb-bindingx。xml“导致太多的目标节点”

时间:2023-01-14 08:54:22

I'm trying to generate java class from wsdl but I get error:

我正在尝试从wsdl生成java类,但是我得到了错误:

XPath evaluation of "//xs:element[@name='RZECZ_REJESTRACJA']\xs:complexType/xs:choice\xs:sequencexs:element[@ref='NUMER_OZNAKOWANIA']" results in too many (2) target nodes

元素[@name='RZECZ_REJESTRACJA']\xs:complexType/xs:choice\xs:sequencexs:element[@ref='NUMER_OZNAKOWANIA']"的XPath评估结果导致太多(2)目标节点

My file XSD - kcik_rejestracja_przedmiotu.xsd:

我的文件XSD - kcik_rejestracja_przedmiotu.xsd:

<xs:element name="RZECZ_REJESTRACJA">
<xs:complexType>
  <xs:choice>
    <xs:sequence>
      <xs:element ref="NUMER_FABRYCZNY"/>
      <xs:element minOccurs="0" ref="NUMER_OZNAKOWANIA"/>
      <xs:element ref="MARKA_RZECZY"/>
      <xs:element minOccurs="0" ref="TYP_RZECZY"/>
      <xs:element ref="RODZAJ_RZECZY"/>
    </xs:sequence>
    <xs:sequence>
      <xs:element ref="NUMER_OZNAKOWANIA"/>
      <xs:element ref="MARKA_RZECZY"/>
      <xs:element minOccurs="0" ref="TYP_RZECZY"/>
      <xs:element ref="RODZAJ_RZECZY"/>
    </xs:sequence>
  </xs:choice>
</xs:complexType>

And my jaxb-bindings.xml which didn't work.:

和我的jaxb-bindings。xml不工作。

  <bindings schemaLocation="wsdl/SOAComponents/ApplicationObjectLibrary/KCIK/Service/schemas/kcik_rejestracja_przedmiotu.xsd">
  <bindings node="//xs:element[@name='RZECZ_REJESTRACJA']/xs:complexType/xs:choice/xs:sequence">
      <bindings node=".//xs:element[@ref='NUMER_OZNAKOWANIA']">
            <property name="NumerOznakowaniaAttr"/>
      </bindings>
  </bindings>

2 个解决方案

#1


0  

You may use this binding file

您可以使用这个绑定文件

<bindings node="//xs:element[@name='RZECZ_REJESTRACJA']/xs:complexType/xs:choice/xs:sequence[1]">
      <bindings node=".//xs:element[@ref='NUMER_OZNAKOWANIA']">
            <property name="NumerOznakowaniaAttr"/>
      </bindings>
</bindings>

#2


-1  

Your XSD should be rewritten as follow

您的XSD应该重写如下

 <xs:element name="RZECZ_REJESTRACJA">
<xs:complexType>
  <xs:choice>
    <xs:sequence>
      <xs:element ref="NUMER_FABRYCZNY"/>
      <xs:sequence minOccurs="0">
         <xs:element  ref="NUMER_OZNAKOWANIA"/>
      </xs:sequence/
      <xs:element ref="MARKA_RZECZY"/>
      <xs:sequence minOccurs="0">
         <xs:element ref="TYP_RZECZY"/>
      </xs:sequence>
      <xs:element ref="RODZAJ_RZECZY"/>
    </xs:sequence>     
  </xs:choice>
</xs:complexType>

#1


0  

You may use this binding file

您可以使用这个绑定文件

<bindings node="//xs:element[@name='RZECZ_REJESTRACJA']/xs:complexType/xs:choice/xs:sequence[1]">
      <bindings node=".//xs:element[@ref='NUMER_OZNAKOWANIA']">
            <property name="NumerOznakowaniaAttr"/>
      </bindings>
</bindings>

#2


-1  

Your XSD should be rewritten as follow

您的XSD应该重写如下

 <xs:element name="RZECZ_REJESTRACJA">
<xs:complexType>
  <xs:choice>
    <xs:sequence>
      <xs:element ref="NUMER_FABRYCZNY"/>
      <xs:sequence minOccurs="0">
         <xs:element  ref="NUMER_OZNAKOWANIA"/>
      </xs:sequence/
      <xs:element ref="MARKA_RZECZY"/>
      <xs:sequence minOccurs="0">
         <xs:element ref="TYP_RZECZY"/>
      </xs:sequence>
      <xs:element ref="RODZAJ_RZECZY"/>
    </xs:sequence>     
  </xs:choice>
</xs:complexType>