2017-06-20 1 views
1

Je le code suivant pour mon wsdl web applicaiton:erreur complexe WSDL cryptogramme

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

Maintenant, je suis très nouveau pour les services Web en utilisant WSDL. Je rencontre deux erreurs dans cette ligne que je ne peux pas fixer:

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

annotations multiples trouvées sur cette ligne:

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

Toute suggestion sera appréciée. Merci de votre aide.

+0

Je jetterai un coup d'oeil un peu plus tard mais ce WSDL n'est pas conforme à WSI ce qui explique pourquoi il est si difficile à utiliser. Je l'ai importé dans l'interface utilisateur SOAP et j'essaierai d'y accéder sous peu, mais il viole BP2703 de la conformité WSI. – Namphibian

+0

Merci. J'ai réussi à résoudre le problème comme suit: de type partie content = "paramètres": Fondamentalement, Eclipse demandait aux pièces déposées à être NMTOKENS type. – Martin

+0

Martin l'ajoute comme réponse et accepte ta propre réponse. Cela pourrait aider quelqu'un d'autre. – Namphibian

Répondre

1

Enfin, j'ai réussi à résoudre le problème. Fondamentalement, Eclipse demandait que les pièces classées soient de type nmtokens. Donc, j'ai changé le bloc de:

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

à

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

Et l'erreur disparait.