Revealing the X/O impedance mismatch

Ralf Lämmel and Erik Meijer explain why its hard to mix angle brackets with curly brackets.

When engaging in X/O mapping, i.e., when viewing XML data as objects or vice versa, one faces various conceptual and technical challenges~---~they may be collectively referred to as the `X/O impedance mismatch'. There are these groups of challenges. (i) The XML data model and the object data model differ considerably. (ii) The native XML programming model differs from the normal OO programming model. (iii) The typical type systems for XML and objects differ considerably, too. (iv) Some of the differences between data models and between type systems are more like idiosyncrasies on the XML site that put additional burden on any X/O mapping effort. (v) In some cases, one could ask for slightly more, not necessarily XML-biased language expressiveness that would improve X/O mapping results or simplify efforts.
The present article systematically investigates the mismatch in depth. It identifies and categorizes the various challenges. Known mitigation techniques are documented and assessed; several original techniques are proposed. The article is somewhat biased in that it focuses on XML Schema as the XML type system of choice and on C\# as the OO programming language of choice. In fact, XSD and C\# are covered quite deeply. Hence, the present article qualifies as a language tutorial of `the other kind'.



The Semicolon Wars

Brian Hayes writes an introduction to programming languages for The American Scientist. Hits both the shallow (syntax) and deep (semantics) differences, notes that everyone is deeply invested, and implies that we have a long way to go before we can scientifically evaluate which approach is best. Links is even mentioned, to my astonishment.




A programming language for building data-intensive web applications from the database group at Cornell. More ambitious than Links in that it attempts to automatically partition data between client and server, and may partition differently for different servers (a pc vs a phone, say). Less ambitious than Links in that it is not concerned with highly dynamic, AJAX-like applications. Thanks to James Cheney for the pointer.

This page is powered by Blogger. Isn't yours?