Index > Design Documents > wsdltoidl

WSDLToIDLDevPlan

Summary of Requirements Being Addressed

A tool that can

  • Take a wsdl file with a portType and produce an idl file for that portType
  • Take a wsdl file with a portType and add a CorbaBinding and output a new wsdl file with the corbaBinding
  • Take a wsdl file with a CorbaBinding and produce an idl file for that CorbaBinding.

Summary of Proposed Solution

The proposed solution is to use jwsdl (wsdl4j reference implementation) to implement the model for the wsdl file and define idltype classes to represent this information in idl. Define a corba binding schema for Yoko.

To get corba type classes generated to represent the corbatypes in the corba binding we will use the xsdtojava tool in celtix and use jwsdl extensionregistry and celtix's JAXBExtensionHelper class to add the corba extenstions to the model so we can have a complete model of a wsdl file with a corba binding.

So then for the purpose of having a corbaBinding and generating the idl - you need to traverse the CorbaBinding, get its operations that match those in the PortType from which you get the operation's input and output and then match these Corba Types to idlTypes.

Likewise when adding a corbaBinding we need to Setup the extension elements and to do this we need to map the schema types of the input/ouput to Corba types and then build up the corba binding and operations with the corba types and add these to the Corba Binding.

The Binding, PortType, Messages etc will be got using jwsdl.

We need to define how the following mappings are done.

  • Map the schema types to CORBA Types
  • Map the CORBA Types to idlTypes.

For these mappings the proposal is to use the apache Schema project api's. The project is at http://ws.apache.org/commons/

For each set of tasks we need to setup and write unit tests and system tests. Make sure it conforms to checkstyle. We need to conform to the coding standard used in Yoko.

Stories to be done for type support

List of different types that need to be supported

Description
Primitive support for the Corba binding generation (mapping schema types to corba types
Tests for Primitive support for the Corba binding generation
Primitive support for idl generation (mapping corba types to idltypes)
Tests for Primitive support for idl generation
Support for simple sequence and Enum
Support for basic sequence with tests
Support for basic struct with tests
Support for basic exception with tests
Support for basic union with tests
Support for basic enum with tests
Support for basic array with tests
Support for typedef array with tests
Support for union with tests
Support for anon types with tests
Support for nested with tests
Support for basic recursion with tests
Support for basic fixed with tests
Support for basic any with tests
Support for basic consts with tests
Support for date/time with tests
Support for ws-addressing maybe