Прежде всего, вы должны использовать svcutil.exe, а не wsdl.exe, если у вас нет другого выбора.
Во-вторых, вам не нужна ни одна из программ для реализации внешнего WSDL. Просто напишите свой сервис, чтобы XML Serializer правильно сериализовал и десериализовал входящее сообщение. В частности, если вам нравится обрабатывать XML, попробуйте это:
[WebMethod]
public XmlElement SomeOperation(XmlElement parameter)
{
}
Я считаю, что то же самое работает с более новым XElement
классом.
В WCF (это то, что вы должны использовать, поскольку Microsoft теперь считает веб-службы ASMX «устаревшей технологией»), я считаю, что вы должны использовать тип Message
:
[OperationContract]
Message SomeOperation(Message parameter);