Fitech Laboratories

Xml - Object - Relational Mapping

prev next

Ever use XML? Java? SQL? How about all three to model the same entities in the same project?

A huge challenge is to reconcile the different data representations, and their differing approaches to hierarchy and relationships.

A field has developed called object-relational (OR) mapping, in which objects in an object-oriented (OO) system are persisted somehow, and data binding tools such as hibernate now have various ways to represent hierarchies in databases.

In 1998, however, the concepts were much less developed. We developed a system which went further than just OR mapping, and including XML binding as well. To top it off, all layers could deal with type hierarchies and polymorphism.

This system was put into production, and continues to be used in Fitech products.

One interesting aspect is how to formulate queries on objects in hierarchies.

For example, in a hypothetical hierarchy of "Products," "Commodities," and "Pork Bellies," should a query on Commodities return only Commodities, combinations of Commodities and Pork Bellies, or possibly all three? If you return Pork Bellies, do you return only the commodity fields, or all fields for that object? And how to do joins in the presence of hierarchy?

I think it's fair to say that W3C hasn't yet figured out the complete story on XML binding and polymorphism yet. I'm hoping they'll eventually adopt some of what we did in 1998.