Final info about IDL

Hi.

This is the information that completes the one Nacho and I sent regarding the W3C IDL Tools [1]

First of all let me clarify the issue regarding strings in IDL.

The people in the DOM group decided that all strings handled by their API should be UTF-16 strings. The IDL strings aren't UTF-16 (they are 8-bit ISO 8859-1 encoded) and the IDL wstring type encoding is chosen at runtime, so neither of those types fitted into their requirements. The solution was to create a DOMString class by means of a sequence of unsigned short values so all UTF-16 chars could be represented. But if the strict OMG IDL mapping rules are followed, then that sequence would have to be mapped to an 'unsigned short []' in some languages (e.g. Java). The people in the DOM group saw that Java strings were UTF-16 strings and decided not to strictly map their DOMString and instead directly use Java strings [2].


As far as the generation of the IDL interfaces is concerned we have several paths we could follow:

- Use the tools generated by the W3C DOM group [3].
  - Pros
    Already used and tested in other recommendations
    It generates the IDL, Java and ECMAScript bindings, and the HTML docs
    It already has the 'hacks' regarding the string issues.
  - Cons
    Difficult to get it working (lots of lines of code, old libraries)
    There is little documentation about how we should write the XML files
  - Work that should be done
    Grasp how everything fits (the XML, parsers, scripts, etc)
    Write the XML files
    Carry out the conversion process (the easy part)

- Manually write the IDL and use standard IDL compilers to generate bindings to other languages [4]
  - Pros
    The IDL writing should be easy
  - Cons
    There isn't an IDL to ECMAScript compiler
    All the compilers generate CORBA related stuff which isn't needed and would have to be manually removed
    The mappings would be totally strict so the string issue would have to be handled manually
  - Work that should be done
    Write the IDL files
    Write the documentation
    If we want an ECMAScript binding => manually carry out the conversion to ECMAScript (or generate a tool that performs that process, not an easy task)
    If we want a Java binding => choose and execute an IDL to Java compiler and manually remove the CORBA related stuff. It also will be necessary to handle the issues concerning the string handling.
    There are compilers to C++ or WSDL languages among others. Similar steps to those described regarding the Java binding would have to be followed if any other language binding is chosen.

- Only specify a mandatory IDL interface and let other people make their own bindings
  - Pros
    The IDL writing should be easy
  - Cons
    If we don't make clear what solution should be followed regarding the string handling issue, there could appear non interoperable implementations (e.g. one of them mapping strings strictly following the OMG specs and the other using directly Java strings).
  - Work that should be done
    Write the IDL files
    Write the documentation
    Clarify whatever ambiguities could appear (most of them concerning string mapping)

In summary, we have finally found all the tools used by previous W3C groups but there is little documentation about how to use those tools. There are several options and we should decide what the best is.

Regards,
Rodrigo.

[1] http://lists.w3.org/Archives/Public/public-ddwg/2007Feb/0020.html
[2] http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510/core.html#DOMString
[3] http://dev.w3.org/cvsweb/java/classes/org/w3c/tools/specgenerator/
[4] http://www.w3.org/2005/MWI/DDWG/wiki/IDL_Compilers

_________________________________________________________
Rodrigo García Acevedo - rodrigo.garcia@fundacionctic.org
Departamento I+D+i
Fundación CTIC - www.fundacionctic.org
Parque Científico Tecnológico de Gijón
Edificio Centros Tecnológicos
33203 Cabueñes - Gijón - Asturias - Spain
Phone: 	+34 984 29 12 12
Fax:    	+34 984 39 06 12
_________________________________________________________

Received on Tuesday, 27 February 2007 15:17:43 UTC