Google

>
 HaXmlParentContentsIndex
Text.XML.HaXml.DtdToHaskell.TypeDef
Contents
Internal representation of types
Pretty-print a TypeDef
Name mangling
Description
Defines an internal representation of Haskell data/newtype definitions that correspond to the XML DTD types, and provides pretty-printers to convert these types into the Doc type of Text.PrettyPrint.HughesPJ.
Synopsis
data TypeDef
= DataDef Bool Name AttrFields Constructors
| EnumDef Name [Name]
type Constructors = [(Name, [StructType])]
type AttrFields = [(Name, StructType)]
data StructType
= Maybe StructType
| Defaultable StructType String
| List StructType
| Tuple [StructType]
| OneOf [StructType]
| String
| Defined Name
ppTypeDef :: TypeDef -> Doc
ppHName :: Name -> Doc
ppXName :: Name -> Doc
ppAName :: Name -> Doc
data Name = Name {
xName :: String
hName :: String
}
name :: String -> Name
name_ :: String -> Name
name_a :: String -> String -> Name
name_ac :: String -> String -> String -> Name
name_f :: String -> String -> Name
mangle :: String -> String
manglef :: String -> String
Internal representation of types
data TypeDef
Constructors
DataDef Bool Name AttrFields Constructors Bool for main/aux.
EnumDef Name [Name]
type Constructors = [(Name, [StructType])]
type AttrFields = [(Name, StructType)]
data StructType
Constructors
Maybe StructType
Defaultable StructType String String holds default value.
List StructType
Tuple [StructType]
OneOf [StructType]
String
Defined Name
Pretty-print a TypeDef
ppTypeDef :: TypeDef -> Doc
ppHName :: Name -> Doc
Pretty print Haskell name.
ppXName :: Name -> Doc
Pretty print XML name.
ppAName :: Name -> Doc
Pretty print Haskell attributes name.
Name mangling
data Name
Need to keep both the XML and Haskell versions of a name.
Constructors
Name
xName :: String original XML name
hName :: String mangled Haskell name
name :: String -> Name
Make a name valid in both XML and Haskell.
name_ :: String -> Name
Append an underscore to the Haskell version of the name.
name_a :: String -> String -> Name
Prefix an attribute enumeration type name with its containing element name.
name_ac :: String -> String -> String -> Name
Prefix an attribute enumeration constructor with its element-tag name, and its enumeration type name.
name_f :: String -> String -> Name
Prefix a field name with its enclosing element name.
mangle :: String -> String
Convert an XML name to a Haskell conid.
manglef :: String -> String
Convert an XML name to a Haskell varid.
Produced by Haddock version 0.4