2017-06-20 4 views
1

Ich habe folgende WSDL-Code für meine Web-applicaiton:WSDL-Komplex CVC Fehler

<?xml version="1.0" encoding="UTF-8"?> 
<definitions xmlns:tns="http://www.ebi.ac.uk/webservices/whatizit/ws" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns="http://schemas.xmlsoap.org/wsdl/" 
    targetNamespace="http://www.ebi.ac.uk/webservices/whatizit/ws" name="whatizit"> 

    <types> 
     <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
      targetNamespace="http://www.ebi.ac.uk/webservices/whatizit/ws" 
      version="1.0"> 

      <xs:element xmlns:ns1="http://www.ebi.ac.uk/webservices/whatizit/ws" 
       type="ns1:search" name="search" /> 
      <xs:complexType name="search"> 
       <xs:sequence> 
        <xs:element type="xs:string" minOccurs="0" name="pipelineName" /> 
        <xs:element type="xs:string" minOccurs="0" name="query" /> 
        <xs:element name="limit"> 
         <xs:simpleType> 
          <xs:restriction base="xs:int"> 
           <xs:minInclusive value="0" /> 
           <xs:maxExclusive value="10000" /> 
          </xs:restriction> 
         </xs:simpleType> 
        </xs:element> 
       </xs:sequence> 
      </xs:complexType> 

      <xs:element xmlns:ns2="http://www.ebi.ac.uk/webservices/whatizit/ws" 
       type="ns2:searchResponse" name="searchResponse" /> 
      <xs:complexType name="searchResponse"> 
       <xs:sequence> 
        <xs:element type="xs:string" minOccurs="0" name="return" /> 
       </xs:sequence> 
      </xs:complexType> 

      <xs:element xmlns:ns3="http://www.ebi.ac.uk/webservices/whatizit/ws" 
       type="ns3:WhatizitException" name="WhatizitException" /> 
      <xs:complexType name="WhatizitException"> 
       <xs:sequence> 
        <xs:element type="xs:string" minOccurs="0" name="message" /> 
       </xs:sequence> 
      </xs:complexType> 

      <xs:element xmlns:ns4="http://www.ebi.ac.uk/webservices/whatizit/ws" 
       type="ns4:contact" name="contact" /> 
      <xs:complexType name="contact"> 
       <xs:sequence> 
        <xs:element type="xs:string" minOccurs="0" name="pipelineName" /> 
        <xs:element type="xs:string" minOccurs="0" name="text" /> 
        <xs:element type="xs:boolean" name="convertToHtml" /> 
       </xs:sequence> 
      </xs:complexType> 

      <xs:element xmlns:ns5="http://www.ebi.ac.uk/webservices/whatizit/ws" 
       type="ns5:contactResponse" name="contactResponse" /> 
      <xs:complexType name="contactResponse"> 
       <xs:sequence> 
        <xs:element type="xs:string" minOccurs="0" name="return" /> 
       </xs:sequence> 
      </xs:complexType> 

      <xs:element xmlns:ns6="http://www.ebi.ac.uk/webservices/whatizit/ws" 
       type="ns6:queryPmid" name="queryPmid" /> 
      <xs:complexType name="queryPmid"> 
       <xs:sequence> 
        <xs:element type="xs:string" minOccurs="0" name="pipelineName" /> 
        <xs:element type="xs:string" minOccurs="0" name="pmid" /> 
       </xs:sequence> 
      </xs:complexType> 

      <xs:element xmlns:ns7="http://www.ebi.ac.uk/webservices/whatizit/ws" 
       type="ns7:queryPmidResponse" name="queryPmidResponse" /> 
      <xs:complexType name="queryPmidResponse"> 
       <xs:sequence> 
        <xs:element type="xs:string" minOccurs="0" name="return" /> 
       </xs:sequence> 
      </xs:complexType> 

      <xs:element xmlns:ns8="http://www.ebi.ac.uk/webservices/whatizit/ws" 
       type="ns8:getPipelinesStatus" name="getPipelinesStatus" /> 
      <xs:complexType name="getPipelinesStatus" /> 

      <xs:element xmlns:ns9="http://www.ebi.ac.uk/webservices/whatizit/ws" 
       type="ns9:getPipelinesStatusResponse" name="getPipelinesStatusResponse" /> 
      <xs:complexType name="getPipelinesStatusResponse"> 
       <xs:sequence> 
        <xs:element xmlns:ns10="http://www.ebi.ac.uk/webservices/whatizit/ws" 
         type="ns10:selectItem" minOccurs="0" name="return" maxOccurs="unbounded" /> 
       </xs:sequence> 
      </xs:complexType> 

      <xs:complexType name="selectItem"> 
       <xs:sequence> 
        <xs:element type="xs:string" minOccurs="0" name="description" /> 
        <xs:element type="xs:boolean" name="disabled" /> 
        <xs:element type="xs:string" minOccurs="0" name="label" /> 
        <xs:element type="xs:anyType" minOccurs="0" name="value" /> 
       </xs:sequence> 
      </xs:complexType> 
     </xs:schema> 
    </types> 


    <message name="contact"> 
     <part element="tns:contact" name="parameters" /> 
    </message> 

    <message name="contactResponse"> 
     <part element="tns:contactResponse" name="parameters" /> 
    </message> 

    <message name="WhatizitException"> 
     <part element="tns:WhatizitException" name="fault" /> 
    </message> 

    <message name="getPipelinesStatus"> 
     <part element="tns:getPipelinesStatus" name="parameters" /> 
    </message> 

    <message name="getPipelinesStatusResponse"> 
     <part element="tns:getPipelinesStatusResponse" name="parameters" /> 
    </message> 

    <message name="queryPmid"> 
     <part element="tns:queryPmid" name="parameters" /> 
    </message> 

    <message name="queryPmidResponse"> 
     <part element="tns:queryPmidResponse" name="parameters" /> 
    </message> 

    <message name="search"> 
     <part element="tns:search" name="parameters" /> 
    </message> 

    <message name="searchResponse"> 
     <part element="tns:searchResponse" name="parameters" /> 
    </message> 


    <portType name="whatizit"> 
     <operation name="contact"> 
      <input message="tns:contact" /> 
      <output message="tns:contactResponse" /> 
      <fault message="tns:WhatizitException" name="WhatizitException" /> 
     </operation> 
     <operation name="getPipelinesStatus"> 
      <input message="tns:getPipelinesStatus" /> 
      <output message="tns:getPipelinesStatusResponse" /> 
      <fault message="tns:WhatizitException" name="WhatizitException" /> 
     </operation> 
     <operation name="queryPmid"> 
      <input message="tns:queryPmid" /> 
      <output message="tns:queryPmidResponse" /> 
      <fault message="tns:WhatizitException" name="WhatizitException" /> 
     </operation> 
     <operation name="search"> 
      <input message="tns:search" /> 
      <output message="tns:searchResponse" /> 
      <fault message="tns:WhatizitException" name="WhatizitException" /> 
     </operation> 
    </portType> 

    <binding type="tns:whatizit" name="pipelineBinding"> 
     <soap:binding style="document" 
      transport="http://schemas.xmlsoap.org/soap/http" /> 
     <operation name="contact"> 
      <soap:operation soapAction="" /> 
      <input> 
       <soap:body use="literal" /> 
      </input> 
      <output> 
       <soap:body use="literal" /> 
      </output> 
      <fault name="WhatizitException"> 
       <soap:fault use="literal" name="WhatizitException" /> 
      </fault> 
     </operation> 
     <operation name="getPipelinesStatus"> 
      <soap:operation soapAction="" /> 
      <input> 
       <soap:body use="literal" /> 
      </input> 
      <output> 
       <soap:body use="literal" /> 
      </output> 
      <fault name="WhatizitException"> 
       <soap:fault use="literal" name="WhatizitException" /> 
      </fault> 
     </operation> 
     <operation name="queryPmid"> 
      <soap:operation soapAction="" /> 
      <input> 
       <soap:body use="literal" /> 
      </input> 
      <output> 
       <soap:body use="literal" /> 
      </output> 
      <fault name="WhatizitException"> 
       <soap:fault use="literal" name="WhatizitException" /> 
      </fault> 
     </operation> 
     <operation name="search"> 
      <soap:operation soapAction="" /> 
      <input> 
       <soap:body use="literal" /> 
      </input> 
      <output> 
       <mime:multipartRelated> 
        <mime:part> 
         <soap:body parts="" use="literal" /> 
        </mime:part> 
        <mime:part> 
         <mime:content part="parameters" type="text/xml" /> 
        </mime:part> 
       </mime:multipartRelated> 
      </output> 
      <fault name="WhatizitException"> 
       <soap:fault use="literal" name="WhatizitException" /> 
      </fault> 
     </operation> 
    </binding> 
    <service name="whatizit"> 
     <port binding="tns:pipelineBinding" name="pipeline"> 
      <!--<soap:address location="http://www.ebi.ac.uk/webservices/whatizit/ws"/> --> 
      <soap:address location="http://localhost:8080/whatizit/ws" /> 
     </port> 
    </service> 
