Incluir tipo de esquema no arquivo WSDL
Eu criei um WSDL manualmente que tem apenas uma operação sem parâmetro de entrada e nenhum parâmetro de saída.
Eu estou recebendo seguinte erro quando tento criar um cliente a partir deste WSDL:
Não é possível importar wsdl: portType Detail: Uma exceção foi lançada durante a execução de uma extensão de importação WSDL: System.ServiceModel.Description.DataContractSerializerMessageContractImporter Erro: esquema com namespace de destino 'http://www.xmlns.mycompany.com/GAME/service/Associate/1.1/' Não pode ser achado. XPath para erro Fonte: // wsdl: definitions [@ targetNamespace = 'http://www.xmlns.mycompany.com/GAME/service/Associate/1.1/'] / wsdl: portType [@ name =' GAMEAssociateIntf '] C: \ caixa de ferramentas \ BlueTest \ BloodRedTest \ BloodRedTest \ Service
otypes
(para ser usado no cliente) precisa ser gerado a partir do XML presente no WSDL. Eu acho que, ao adicionar Service Reference, a ferramenta está falhando em criá-lo devido a algum erro no XML. oxsd parece ser o problema.
Que mudança precisa ser feita no WSDL para criar o proxy?
Nota: Estou tentando incluir os tipos xml definidos no próprio WSDL. [Eu não preciso de um arquivo separado para a defenição de esquema]
WSDL
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="GAMEAssociate"
targetNamespace="http://www.xmlns.mycompany.com/GAME/service/Associate/1.1/"
xmlns:tns="http://www.xmlns.mycompany.com/GAME/service/Associate/1.1/"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:wsp="http://www.w3.org/ns/ws-policy"
>
<types>
<xsd:schema>
</xsd:schema>
<xsd:element name="myData">
<xsd:complexType />
</xsd:element>
<xsd:element name="myDataResponse">
<xsd:complexType />
</xsd:element>
</types>
<message name="getAllVicePresidentsRequest">
<part element="tns:myData" name="getAllVicePresidentsRequest"/>
</message>
<message name="getAllVicePresidentsResponse">
<part element="tns:myDataResponse" name="getAllVicePresidentsResponse"/>
</message>
<portType name="GAMEAssociateIntf">
<operation name="getAllVicePresidents">
<input message="tns:getAllVicePresidentsRequest"/>
<output message="tns:getAllVicePresidentsResponse"/>
</operation>
</portType>
<binding name="GAMEAssociateIntfBinding" type="tns:GAMEAssociateIntf">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="getAllVicePresidents">
<soap:operation soapAction="http://www.xmlns.mycompany.com/GAME/wsdl/AssociateIntf/1.4/getAllVicePresidentsRequest"
style="document"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="GAMEAssociate">
<port binding="tns:GAMEAssociateIntfBinding" name="GAMEAssociateSOAP">
<soap:address location="http://localhost:8014/associateservice/GAMEAssociate.svc"/>
</port>
</service>
</definitions>
REFERÊNCIAS:
WSDL - sem entrada - melhor práticaO que significa este erro WCF: "Aviso de ferramenta personalizada: não é possível importar wsdl: portType"Escrevendo um contrato de serviço da Web WSDL 1.1 à mãoEscrevendo Serviços da Web em Primeiro Contratogerar código do servidor wcf a partir de arquivos wsdlComo obter nomes de entrada e saída do wsdl para aparecerEsquema InlinePedido SOAP laminado manualmente