【发布时间】:2009-12-19 11:14:20
【问题描述】:
我在 C# 中整合了一些必须匹配特定数据格式的服务;例如字符串长度、各种枚举和格式。我有后备方法来验证 SOAP 调用并以友好消息和预定义的错误代码进行响应,但我想将其他信息放入 WDSL(因此很明显,字段 x 只能是 15 个字母字符仅没有数字或标点符号)。
这可能吗,如果可以,是否有任何示例和/或教程?
【问题讨论】:
标签: c# soap xsd xml-serialization wsdl
我在 C# 中整合了一些必须匹配特定数据格式的服务;例如字符串长度、各种枚举和格式。我有后备方法来验证 SOAP 调用并以友好消息和预定义的错误代码进行响应,但我想将其他信息放入 WDSL(因此很明显,字段 x 只能是 15 个字母字符仅没有数字或标点符号)。
这可能吗,如果可以,是否有任何示例和/或教程?
【问题讨论】:
标签: c# soap xsd xml-serialization wsdl
获取 SOAP 消息,从中生成 XSD,然后编辑 XSD,直到所有验证内容都在其中。将 XSD 与 WSDL 一起提供给您的客户。
当你们都使用相同的 XSD 验证消息时,问题应该就消失了。
【讨论】:
首先,您应该知道 .NET 不会根据 WSDL 中的模式验证 SOAP 消息。例如,如果您的输入消息的一部分显示 maxLength 为 50,则当您被发送 51 时不会出现错误或异常。
其次,不可能以您可以控制确切架构的方式调整您的类。例如,您不能将 maxLength 属性引入 WSDL。
第三,如果你必须完全控制WSDL,那么你需要手写。您永远无法完全控制 .NET 生成的 WSDL。
最后,您看到这里谈论的是 ASMX Web 服务。您不应该将 ASMX Web 服务用于新开发 - 它们已被 WCF 取代。
【讨论】: