Fri 20 June 2003, Avaya Labs With a little care, it should be possible to generate all of the following from any one of the following: * A Java or C++ or C# class * A Haskell or SML or O'Caml data type * An XML schema * An SQL relational schema * An LDAP schema * An ASN.1 description * ... and so on ... One can automatically generate code to convert data between any of these formats, or automatically create an interface to a query. For instance, an SQL query would be accessed with the Java/C++/C# class derived from the SQL relational schema, as compared to current practice with JDBC and ODBJ, which uses the type Row and supports little or no static checking. Several projects address all or part of this area, including Castor, Harmony, Hibernate, JAX-B, J2EE Entity Beans, PAD, SQL-J, Zephyr, and Henry Thompson's data binding work.