Peter Newcomb peter at techno.com
Tue Jun 24 19:39:08 BST 1997

> [Jonathan Robie]
> Hmmm. IDL == Language independent spec of an API....might this be
> better approached as an XML application? I.e. a DTD for the XML API
> spec. A doc conforming to that spec.  that can be down-translated to
> Java, C++, Python and (gasp) IDL!

Designing a generic language (or DTD) for API description is
non-trivial (consider the work that has gone into creating IDL) and
therefore cannot be done satisfactorily in time for XAPI, given that
XAPI is needed _now_.

Having said that, I agree with you completely.  In fact, this has
already been done to some extent for SGML: it's called the SGML
property set.  A property set is nothing more than interface
specifications for classes of objects using the "grove" object model.

Property sets are not, however, suited for generic interface
descriptions.  There is no way, for instance, to describe an action
method such as "parse this" in a property set.  A property sets are
abstract interfaces to static groves.

In my own work, I have developed another SGML language (otherwise
known as a DTD) that allows me to describe both interfaces and
implementations of object classes using a more generic object model.
This language also allows me to tie some of these classes and methods
to properties in property sets, thus providing a framework for
implementation of property sets, but also giving me a platform and
language-neutral representation of my entire API and implementation.
This representation is then compiled down to APIs and implementations
for specific platforms and languages.

This system has taken some time to develop, (and is still under
development), but has already shown its worth in terms of ease of
coding, maintenance, porting, and documentation.  However, it is still
not a fully generic and complete system (it may never be), as I have
geared it towards implementing property sets, and have only added and
implemented those features needed for doing so.

In the long run, I suggest taking a similar approach: create an XML
language for describing APIs and use it to describe the XAPI, linking
it to the relevant classes and properties from the SGML and/or XML
property sets (for use with DSSSL and/or HyTime).  Develop the API
description language along with the XAPI described with it; add to the
API description language only those features needed for XAPI, while
leaving the door open for further enhancements needed for other
applications.  Study the object models used by IDL, Java, C++, Python,
and others, especially with regards to how they impact API

In the short term, let us develop XAPI-J with the above in mind
(somewhere near the back) so that people can use it now, and so that
it can be used as a model for future development.


Peter Newcomb                           TechnoTeacher, Inc.
233 Spruce Avenue                       P.O. Box 23795
Rochester, NY 14611-4041 USA            Rochester, New York 14692-3795 USA
+1 716 529 4303 (home)                  +1 716 464 8696 (direct)
+1 716 755 8698 (cell)                  +1 716 271 0796 (main)
+1 716 529 4304 (fax)                   +1 716 271 0129 (fax)
peter at petes-house.rochester.ny.us       peter at techno.com
http://www.petes-house.rochester.ny.us  http://www.techno.com

xml-dev: A list for W3C XML Developers
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To unsubscribe, send to majordomo at ic.ac.uk the following message;
unsubscribe xml-dev
List coordinator, Henry Rzepa (rzepa at ic.ac.uk)

More information about the Xml-dev mailing list