multifocal: Bidirectional Two-level Transformation of XML Schemas

[ bsd3, generics, library, program ] [ Propose Tags ]

Library that implements a two-level transformation ( for creating bidirectional views of XML Schemas based on bidirectional lenses. It supports the specialization of generic queries as two-level transformation steps and the optimization of the generated lens data transformations.

[Skip to Readme]


  • Data
    • Transform
      • Data.Transform.TwoLevel
  • Language
    • TLT
      • Language.TLT.Tlt2Strat
      • Language.TLT.TltLexer
      • Language.TLT.TltParser
      • Language.TLT.TltSyntax
    • XML
      • Language.XML.HaXmlAliases
      • Language.XML.Type2Xml
      • Language.XML.Type2Xsd
      • Language.XML.Xml2Type
      • Language.XML.Xsd2Type
    • XPath
      • Language.XPath.HXTAliases
      • Language.XPath.XPath2Pf
  • UI
    • UI.GenHaskell
    • UI.LensMenu
    • UI.Menu


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS] 0.0.1
Dependencies array, base (>=4 && <5), containers, haskell-src-exts (>=1.11.1), HaXml (>=1.22.5), hxt (>=9.1.5), hxt-xpath (>=9.1.1), mtl (>=1), parsec (>=3.1.2), pointless-haskell (>=0.0.8), pointless-lenses (>=0.0.9), pointless-rewrite (>=0.0.3), pretty (>=, process, syb (>=0.3) [details]
License BSD-3-Clause
Author Hugo Pacheco <>, Alcino Cunha <>
Maintainer Hugo Pacheco <>
Category Generics
Uploaded by HugoPacheco at 2012-01-26T13:44:54Z
Reverse Dependencies 1 direct, 0 indirect [details]
Executables multifocal
Downloads 1134 total (4 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2016-12-25 [all 8 reports]

Readme for multifocal-0.0.1

[back to package description]

This cabal package can be installed with:

$ cabal install multifocal

For a manual install, execute:

$ runhaskell Setup.lhs configure
$ runhaskell Setup.lhs build
$ runhaskell Setup.lhs install

For an example, try running the following steps:

1) generate a target XML Schema file and an optimized lens executable from the source XML Schema file imdb.xsd according to the transformation imdb.2lt.

$ multifocal -i examples/imdb.xsd -t examples/imdb.2lt -o examples/imdb2.xsd -c examples/Imdb.hs -e

2) compile the resulting file

$ ghc --make examples/Imdb.hs -o imdb

3) Migrate a source XML document into a target XML document

$ ./imdb -s examples/imdb.xml -f -o examples/imdb2.xml

4) Translate an updated target XML document back to the source

./imdb -s examples/imdb.xml -t examples/imdb2mod.xml -b -o examples/imdbmod.xml