I'd like to get this work going since the WSDL 1.2 is shaping up nicely. Here are some tasks that I suggest we work on:
1. Create a list of test assertions.
The approach to validation for WSDL 1.2 is to rely on XML Schema as much as possible. The schema for WSDL 1.2 will contain as many checks as possible. However, not all checks can be expressed in XML schema. For example, checks involving more than one WSDL document are beyond the scope of XML schema. A WSDL document may import or include other WSDL documents and there are many checks for import and include to be valid. There are also many other checks on single documents that cannot be expressed in XML schema. Therefore, we should compile a list of test assertions that our validator will check beyond those expressible in XML schema. It would also be a good idea to explicitly list the checks we expect to be handled by XML schema and verify that the official WSDL schema incorporate those checks. The WS-I test tools used a nice XML format for listing the test assertions. I suggest we use that format.
2. Create a test suite.
We should create a set of WSDL documents that include both valid and invalid cases. Every test assertion should have at least one test case that satisfies it and one that violates it. Any test case may cover more than one test assertion. This test suite will be a little unstable until the WSDL schema settles down, but we can probably migrate our test suite to new versions of the schema using an XSLT. I expect only fairly small changes from now on.
3. Define an interface for coding the test assertions.
I suggest we create a Java interface that closely matches the abstract model used in the WSDL spec. We should code all the test assertions using this interface. Note that this interface only needs to provide read access to the WSDL documents.
4. Develop one or more implementations of the WSDL interface.
We need to define at least one implementation of the interface. I suggest we do a simple DOM implementation initially. However, we may also want to do others, e.g. one using the Eclipse Modelling Framework.
5. Create JUnit test cases
Pull all the above together into an automated test suite.
6. Create Ant task: WSDLValidate
We should make the validator available as an Ant task. This should be analogous to the XML Schema validator Ant task XmlValidate http://ant.apache.org/manual/OptionalTasks/xmlvalidate.html