.net - 为什么我的 .NET Web 服务 XML 与其他人的不同?

标签 .net xml web-services soap

我是 .NET Web 服务的新手,并且对这个问题感到非常困惑。 TCP 查看器显示我的测试应用程序与我的 Web 服务通信形成其 XML,如下所示:

<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">
    <GetSupply xmlns="http://webservices.florecom.org/commercial/customer/">
      <Request>
        <SupplyRequest>
          <Header xmlns="urn:fec:florecom:xml:data:draft:SupplyStandardMessage:5">
            <UserName>xxx</UserName>
            <Password>xxx</Password>
            <MessageDateTime>2012-01-17T14:59:44.0438037+02:00</MessageDateTime>
            <MessageSerial>0</MessageSerial>
          </Header>
          <Body xmlns="urn:fec:florecom:xml:data:draft:SupplyStandardMessage:5">
            <SupplyRequestDetails>
              <SupplyRequestLine xmlns="urn:fec:florecom:xml:data:draft:ReusableAggregateBusinessInformationEntity:3"/>
            </SupplyRequestDetails>
          </Body>
        </SupplyRequest>
      </Request>
    </GetSupply>
  </s:Body>
</s:Envelope>

但是我的 Web 服务正在从另一家公司接收 XML,如下所示:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <fsm:SupplyRequest xmlns:qdt="urn:un:unece:uncefact:data:draft:QualifiedDataType:5" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:4" xmlns:ram="urn:un:unece:uncefact:data:draft:ReusableAggregateBusinessInformationEntity:3" xmlns:fsm="urn:fec:florecom:xml:data:draft:SupplyStandardMessage:5">
      <fsm:Header>
        <fsm:UserName>xxx</fsm:UserName>
        <fsm:Password>xxx</fsm:Password>
        <fsm:MessageID>634617184436505019</fsm:MessageID>
        <fsm:MessageDateTime>2012-01-09T15:07:23.6505019+01:00</fsm:MessageDateTime>
        <fsm:MessageSerial>0</fsm:MessageSerial>
      </fsm:Header>
      <fsm:Body>
        <fsm:SupplyRequestDetails>
          <SupplyRequestLine xmlns="urn:fec:florecom:xml:data:draft:ReusableAggregateBusinessInformationEntity:3"/>
        </fsm:SupplyRequestDetails>
      </fsm:Body>
    </fsm:SupplyRequest>
  </soap:Body>
</soap:Envelope>

谁能帮忙解释一下为什么吗?这些是不同版本的 SOAP 吗?谢谢

更新

有趣的是,在这种情况下(使用第二条 XML 消息)发生的问题是,当服务方法被命中(使用断点来检查这一点并使用 Fiddler 欺骗消息)时,.NET 无法绑定(bind)方法的参数(称为“Request”),使其值保持为 NULL

最佳答案

如果您指的是 SOAP 与 SOAP ,它实际上并不重要。这些节点是命名空间,以便使用者知道文档的格式。实际上,知道 http://schemas.xmlsoap.org/soap/envelope 定义的模式的人会以相同的方式处理它们。

两者都引用soap 1.1命名空间

关于.net - 为什么我的 .NET Web 服务 XML 与其他人的不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8924055/

相关文章:

xml - 如何使用 XSD 导入/包含其他 XSD 文件验证 xml?

java - 字符是否在字符集中? Java 中 Web 服务的验证

c# - 从 C# 调用 PHP Web 服务

java - 关于 Web 服务和 Portlet 的推荐书籍

c# - 假人的表达树?

.net - 如何使用Visual Studio解决方案和TFS设置ElasticSearch数据备份?

.net - .NET 中队列 <T> 的大小限制?

java - 未找到 Java 类 java.util.ArrayList... 和 MIME 媒体类型文本/xml 的消息正文编写器

.net - IEnumerable 为空?

c# - 如何将文件夹中的所有 Xml 文件加载到 XmlDocument