[Mono-devel-list] Synching WSDL work

Lluis Sanchez lluis at ideary.com
Thu Jul 17 16:34:37 EDT 2003


Hi all!

Since there are several people wiling to contribute on the WSDL stuff, I
find convenient to write this email outlining the development strategy, and
the current assignments, so we can work in synch. I'm sure all of you are
aware of the following information, but I think that it is good to write it
down.

There are two things we want to implement and that have much in common:

1) The MonoWSDL tool. This tool is a clone of MS.NET wsdl tool. This tool
takes a WSDL document as input and generates client proxy classes for
accessing that web service. It can also generate the server web services
classes, but right now this is not a priority for us.

2) Automatic generation of a WSDL document and ASP.NET documentation pages
for ASP.NET web services. Those documents are generated from the classes
that implement a web service.

There are two class namespaces involved in all this:

* System.Web.Services.Description: This namespace has classes for managing
WSDL documents. The class ServiceDescription represents a document and there
are some document importers and code generators.
* System.Xml.Serialization. A WSDL document not only contains information
about methods, but also contains a description of the data that is sent in a
soap message. The System.Xml.Serialization namespace has classes for
representing this data structures and for importing and generating the
corresponding data classes.

For 1) we need to implement the following classes:

In System.Web.Services.Description:
- ServiceDescriptionImporter: Generates client proxy classes from a service
description. It uses XmlSchemaImporter and XmlCodeExporter to generate the
necessary data classes.
- There are other importers for which I don't have information. Maybe Erik
knows something about them.
- MonoWSDL: The tool executable. It loads a ServiceDescription and generates
the code using the ServiceDescriptionImporter.

In System.Xml.Serialization
- XmlSchemaImporter: Loads an XmlSchema (in literal format) and translates
it into a XmlTypeMapping, which represent the types and properties of the
data classes that need to be generated.
- SoapSchemaImporter: The same as XmlSchemaImporter, but for encoded format.
- XmlCodeExporter: Takes a XmlTypeMapping and generates the data classes.

For 2) we need to implement the following:

In System.Web.Services.Description
- ServiceDescriptionReflector: Fills a ServiceDescription document with the
information of a web service type. It uses XmlReflectionImporter and
XmlSchemaExporter to generate the schemas for the data classes.
- There are other reflectors for which I don't have information. Maybe Erik
knows something about them.

In System.Xml.Serialization
- XmlReflectionImporter: Generates an XmlTypeMapping from a data class and
the data classes it contains (in literal format).
- SoapReflectionImporter: Same as XmlReflectionImporter, but for encoded
format.
- XmlSchemaExporter: Generates a XmlSchema in literal format from a
XmlTypeMapping.
- SoapSchemaExporter: Same as XmlSchemaExporter, but for encoded format.

The current status of those classes is the following:
- ServiceDescriptionImporter: To do.
- MonoWSDL: half done. Erik has a first version. He HongFu also has done
some work on this.
- XmlSchemaImporter: There is some initial work from Atsushi.
- SoapSchemaImporter: To do (not a priority)
- XmlCodeExporter: There is some initial work from Atsushi.
- ServiceDescriptionReflector: Erik is working on this.
- XmlReflectionImporter: Done.
- SoapReflectionImporter: Done.
- XmlSchemaExporter: Done.
- SoapSchemaExporter: To do (not a priority).

Now, I'd like to ask you:
1) Review that status list and post an email to the list if something is
wrong.
2) Post an email to the list if you want to start working with one of the
TODOs.

Thanks everybody!

Lluis.





More information about the Mono-devel-list mailing list