Re: [gdome]MathML DOM implementation: I need some advise



Hi,

as I said you should be able to implement it without knowing Gdome2
internals if we assume for instance that upcasting from a MathML element
to a DOM element is done via an explicit method call and not simply a C
cast. This is quite reasonable after all since C has no knowledge of
what upcasting really is...
I will follow this. But I cannot hide the fact that the Gdome2 code will
inspire me.


For the automatic generation, most of the IDL attributes in MathML DOM
interfaces correspond to XML attributes, so all the code to get/set
their value can be generated. Also, the list of parameters, the
correspondence of IDL types with C types, the extra methods provided by
every implementation (such as the up/down casts, constructors and
similar others), can be generated with great benefit for future
maintenance.

I will have a big stylesheet at the end ... ;)

In gmetadom we're doing this for generating the bindings directly from
the XML encoding of the W3C spec for DOM. I assume the MathML spec also
has a similar XML encoding. From there, it is quite easy to write XSLT
stylesheets that generate real code. You can have a look at gmetadom
sources for examples of such stylesheets. In your case however, you
wouldn't be able to generate ALL the code: at most you'll be able to
generate prototypes and methods with an empty body to be filled by hand.
Or, you can provide the method bodies and any other missing information
in a separate set of XML files and combine them with the XML files for
MathML DOM. You can see an example of this technique in gmetadom again
(Ocaml binding), where we keep a parallel set of XML files to know which
arguments can be "nullable", that is which parameters can accept a NULL
value. This is an example of missing information that cannot be inferred
safely from the spec.

I will reuse the stuff from gmetadom-0.2.0/src/gdome_caml/xsl/xml2c.xsl
and use as input the mathml-dom.xml coming with the MathML2 specification.

If you're interested in going this way feel free to ask for more
information.

You're giving me great information. Thanks a lot!

 Pierre-Paul

_________________________________________________________________
MSN Messenger : discutez en direct avec vos amis ! http://messenger.fr.msn.ca/




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]