Man Linux: Main Page and Category List

NAME

       MkOneOf - a helper program to use with DtdToHaskell

SYNOPSIS

       MkOneOf n [m]

DESCRIPTION

       DtdToHaskell  translates  XML  DTD into equivalent Haskell types.  When
       there is a choice between different tags, DtdToHaskell uses types  like
       OneOf2,   OneOf3,   OneOf4,   etc.   The  module  Text.XML.HaXml.OneOfN
       currently defines these types up OneOf20.  If your DTD requires  larger
       choices, you can use this program to generate them.

       MkOneOf  takes  an  integer N or an integer range N M and writes to the
       standard output a Haskell module with respectively the datatype  OneOfN
       or the datatypes OneOfN up to and including OneOfM.

EXAMPLES

       If we run "MkOneOf 1 2", the program will print
       module Text.XML.HaXml.OneOfN where

       import Text.XML.HaXml.Xml2Haskell

       data OneOf1 a
           = OneOf1 a
           deriving (Eq,Show)

       instance (XmlContent a)
           => XmlContent (OneOf1 a)
         where
           fromElem cs =
               (choice OneOf1
               $ (    toElem (OneOf1 x) = toElem x

       ----
       data OneOf2 a b
           = OneOf2 a | TwoOf2 b
           deriving (Eq,Show)

       instance (XmlContent a,XmlContent b)
           => XmlContent (OneOf2 a b)
         where
           fromElem cs =
               (choice OneOf2 $ choice TwoOf2
               $ (    toElem (OneOf2 x) = toElem x
           toElem (TwoOf2 x) = toElem x

       ----

COPYRIGHT

       The HaXml library and tools were written by and are copyright to
              Copyright © 1998 – 2006    Malcolm Wallace and Colin Runciman

       The          library          incorporates          the          module
       Text.ParserCombinators.HuttonMeijerWallace
              Copyright © 1996           Graham Hutton and Erik Meijer

       with modifications
              Copyright © 1998 – 2000    Malcolm Wallace

       and may also use or incorporate the module Text.PrettyPrint.HughesPJ
              Copyright © 1996 – 1997    John Hughes and Simon Peyton Jones

       The HaXml library is licensed under the terms of the GNU Lesser General
       Public Licence (LGPL), with the following special exception:

              As a relaxation of clause 6 of the LGPL, the  copyright  holders
              of  this library give permission to use, copy, link, modify, and
              distribute, binary-only object-code versions  of  an  executable
              linked  with  the  Library,  without requiring the supply of any
              mechanism to modify or replace the Library and  relink  (clauses
              6a, 6b, 6c, 6d, 6e), provided that all the other terms of clause
              6 are complied with.

       The HaXml  tools  Xtract,  Validate,  DtdToHaskell,  and  MkOneOf,  are
       licensed under the terms of the GNU General Public Licence (GPL).

       This  library  and  toolset  is distributed in the hope that it will be
       useful, but WITHOUT ANY WARRANTY; without even the implied warranty  of
       MERCHANTABILITY  or  FITNESS  FOR  A  PARTICULAR  PURPOSE.  See the GNU
       Licences for more details.

SEE ALSO

       DtdToHaskell(1)

AUTHOR

       This  contents  of  this  manual  page  was  copied   from   the   HTML
       documentation  and  slightly edited by Arjan Oosting <arjan@debian.org>
       for the Debian system (but may be used by others).