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