Tools to generate WSDL from SOAP Sample?

I need to create client to web services that are documented by providing samples of SOAP messages, but there is no WSDL file available.

I've done  a Google search and bookmarked a few links, that can help:

XSLT that transforms from XSD to WSDL and related Spring Web Services(inJava)

Rick Strahl 's    Syncing up external WSDL Schemas with a stock .ASMX Web Service?

WSCF - Web services Contract-First, for real

soapUI is a free and open source desktop application for inspecting, invoking, developing, simulating/mocking and functional/load/compliance testing of web services over HTTP

 I also posted a question to webservices group.

I am going to check these links and a few others trying to find a tool to simplify WSDL creation.

Altova  XMLSpy® 2007 includes WSDL Editor and Documentation Generator .  but their Support replied me, that their tool does not have this facility.

I've considered to use XSD.EXE to generates an XML schema from an SOAP file and then use WSCF - Web services Contract-First, to generate WSDL from XSD, but my SOAP xml wasn't acceptable for  XSD.EXE.

 

WaitAll to support calls from WindowsForms

We have multi-threading application that uses WaitHandle.WaitAll methods. It works fine, when called from ASP.NET, but when it is called from WinForms test harness, it causes the error "WaitAll for multiple handles on an STA thread is not supported.". I've included the workaround and moved code to helper function.


However I needed to call the function with different parameters List<ManualResetEvent> and List<WaitHandle> . Even if ManualResetEvent is derived from WaitHandle, there is no implicit casting. Threads

Question regarding Generics and Inheritance and Casting List<> of derived class to List<> of base class? pointed me to ConvertAll method of List<> generic. And the article Introduction to anonymous methods in C#  helped me to use anonymous delegate to reduce code. 
The final helper class is shown below" 

 

public class ThreadingHelper

    {

        public static bool WaitAll(List<ManualResetEvent> eventList , int millisecondsTimeout)

        {//Casting List<> of derived class to List<> of base class? see http://www.thescripts.com/forum/thread276346.html

            //new Converter<ManualResetEvent, WaitHandle>(ConvertDelegate));

 

            //and http://www.theserverside.net/tt/articles/showarticle.tss?id=AnonymousMethods

            List<WaitHandle> waitHandles = eventList.ConvertAll<WaitHandle>( 

                    delegate(ManualResetEvent ev) { return (WaitHandle)ev; });

           return WaitAll( waitHandles, millisecondsTimeout);

        }

        public static bool WaitAll(List<WaitHandle> waitHandles, int millisecondsTimeout)

        {

            bool bRet=true;

            //to avoid "WaitAll for multiple handles on an STA thread is not supported." SEE http://www.devnewsgroups.net/group/microsoft.public.dotnet.framework/topic28609.aspx

            //alternative solutions described in http://www.issociate.de/board/post/250510/WaitAll_for_multiple_handles_on_an_STA_thread_is_not_supported.html

            if (Thread.CurrentThread.GetApartmentState() == ApartmentState.STA)

            {//usually happens when tested from TestHarness or NUnit

                foreach (WaitHandle handle in waitHandles)

                {

                    bRet |=handle.WaitOne();

                }

            }

            else

            {

                if (millisecondsTimeout > 0)

                {

                    bRet=WaitHandle.WaitAll(waitHandles.ToArray(), millisecondsTimeout, false);//

                }

                else

                {

                    bRet=WaitHandle.WaitAll(waitHandles.ToArray());

                   

                }

            }

            return bRet;

        }

 

    }

«May»
SunMonTueWedThuFriSat
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789