一个是从Delphi 7应用程序发送的
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:NS2="http://tempuri.org/">
<NS1:SomeTagName xmlns:NS1="http://tempuri.org/">
<SomeID xsi:type="xsd:int">12345</SomeID>
<SomeStatus xsi:type="NS2:SomeStatusType">SOME_OK_STATUS</SomeStatus>
</NS1:SomeTagName>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
从C#应用程序开始的一项任务。
<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<SomeTagName xmlns="http://tempuri.org/">
<SomeID>12345</SomeID>
<SomeStatus>SOME_OK_STATUS</SomeStatus>
</SomeTagName>
</s:Body>
</s:Envelope>
我对XML不是很熟悉,所以进行了一些研究,目前我能够告诉您以下几点:
- UTF-8是没有编码信息的文档的默认值 - 参考链接 - 这意味着在这里没有区别。
- XML命名空间提供了一种避免元素名称冲突的方法 - 参考链接 - 命名空间是不同的(s:和SOAP-ENV:),但已经被指定,并且据我所知也不会有任何区别。
但是模式怎么样呢?不确定。信封中有一些额外的属性或者一些ID和状态标签的数据类型。但是这些来自服务WSDL(我猜?!)。
最后的问题:
- 为什么用C#(vs2012)编写的应用程序不会将所有额外的模式信息添加到XML中。如果XML具有这些信息或没有这些信息,真的重要吗?
- 有人能告诉我这些是否可以视为相同的吗?