WSDL - нет ввода - лучшая практика

Я разрабатываю веб-сервис SOAP. Одна из функций isAlive(). Он не имеет входных параметров. Какая лучшая практика для WSDL? Я пробовал...

<wsdl:operation name="isAlive">
    <wsdl:output message="tns1:isAliveMessage"/>
</wsdl:operation>

... но получил ошибку синтаксического анализа в одном из моих инструментов из-за недостающего ввода. Я нашел несколько примеров, где был определен вход и сообщение, и соответствующее определение типа было пустым, то есть <xsd:complexType name="somename"/>. Это лучше?

Спасибо!

Ответ 1

Вам определенно нужно ввести входное сообщение - как еще сервер может сказать, какую операцию вы хотите вызвать.

Если вы используете стиль документа (который вам нужен), входное сообщение должно быть одним элементом без содержимого.

Ответ 2

Хорошей практикой является определение входных и выходных документов для каждой операции, даже если они оказываются пустыми. Эти "пустые" операции имеют привычку оказаться не слишком пустыми в долгосрочной перспективе, и определение типа документа-заполнителя спереди может сэкономить вам хлопоты.

Например, учтите, что запрос isAlive может содержать некоторое указание на то, о чем вы спрашиваете. Он сохраняет ваши параметры открытыми, а в качестве побочного эффекта генерируется достоверный WSDL:)