XsdToHaskell

Text.XML.HaXml.Schema.PrettyHaskell

Description

Pretty-print the internal Haskell model of XSD datatypes to a real Haskell module containing type declarations, and instances for parsing (and printing - though not yet implemented) values of those datatypes from(/to) XML.

Synopsis

- ppComment :: CommentPosition -> Comment -> Doc
- ppModule :: NameConverter -> Module -> Doc
- ppHighLevelDecl :: NameConverter -> Decl -> Doc
- ppHighLevelDecls :: NameConverter -> [Decl] -> Doc
- ppModuleWithInstances :: NameConverter -> Module -> Doc
- ppHighLevelInstances :: NameConverter -> Decl -> Doc
- ppvList :: String -> String -> String -> (a -> Doc) -> [a] -> Doc

# Documentation

ppComment :: CommentPosition -> Comment -> Doc

Generate aligned haddock-style documentation. (but without escapes in comment text yet)

ppModule :: NameConverter -> Module -> Doc

Convert a whole document from HaskellTypeModel to Haskell source text.

ppHighLevelDecl :: NameConverter -> Decl -> Doc

Convert a single Haskell Decl into Haskell source text.

ppHighLevelDecls :: NameConverter -> [Decl] -> Doc

Convert multiple HaskellTypeModel Decls to Haskell source text.

ppModuleWithInstances :: NameConverter -> Module -> Doc

Generate a supplementary module to contain instances, especially for types that needed to be forward-declared.

ppHighLevelInstances :: NameConverter -> Decl -> Doc

Instances that depend on FwdDecl'd types, need to be declared in a different module. So they have been separated out from ppHighLevelDecl.

ppvList :: String -> String -> String -> (a -> Doc) -> [a] -> Doc

Vertically pretty-print a list of things, with open and close brackets, and separators.