Revealing the X/O impedance mismatch (Changing lead into gold)

Authors
Ralf Lämmel and Erik Meijer

Abstract
We take the term X/O impedance mismatch to describe the difficulty of the OO paradigm to accommodate XML processing by means of recasting it to typed OO programming. In particular, given XML types (say, XML schemas), it is notoriously difficult to map them automatically to object types (say, object models) that (i) reasonably compare to native object types typically devised by OO developers; (ii) fully preserve the intent of the original XML types; (iii) fully support round-tripping of arbitrary, valid XML data; and (iv) provide a general and convenient programming model for XML data hosted by objects.

We reveal the X/O impedance mismatch in particular detail. That is, we survey the relevant differences between XML and objects in terms of their data models and their type systems. In this process, we systematically record and assess X-to-O mapping options. Our illustrations employ XSD (1.0) as the XML-schema language of choice and C# (1.0--3.0) as the bound of OO language expressiveness.

Companion paper
Mappings make data processing go 'round -- An inter-paradigmatic mapping tutorial

Paper for download
[.pdf]; [.ps]

Bibtex entry
@inproceedings{XO,
 author      = "R.~L{\"a}mmel and E.~Meijer",
 title       = "{Revealing the X/O impedance mismatch (Changing lead into gold)}",
 year        = 2007,
 month       = 06 # "~" # jun,
 note        = "80 pages. To appear."
 publisher   = "Springer-Verlag",
 series      = "LNCS",
 booktitle   = "{Datatype-Generic Programming}",
 editor      = "Roland Backhouse and Jeremy Gibbons and Ralf Hinze and Johan Jeuring" 
}

maintained by Ralf Lämmel (Email: rlaemmel@gmail.com)