bionic (1) MkOneOf.1.gz

Provided by: haxml_1.25.4-1_amd64 bug

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

       ----

       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).