java
  • xml
  • xpath
  • xsd
  • jaxb
  • 2016-05-15 18 views 2 likes 
    2

    Ich versuche, Java-Klasse von wsdl zu erzeugen, aber ich bekomme Fehler:jaxb-bindingx.xml „führt zu viele Zielknoten“

    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

    Meine Datei 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> 
    

    Und mein jaxb-bindings.xml, die nicht funktioniert .:

    <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> 
    

    +0

    Gibt es ein Fehler verwenden können folgen neu geschrieben werden? – Lee

    +0

    Ja. XPath-Auswertung von "// xs: element [@ name = 'RZECZ_REJESTRACJA'] \ xs: complexType/xs: auswahl \ xs: sequencexs: element [@ ref = 'NUMER_OZNAKOWANIA']" ergibt zu viele (2) Zielknoten – Sebastian

    Antwort

    -1

    Ihre XSD sollte als

    <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> 
    
    +0

    Ich denke, ich kann das Modell nicht ändern, weil es vom externen System generiert wird. – Sebastian

    0

    Sie diese Einbindemappe Nachricht

    <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> 
    
    +1

    Ich habe dieses Problem gelöst. ' \t ' – Sebastian

     Verwandte Themen

    • Keine verwandten Themen^_^