2016-05-06 3 views
2

Мы обсуждаем XML-интерфейс с поставщиком и обсуждаем, должен ли он содержать несколько конечных точек для разных типов объектов, или один - аргумент для нескольких состоит в том, чтобы избежать одного огромного XSD.Создание клиента XML/SOAP из нескольких XSD?

Я знаю .Net имеет отличные инструменты для написания клиента/сервера из XSD - автоматического генерации классов и т. Д., Если мы поставляем несколько XSD для нескольких конечных точек, это значительно усложняет или делает инструменты Visual Studio сделать это простым? Я не делал SOAP в течение некоторого времени, а не на C#, поэтому я не знаю деталей, но мне нужно попробовать и направить то, что доставлено в наших интересах!

Также: должен ли я запрашивать WSDL или XSD ... долгое время с тех пор, как я это сделал!

+0

Вы потребитель или поставщик услуг? –

+0

Мы будем вытаскивать данные со своего сервера так, чтобы потребитель. Насколько это возможно, я хочу, чтобы VS выполнял для меня работу :) –

ответ

1

Если вы звоните в службу по мылу, я не уверен, почему вы беспокоитесь о том, что вам нужно создавать классы из XSD напрямую.

Просто попросите своего поставщика услуг разоблачить конечную точку мыла с помощью WSDL-адреса, и вы сможете сгенерировать весь код на стороне клиента, используя визуальную студию, включая прокси-сервер, типы и привязки.

Это независимо от того, насколько важны операции обслуживания и файлы XSD, определяющие типы услуг.

Я вижу ссылки на «мы обеспечить XSD» и интересно, если они просто означают WSDL, или, если есть какой-то другой способ, которым они могли бы делать это, чем SOAP

Ну, возможно, они рассматривают возможность разоблачения операций HTTP на ресурсах в службе стиля REST с использованием xml, а не json, и в этом случае XSD будут в основном достаточными, если они расскажут вам, какие операции доступны для каких типов. Я бы оценил это как маловероятное. В качестве альтернативы они могут захотеть открыть службу стиля POX, но это также маловероятно.

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

Даже если они сообщают вам об определении услуги, вы все равно можете столкнуться с проблемами при вызове службы, открытой через SOAP 1.2, которая, как правило, менее функциональна, поэтому, если у вас есть какой-либо элемент управления, вы должны запросить службу SOAP 1.1 (за исключением вы оба используете одни и те же стеки технологий, и в этом случае это не должно иметь большого значения).

+0

У меня одна степень удалена из прямого разговора _and_ ржавчина с помощью веб-сервисов. Я вижу ссылки на «мы предоставим XSD» и зададимся вопросом, просто ли они означают WSDL, или если есть какой-то другой способ, которым они могли бы это сделать, чем SOAP - похоже ли это? –

+0

@ Mr.Boy Я обновил свой ответ. –

1

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

WSDL - это XML-документ, описывающий веб-службу. Он показывает, какие операции доступны и как данные должны быть структурированы для отправки на эти операции.

Документы WSDL имеют связанный с ним XSD, которые показывают, что действительно для размещения в документе WSDL.

Вам необходимо запросить WSDL и XSD, чтобы вы могли сгенерировать свою веб-ссылку с помощью какого-либо инструмента/программного обеспечения, такого как svcutil.exe. Он генерирует код ссылки и файл веб-конфигурации, и вы можете объединиться с вашим проектом. Обычно я сохраняю WSDL и XSD (ы) в одной папке для поиска svcutil.

svcutil /wrapped /serializer:XmlSerializer /out:MyCode.cs /config:MyConfig.config /namespace:*,MyNameSpace "PathForWsdlAndXsd\Mywsdl.wsdl" 
Смежные вопросы