【问题标题】:Custom SOAP response of ASMX serviceASMX 服务的自定义 SOAP 响应
【发布时间】:2011-02-13 10:20:20
【问题描述】:

我正在尝试实现旧 Web 服务的自定义 SOAP 响应。

目前它具有以下格式:

<ServiceResponse>
    <ServiceResult>some return value</ServiceResult>
</ServiceResponse>

我需要像这样添加字符串值:

<ServiceResponse>NEW VALUE
    <ServiceResult>some return value</ServiceResult>
</ServiceResponse>

我不确定这是否是个好主意?这个 SOAP xml 有效吗?如果可以,如何实现?

任何建议或想法将不胜感激

【问题讨论】:

  • 为什么需要在 SOAP 响应中插入自定义值?为什么不使用自定义 HTTP 标头呢?这将更容易实施并且不会破坏现有客户。另外,为什么不简单地向响应对象添加一个可以保存值的新属性?
  • 我知道有很多方法可以更好地实现它,但请记住,这是一个遗留系统,使用此服务的外部系统实际上需要此修复。感谢您的快速回复。
  • 我从未见过这样的 SOAP 服务返回数据。不管是不是遗产,我想你可能误解了。您可以发布描述该数据的架构部分吗?

标签: asp.net xml web-services soap


【解决方案1】:

那个xml n't有效,在一个节点中你可以't有文本和一个像你一样的子节点。

如果你在 .NET 中编写你的 web 服务,我建议你构造一个 Serializable 类来代表你想要返回的数据结构,当你创建你的 web 服务时,它会自动转换成一个有效的肥皂数据结构.当您在 Service.asmx?wsdl 浏览 WSDL 时,您还可以看到响应的定义。

如果您想了解更多关于 SOAP 的信息,请查看 w3.org 的规范

编辑:删除了 marc_s 指出的虚假声明

【讨论】:

  • 实际上:是的,您可以在 XML 节点内拥有“混合内容”——文本和其他标签。这就是 XHTML 的全部意义......是的,您甚至可以在 XML 模式中表达并验证它! (所以它 IS 有效) - 请参阅 Complex types with mixed content
  • @marc_s:我的立场是正确的!谢谢你的链接,我不知道。
猜你喜欢
  • 2012-05-28
  • 2021-06-15
  • 1970-01-01
  • 2013-07-16
  • 1970-01-01
  • 2012-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多