В настоящее время я пишу клиент веб-сервиса в delphi 7 (сама служба находится в C#). все, кажется, работает отлично. когда я запускаю скрипач, чтобы посмотреть, как выглядит xml из моего клиентского приложения, я заметил, что выглядит иначе, когда я пишу «то же» клиентское приложение в C#. Ниже приведены два xml`sЭти два XML одинаковы?
один, который идет из приложения 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 по умолчанию для документов без кодирования информации - ref. here - t hat означает, что здесь нет разницы
- Пространства имен XML предоставляют способ избежать конфликтов имен элементов - ref. here - пространства имен разные (s: и SOAP-ENV :), но они указаны, и, насколько мне известно, не должно меняться либо
но как насчет схемы - не уверен в этом. В Envelope или datatypes есть некоторые дополнительные атрибуты в тегах SomeID и SomeStatus. Но это произошло из службы wsdl (я не хочу ?!).
Заключительные вопросы:
- Почему приложение написано в C# (vs2012) не добавлять все дополнительные схемы информацию XML-. Действительно ли это имеет значение, если у них есть xml или нет?
- может ли кто-нибудь сказать, могут ли они считаться одинаковыми?