SOAP, используя префиксы в тегах - PullRequest
0 голосов
/ 19 июня 2010

У меня плохо с SOAP.Сторонний сервис SOAP дал мне пример кода для использования в своих API.Код, который они дают (который я ТОЧНО скопировал в мое решение), не выдает обязательный префикс перед всеми тегами.

В данный момент код, который они мне дают, заставляет меня делать запросы / ответы, которые не имеютпрефикс ко всем тегам ...

<tagName />

.Как мне сделать так, чтобы все теги выглядели так ...

<com:tagName />

Вот атрибуты для моего WebServicesClient

[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name = "catalogHttpBinding", Namespace = "http://com.etilize.spexlive")]
[System.Xml.Serialization.XmlIncludeAttribute(typeof(CategoryCollection))]
public partial class catalog : Microsoft.Web.Services3.WebServicesClientProtocol

1 Ответ

1 голос
/ 19 июня 2010

Прежде всего, вы используете WSE, который устарел. Не делайте этого, если у вас нет другого выбора вообще.

Когда я говорю «нет другого выбора», я говорю «не могу бросить работу».

Во-вторых, это не проблема SOAP. Это базовый XML. Вам нужно, чтобы ваши элементы находились в определенном пространстве имен. Так как похоже, что вы использовали правильный устаревший инструмент для генерации вашего клиента, есть вероятность, что ваши элементы уже находятся в правильном пространстве имен.

Это может показаться вам неправильным, потому что вы не понимаете, что в XML пространство имен префиксы не имеют значения - только префикс является просто псевдонимом для пространства имен, и это пространство имен имеет значение , В частности, следующие три примера идентичны:

<a:ElementName xmlns:a="urn:foo"/>

<b:ElementName xmlns:b="urn:foo"/>

<ElementName xmlns="urn:foo"/>

Если вашему поставщику действительно требуется определенный префикс (не конкретное пространство имен), то он сильно нарушен, нарушает международные стандарты и должен быть публично осмеянным как некомпетентный. Если каждый поставщик реализует свою собственную версию стандартов XML, то вскоре это станет стандартом, и мы не сможем зависеть от него. Поскольку большая часть возможностей XML связана с тем, что он является стандартом, это будет неудачно.

...