gpt4 book ai didi

wcf - 在 WSDL 文件中包含模式类型

转载 作者:行者123 更新时间:2023-12-04 07:39:45 25 4
gpt4 key购买 nike

我手工创建了一个 WSDL,它只有一个操作,没有输入参数和输出参数。

当我尝试从此 WSDL 创建客户端时出现以下错误:

Cannot import wsdl:portType Detail: An exception was thrown while running a WSDL import extension: System.ServiceModel.Description.DataContractSerializerMessageContractImporter Error: Schema with target namespace 'http://www.xmlns.mycompany.com/GAME/service/Associate/1.1/' could not be found. XPath to Error Source: //wsdl:definitions[@targetNamespace='http://www.xmlns.mycompany.com/GAME/service/Associate/1.1/']/wsdl:portType[@name='GAMEAssociateIntf'] C:\toolbox\BlueTest\BloodRedTest\BloodRedTest\Service


types (要在客户端中使用)需要从 WSDL 中存在的 XML 生成。我认为,在添加服务引用时,由于 XML 中的某些错误,该工具无法创建它。 xsd 似乎是问题所在。

需要在 WSDL 中进行哪些更改才能创建代理?

注意:我试图包含在 WSDL 本身中定义的 xml 类型。 [我不需要用于架构防御的单独文件]

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>

引用 :
  • WSDL - no input - best practice
  • What does this WCF error mean: "Custom tool warning: Cannot import wsdl:portType"
  • Writing a WSDL 1.1 Web Service Contract by Hand
  • Writing Contract-First Web Services
  • generate wcf server code from wsdl files
  • How to get wsdl input and output names to appear
  • Inline Schema
  • Hand rolled SOAP request
  • 最佳答案

    我花了一些时间试图找出问题。 wsdl 的 部分不正确,应该如下所示。有了这个,我现在可以用 Java 生成客户端人工制品。

    <types>
    <schema targetNamespace="http://www.xmlns.mycompany.com/GAME/service/Associate/1.1/"
    xmlns="http://www.w3.org/2001/XMLSchema">
    <element name="myData">
    <complexType/>
    </element>

    <element name="myDataResponse">
    <complexType/>
    </element>
    </schema></types>

    更新

    根据下面的对话。添加了 nillable属性。
    <element name="myDataResponse" nillable="true">
    <complexType/>
    </element>

    请求
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.xmlns.mycompany.com/GAME/service/Associate/1.1/">
    <soapenv:Header/>
    <soapenv:Body>
    <ns:myData/>
    </soapenv:Body>
    </soapenv:Envelope>

    回复
    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <myDataResponse xsi:nil="true" xmlns="http://www.xmlns.mycompany.com/GAME/service/Associate/1.1/"/>
    </s:Body>
    </s:Envelope>

    关于wcf - 在 WSDL 文件中包含模式类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15815095/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com