Генерация WSDL из файла XSD

Другим вариантом может быть использование zsh, которое учитывает нотацию \e.

#!/bin/zsh
37
задан informatik01 24 November 2013 в 22:55
поделиться

3 ответа

Вы не можете - XSD описывает аспекты ДАННЫХ, например, веб-службы - WSDL описывает ФУНКЦИИ веб-служб (вызовы методов). Обычно вы не можете вычислить вызовы методов только по своим данным.

На самом деле это две отдельные, отличительные части уравнения. Для простоты вы часто импортируете свои определения XSD в WSDL в теге .

(спасибо Cheeso за указание на мое неточное использование терминов)

50
ответ дан 27 November 2019 в 04:23
поделиться

Я хотел бы отличаться от marc_s по этому поводу, который написал:

XSD описывает аспекты DATA, например веб-сервиса - WSDL описывает ФУНКЦИИ веб-сервисов (вызовы методов). Обычно вы не можете выяснить вызовы методов из вашего только данные.

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

Мы часто думаем о WSDL как о наборе функций, но это потому, что инструменты веб-сервисов обычно генерируют прокси на стороне клиента, которые предоставляют операции WSDL как методы или вызовы функций. Но WSDL этого не требует. Это побочный эффект инструментов.

РЕДАКТИРОВАТЬ : Кроме того, в общем случае XSD не определяет аспекты данных веб-службы. XSD определяет элементы, которые могут присутствовать в совместимом XML-документе. Таким документом можно обмениваться как сообщением через конечную точку веб-службы, но это не обязательно.


Возвращаясь к вопросу, я бы ответил на исходный вопрос немного иначе. Я скажу ДА, возможно создать файл WSDL из файла xsd, точно так же, как можно создать омлет с использованием яиц.

РЕДАКТИРОВАТЬ : Мой первоначальный ответ был неясным. Дай мне попробовать снова. Я не предполагаю, что XSD эквивалентен WSDL, или что XSD достаточно для создания WSDL. Я действительно говорю, что возможно сгенерировать WSDL, используя файл XSD , если под этой фразой вы имеете в виду «сгенерировать WSDL с использованием файла XSD». Поступая так, вы дополните информацию в файле XSD, чтобы сгенерировать WSDL. Вам нужно будет определить дополнительные вещи - части сообщений, операции, типы портов - ничего из этого не присутствует в XSD. Но можно «создать WSDL с учетом XSD», с некоторыми творческими усилиями.

Если фраза «сгенерировать WSDL с заданным XSD» подразумевает «механическое преобразование XSD в WSDL», то ответ - НЕТ, вы не можете этого сделать. Это должно быть ясно из моего описания WSDL выше.

При создании WSDL с использованием файла XSD вы обычно делаете что-то вроде этого (обратите внимание на творческие шаги в этой процедуре):

  1. импортируйте схему XML в WSDL (элемент wsdl: types)
  2. добавьте в набор типов или элементов с дополнительными или обертками (скажем, массивы или структуры, содержащие основные типы) по желанию. Результат №1 и №2 включает все типы, которые будет использовать WSDL.
  3. определяют набор входящих и исходящих сообщений (и, возможно, ошибок) в терминах этих ранее определенных типов.
  4. Определите тип порта, который представляет собой набор пар in. сообщения. Вы можете думать о типе порта как о WSDL-аналоге интерфейса Java.
  5. Укажите привязку, которая реализует тип порта и определяет, как сообщения будут сериализованы.
  6. Укажите службу, реализующую привязку.

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

Некоторые полагают, что это долгий ручной процесс. Может быть. Но вот как вы можете создавать интероперабельные сервисы. Вы также можете использовать инструменты для определения WSDL. Динамическое создание WSDL из кода приведет к ошибкам взаимодействия.

который реализует привязку.

Большая часть WSDL является более или менее шаблонной. Это может показаться устрашающим, но в основном это из-за тех страшных и обильных угловых скобок, которые я обнаружил.

Некоторые полагают, что это долгий ручной процесс. Может быть. Но вот как вы можете создавать интероперабельные сервисы. Вы также можете использовать инструменты для определения WSDL. Динамическое создание WSDL из кода приведет к ошибкам взаимодействия.

который реализует привязку.

Большая часть WSDL является более или менее шаблонной. Это может показаться устрашающим, но в основном это из-за тех страшных и обильных угловых скобок, которые я обнаружил.

Некоторые полагают, что это долгий ручной процесс. Может быть. Но вот как вы можете создавать интероперабельные сервисы. Вы также можете использовать инструменты для определения WSDL. Динамическое создание WSDL из кода приведет к ошибкам взаимодействия.

Динамическое создание WSDL из кода приведет к ошибкам взаимодействия.

Динамическое создание WSDL из кода приведет к ошибкам взаимодействия.

27
ответ дан 27 November 2019 в 04:23
поделиться

Лично (и учитывая то, что я знаю, например, Java и ось), я бы сгенерировал модель данных Java из файлов .xsd (Axis 2 может это сделать), а затем добавить интерфейс для описания моего веб-сервиса, который использует эту модель, а затем генерирует WSDL из этого интерфейса.

Поскольку .NET также имеет все эти функции, должно быть возможно сделать все это и в этой экосистеме.

0
ответ дан 27 November 2019 в 04:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: