XSD命名空间与不同的客户端

时间:2013-02-13 16:12:37

标签: c# asp.net xsd

我使用C#在ASP.NET中开发了一个Web服务。其中一个Web方法使用xsd命令返回从xsd模式文件创建的复杂类型。

许多客户端设备使用此Web服务没有问题。 WindowsMo​​bile,PC。所有都是.Net应用程序。

现在有一个VB6客户端需要使用SOAP Toolkit 3.0来使用这个Web服务,并且他可能会因序列化xml数据中的不同命名空间而出现问题。

<?xml version="1.0" encoding="utf-8"?>
<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:Body>
      <GetProductionDataMachineryResponse xmlns="http://myFactory.it/">
         <GetProductionDataMachineryResult xmlns="http://tempuri.org/XMLSchemaData.xsd">
            <ResultRequest>Ok or No Data Found </ResultRequest>
            ..... 
         </GetProductionDataMachineryResult>
      </GetProductionDataMachineryResponse>
   </soap:Body>
</soap:Envelope>

如果我在.cs文件中删除以下注释

[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://tempuri.org/XMLSchemaData.xsd")]
[System.Xml.Serialization.XmlRootAttribute(Namespace="http://tempuri.org/XMLSchemaData.xsd", IsNullable=false)]

VB6客户端工作正常。但其他客户需要更新Web引用。 有超过80个其他客户,所以这不是一个有吸引力的选择。

有没有办法让新客户端使用它而不会破坏旧客户端?

0 个答案:

没有答案