如何使用使用 .xsd 模式作为参数的 SOAP Web 服务?
How to consume SOAP Webservice that uses .xsd Schemas as parameters?
我正在尝试使用 Visual Studio 将此 SOAP 与 .NET Web 应用程序一起使用。
我的问题是,如果我的 wsdl 只描述了两种方法; “processMessage
”和“processOCIMessage
”。他们期望的消息是一个适合 30 something xsd 模式之一的字符串,使用 API 的最佳方式是什么?
比如我想获取一些用户信息。我需要写一个符合这个模式的字符串:
<xs:complexType name="UserGetRequest19">
<xs:annotation>
<xs:documentation>
Request to get the user information. The response is either
UserGetResponse19 or ErrorResponse.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="core:OCIRequest">
<xs:sequence>
<xs:element name="userId" type="UserId"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
我知道如何传递 answer to this question 中描述的简单参数。但是我如何使用 Schemas 做到这一点?
Visual Studio 中是否有工具可以将它们变成用户友好的 C# classes/models?或者我是否需要手动输入 XML 字符串,转义特殊字符并将其作为参数传递给“processMessage
”?
首先,使用内置工具添加一个从 WSDL 开始的 Visual Studio Web 引用。这应该会创建您的客户端代理,并且数据传输 classes;你最终会得到一个 class 和 属性 作为字符串 processMessageReturn
,另一个 class 和 属性 作为 processOCIMessageReturn
,也作为一个字符串。
接下来,运行 通过 xsd.exe 您感兴趣的 XSD 使用 /c
开关生成您的 classes。
从那时起,您将需要编写代码来相应地实例化和填充您在第二步中创建的 classes。使用 XmlSerializer 将 "top" class 序列化为字符串,然后将该字符串分配给第一步中提到的 属性 。您无需担心将 XML 编码为文本节点,因为框架内置的 XML 序列化程序会为您处理这件事。
我正在尝试使用 Visual Studio 将此 SOAP 与 .NET Web 应用程序一起使用。
我的问题是,如果我的 wsdl 只描述了两种方法; “processMessage
”和“processOCIMessage
”。他们期望的消息是一个适合 30 something xsd 模式之一的字符串,使用 API 的最佳方式是什么?
比如我想获取一些用户信息。我需要写一个符合这个模式的字符串:
<xs:complexType name="UserGetRequest19">
<xs:annotation>
<xs:documentation>
Request to get the user information. The response is either
UserGetResponse19 or ErrorResponse.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="core:OCIRequest">
<xs:sequence>
<xs:element name="userId" type="UserId"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
我知道如何传递 answer to this question 中描述的简单参数。但是我如何使用 Schemas 做到这一点?
Visual Studio 中是否有工具可以将它们变成用户友好的 C# classes/models?或者我是否需要手动输入 XML 字符串,转义特殊字符并将其作为参数传递给“processMessage
”?
首先,使用内置工具添加一个从 WSDL 开始的 Visual Studio Web 引用。这应该会创建您的客户端代理,并且数据传输 classes;你最终会得到一个 class 和 属性 作为字符串 processMessageReturn
,另一个 class 和 属性 作为 processOCIMessageReturn
,也作为一个字符串。
接下来,运行 通过 xsd.exe 您感兴趣的 XSD 使用 /c
开关生成您的 classes。
从那时起,您将需要编写代码来相应地实例化和填充您在第二步中创建的 classes。使用 XmlSerializer 将 "top" class 序列化为字符串,然后将该字符串分配给第一步中提到的 属性 。您无需担心将 XML 编码为文本节点,因为框架内置的 XML 序列化程序会为您处理这件事。