</definitions> 

Jetzt bin ich sehr neu für Web-Services mit WSDL. Ich erlebe zwei Fehler, die auf dieser Linie, die ich nicht beheben kann:

<output> 
       <mime:multipartRelated> 
        <mime:part> 
         <soap:body parts="" use="literal" /> 
        </mime:part> 
        <mime:part> 
         <mime:content part="parameters" type="text/xml" /> 
        </mime:part> 
       </mime:multipartRelated> 
      </output> 

Mehrere Anmerkungen an dieser Linie gefunden:

- cvc-attribute.3: The value '' of attribute 'parts' on element 'soap:body' is not valid with respect to its type, 
    'NMTOKENS'. 
    - cvc-minLength-valid: Value '' with length = '0' is not facet-valid with respect to minLength '1' for type 
    'NMTOKENS'. 

Jeder Vorschlag geschätzt wird. Danke für Ihre Hilfe.

+0

Ich werde ein wenig später schauen, aber diese WSDL ist nicht WSI-konform, was erklären wird, warum es so schwierig zu verwenden ist. Ich habe es in die SOAP-Benutzeroberfläche importiert und werde versuchen, in Kürze darauf zuzugreifen, aber es verletzt BP2703 der WSI-Konformität. – Namphibian

+0

Danke. Ich schaffte es, das Problem zu lösen, wie folgt: Grundsätzlich Eclipse wurde die Teile abgelegt fragen vom Typ NMTOKENS zu sein. – Martin

+0

Martin fügen Sie es als Antwort und akzeptieren Sie Ihre eigene Antwort. Es könnte jemand anderem helfen. – Namphibian

Antwort

1

Schließlich gelang es mir, das Problem zu lösen. Im Grunde verlangte Eclipse, dass die Teile vom Typ nmtokens waren. Also änderte ich den Block aus:

<output> 
      <mime:multipartRelated> 
       <mime:part> 
        <soap:body parts="" use="literal" /> 
       </mime:part> 
       <mime:part> 
        <mime:content part="parameters" type="text/xml" /> 
       </mime:part> 
      </mime:multipartRelated> 
     </output> 

zu

<output> 
       <mime:multipartRelated> 
        <mime:part> 
         <soap:body parts="nmtokens" use="literal" /> 
        </mime:part> 
        <mime:part> 
         <mime:content part="parameters" type="text/xml" /> 
        </mime:part> 
       </mime:multipartRelated> 
      </output> 

Und der Fehler verschwindet.

Verwandte Themen