2013-03-27 3 views
0

Я хочу создать wsdl, используя 3 xsd-файла. Как вы это?Как создать wsdl из xsd

Я попытался это в командной строке:

wsdl.exe /language:cs /parameters: c:\myService\Contract\HeaderData.xsd c:\myService\Contract\MyData.xsd c:\myService\Contract\Messages.xsd /out: MyWsdl.wsdl 

Что делать я неправильно?

+0

Я видел, что кто-то кодировался следующим образом: wsdl.exe/language: cs/parameters: header: c: \ myService \ Contract \ HeaderData.xsd данные: c: \ myService \ Contract \ MyData.xsd сообщение: c : \ myService \ Contract \ Messages.xsd/out: MyWsdl.wsdl. Это глупо. Но я забыл написать эту команду. – user1531040

ответ

3

Я считаю, что здесь есть недоразумение. Скорее всего, wsdl.exe в вашем рисунке относится к Microsoft's tool, который описан как:

The Web Services Description Language инструмент генерирует код для XML Web-сервисов и клиентов веб-служб XML из контракта WSDL-файлов, XSD схемы и .discomap документы обнаружения.

Из того, что вы, кажется, подразумеваете, запрашивая выход, как файл WSDL, я могу с уверенностью предположить, что вы действительно пытаетесь создать файл WSDL, начиная с XSD-файлов. Ниже я пытаюсь объяснить, почему вы не можете сделать это так просто и какие у вас есть варианты.

На приведенной ниже диаграмме показана модель, лежащая в основе спецификации WSDL 1.1.

QTAssistant DataSet view of the WSDL 1.1 XSD

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

Чтобы генерировать WSDL (ы) из XSD (ов), вы поняли, что вам нужно предоставить еще несколько данных для инструмента, который автоматически генерирует WSDL для вас. Например, какие операции вы хотите описать в своем WSDL? Для каждого из них, каков вход, скорее всего, выход и, возможно, одна или несколько ошибок? Как бы вы их группировали (portType = interface)? Какое обязательство вы хотите использовать: HTTP, SOAP? Какая версия SOAP? SOAP over: HTTP, MQ? SOAPAction? Сколько WSDL-файлов: 1 или 3?

Некоторые инструменты могут задавать вам ряд вопросов (ввод данных/мастеров) по вышеприведенным строкам, а затем создавать WSDL (ы) для вас.Другие используют предопределенные шаблоны при реализации конструкций схемы XSD (например, IFX имеет определенный способ определения элементов Request/Response), поэтому на основе этих допущений специализированный инструмент, такой как QTAssistant (я связан с ним), попросит вас меньше вопросы, но при этом создаются WSDL.

Я помню один или два онлайн-инструментария, которые позволяли пользователю загружать файлы XSD, а затем создавать WSDL после запроса нескольких вопросов, но я не могу их больше найти ... вид like this one ...

+0

Я прочитаю, если у меня будет время. Я решил эту проблему, изменив код. – user1531040

0

Вы не можете автоматически генерировать WSDL из XSD таким образом. Чтобы создать WSDL, вам нужно начать с нового WSDL и импортировать этот XSD.

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

Альтернативный способ - использовать XSD в C# для создания службы, а затем извлечь конкретный WSDL из этой службы, но это не является предпочтительным, так как многие команды предпочитают contract first web services.

Смежные вопросы