Извлечь схему объекта из wsdl

У меня есть файл wsdl, который описывает группу объектов, но я хочу извлечь определение только из их подмножества, возможно ли это, и если да, то как лучше всего этого добиться? Моя цель - создать схему XSD для этого подмножества.

Что делать, если вы не используете инструменты генерации WSDL в .NET? Есть ли хороший способ сделать это с помощью других инструментов? Я использую Java, пытаясь взаимодействовать с веб-службой. У меня есть библиотека для работы с xml-документами, для которой требуется xsd. У меня также есть библиотека для простых взаимодействий SOAP, что делает использование Axis излишним. Было бы здорово, если бы я мог легко извлечь XSD из WSDL.

Ответов (2)

Я предполагаю, что вы говорите о генерации wsdl в ASP.NET

в ASP.NET файл wsdl автоматически создается посредством отражения. Это означает, что каждый веб-метод сборки будет отображен при использовании:

http://mysite/myservices.asmx?wsdl

Обойти это ограничение можно следующим образом:

1. отключить создание документации по умолчанию в web.config

<webServices>
  <protocols >
    <remove name="Documentation"/>
  </protocols>
</webServices>

2. создайте собственный файл wsdl с помощью инструмента .net wsdl.exe и отредактируйте сгенерированный файл wsdl для нужного вам подмножества.

wsdl.exe http://mysite/myservices.asmx?wsdl

3. опубликуйте измененный wsdl:

http://mysite/myservices.wsdl

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

PD Передай от меня привет Марио ;-)

Если вы точно знаете, какие объекты вы хотите извлечь из схемы, вы можете взять файл wsdl, пропустить его через XSL-преобразование, чтобы сохранить те части, которые вам нужны (или удалить то, что вам не нужно).