【发布时间】:2014-02-12 23:45:12
【问题描述】:
我们有一个 xsd 模式,它概述了我们系统中所有可能的数据元素,有些是简单类型元素,有些是复杂类型。我们将此模式提供给另一位将尝试使用 SOAP 编写 Web 服务的开发人员。愚蠢示例中的 xsd 如下所示。
<xs:element name="Element1"> .... </xs:element>
<xs:element name="Element2"> .... </xs:element>
<xs:element name="Element3"> .... </xs:element>
<xs:element name="Element4"> .... </xs:element>
我打算通过调用他的 WebService 方法将我们的数据发送给他。由于我的系统生成的消息类型,我将有两种类型的消息。第一种仅包含 Element1 和 Element4,而第二种可能包含 Element3、Element4 和 Element1。那么他在这里有什么选择呢?
- 他是否必须创建两个单独的 Web 服务并且我会相应地使用它们?
- 创建一个 Web 服务,然后我将为我的两种消息类型使用该 Web 服务。
在第二个选项中,它是否会产生任何架构验证错误?如果是这样,有没有办法绕过它?我可以向他发送一个自定义 SOAP 标头以指示我发送的消息类型,以便他可以针对特定的 xsd 元素对其进行验证吗?
我对 WebService 比较陌生,所以如果我误解了 SOAP、XSD 和 WebService 的基本机制,请随时指出或纠正我的上述任何假设。
【问题讨论】:
标签: c# wcf web-services soap