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
OneOf
N or the datatypes OneOf
N up to and including
OneOf
M.
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
$ (->(Nothing,c))) cs
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
$ (->(Nothing,c))) cs
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).