如何使C#Web服务生成soapenv命名空间而不是soap?

时间:2010-02-24 22:35:38

标签: c# .net xml web-services

有没有办法制作一个C#/ .NET网络服务,通常会像这样生成XML

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
 <DHeader xmlns="http://www.abc.com" />
</soap:Header>
  <soap:Body>
    <Response xmlns="http://www.abc.com">
      <Result>
        <ErrorObject ObjectID="string" ErrorCode=""  />          
      </Result>
     </Response>
   </soap:Body>
</soap:Envelope>

生成这样的XML。

<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapv:Header>
    <DHeader xmlns="http://www.abc.com" />
  </soapenv:Header>
  <soapenv:Body>
    <Response xmlns="http://www.abc.com">
      <Result>
        <ErrorObject ObjectID="string" ErrorCode=""  />          
      </Result>
    </Response>
  </soapenv:Body>
</soapenv:Envelope>

尝试解决使用.NET Web服务的AXIS客户端的问题。 AXIS正在阻塞soap命名空间,需要一个soapenv命名空间。无法更改AXIS端。

任何想法或评论都会很棒。

以下是所要求的确切错误。

line -1: Element Envelope@http://www.w3.org/2003/05/soap-envelope is not a valid Envelope@http://schemas.xmlsoap.org/soap/envelope/ document or a valid substitution. 

1 个答案:

答案 0 :(得分:1)

soapenv不是名称空间 - 它是名称空间前缀。

只要前缀引用相同的命名空间,soapsoapenv引用相同的内容,并具有相同的含义。

任何版本的AXIS都不太可能被破坏,特别是对待前缀。你应该假设你有一个不同的问题。请发布您收到的确切错误。