Как я могу сделать это действительным WSDL? - PullRequest
4 голосов
/ 14 сентября 2011

Я пытаюсь сгенерировать код из этого WSDL , используя следующую команду:

svcutil /noConfig /language:C# /out:ICatalog.cs http://schemas.opengis.net/csw/2.0.2/profiles/ebrim/1.0/wsdl/2.0/csw-ebrim-interface.wsdl

Однако svcutil не может прочитать его, и xMethods WSDL validator говорит, что он недействителен.

Что в этом неверного? Как я могу получить svcutil для генерации кода моего интерфейса?

Ответы [ 2 ]

6 голосов
/ 16 сентября 2011

Я не уверен, действителен ли WSDL, но то, что вы пытаетесь сделать, не сработает. Svcutil может генерировать код только для файлов WSDL версии 1.1. Ваша версия WSDL 2.0.

Валидатор WSDL, который вы указали в своем вопросе, выдает следующее сообщение при получении вашего WSDL:

faultCode = INVALID_WSDL: ожидаемый элемент 'http://schemas.xmlsoap.org/wsdl/:definitions'.

Он анализирует файл как WSDL 1.1. и ожидает, что корень будет definitions, , но он изменился в WSDL 2.0 на description.

Если у вас есть действительный файл WSDL 2.0, Svcutil2 может сгенерировать код для вас, но этот инструмент еще не стабилен.

Для проверки WSDL, я полагаю, вы могли бы использовать валидатор из проекта Woden , который также не стабилен, но, по сути, единственный, которого я знаю, переместился за "игрушечный проект". "status.

Идея такова: версия 1.1 по-прежнему является языком "де-факто" при принятии WSDL . Не многие WS-фреймворки приняли WSDL 2.0, поэтому (только мои 2 цента!) Я думаю, что лучше придерживаться «стандартного» до тех пор, пока поддержка WSDL 2.0 полностью не сформирована.

0 голосов
/ 14 августа 2017

попробуйте добавить ссылку Ссылки> Добавить ссылку> COM> System.ServiceModel

...