The multifocal package

[Tags:bsd3, library, program]

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]


Versions 0.0.1
Dependencies array, base (==4.*), 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 BSD3
Author Hugo Pacheco <>, Alcino Cunha <>
Maintainer Hugo Pacheco <>
Stability Unknown
Category Generics
Uploaded Thu Jan 26 13:44:54 UTC 2012 by HugoPacheco
Distributions NixOS:0.0.1
Downloads 271 total (4 in the last 30 days)
0 []
Status Docs not available [build log]
All reported builds failed as of 2015-11-13 [all 6 reports]


  • 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

For package maintainers and hackage trustees

Readme for multifocal

Readme for multifocal-0.0.1


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