我使用C#在ASP.NET中开发了一个Web服务。其中一个Web方法使用xsd命令返回从xsd模式文件创建的复杂类型。
许多客户端设备使用此Web服务没有问题。 WindowsMobile,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个其他客户,所以这不是一个有吸引力的选择。
有没有办法让新客户端使用它而不会破坏旧客户端?