Type Isomorphisms Simplify XMLProgramming
Stc
ComputingScienceColloquium
Date: November 27
Time: 11:00
Room: BBL-505
Speaker: Frank Atanassow
Title: Type isomorphisms simplify XML programming
Abstract
A program that processes XML documents can be implemented using an
XML data binding. Programming with an XML data binding can be painful,
because the classes or types generated by the data binding are not in the
style native to the host language. JAXB, a Java-XML data binding, supports
binding customizations to mitigate this problem. Programming with a type-safe
binding such as our Haskell-XML data binding UUXML is even worse.
To address this problem, rather than employing binding customizations, we
exploit the theory of type isomorphisms to generically produce conversions
between the complex datatypes generated by our binding, and more conventional
Haskell-style datatypes. We give a Generic Haskell program that produces, for
many pairs of canonically isomorphic types, the requisite pair of isomorphisms.
This approach helps obviate the practical need for binding customizations and
simplifies XML programming with our UUXML binding. A straightforward
generalization of this technique allows us to treat schema subtyping in a simple
way.