WSDL - это фактически ваш опубликованный SOAP-интерфейс вашего веб-сервиса. Многие клиенты используют это для генерации своих прокси-серверов, которые предоставляют все ваши методы веб-сервиса на выбранном ими языке программирования. Большинство из этих сгенерированных кодом клиентов очень хрупки и выберут исключение, если они увидят элемент, который они не распознают (то есть его нет в WSDL), а не проигнорируют его. Некоторые из них более расслаблены, и это действительно зависит от клиентской технологии, которую они используют, т. Е. Новый DataContract от Microsoft имеет интерфейс IExtensibleData на своих клиентах, чтобы специально хранить данные, которые они не распознают, поэтому они в значительной степени игнорируют неизвестные элементы.
Клиентские прокси-серверы SOAP и сгенерированные кодом допускают такие проблемы, потому что они генерируют клиентов, которые хотят понимать «всю схему», а не только те биты, которые им интересны. Альтернативой является использование анализатора Xml и просто вытащить нужные кусочки.
Если ваша веб-служба находится в стадии разработки или постоянно изменяется, то SOAP на самом деле не является вашим лучшим выбором, поскольку это будет означать, что с каждым изменением им придется регенерировать, перестраивать и повторно развертывать свои клиенты службы. В зависимости от вашей ситуации вы можете рассмотреть вопрос о предоставлении веб-сервисов REST + POX (Plain Old Xml), поскольку его проще анализировать, так как он не содержит служебных данных SOAP, может вызываться по обычному URL-адресу и использоваться средами, которые нет библиотеки SOAPClient (например, непосредственно в браузере с использованием AJAX)