@@ -17,7 +17,11 @@
17module Text.XML.Writer
17module Text.XML.Writer
19 -- * Documents
19 -- * Documents
20− document, soap
20+ document
22 -- * Elements
26 -- * Elements
@@ -62,6 +66,38 @@ document name children = Document { documentPrologue = Prologue def def def
62 , documentEpilogue = def
66 , documentEpilogue = def
70+-- | Create a simple Document starting with a root element with attributes.
71+documentA :: Name -- ^ Root node name
72+ -> [(Name, Text)] -- ^ Attributes
75+documentA name attrs children = Document { documentPrologue = Prologue def def def
76+ , documentRoot = Element name (M.fromList attrs) (render children)
77+ , documentEpilogue = def
80+-- | Create a simple Document starting with a root element with a doctype.
81+documentD :: Name -- ^ Root node name
82+ -> Maybe Doctype -- ^ DOCTYPE
85+documentD name dt children = Document { documentPrologue = Prologue def dt def
86+ , documentRoot = Element name def (render children)
87+ , documentEpilogue = def
90+-- | Create a simple Document starting with a root element with attributes and doctype.
91+documentAD :: Name -- ^ Root node name
92+ -> [(Name, Text)] -- ^ Attributes
93+ -> Maybe Doctype -- ^ DOCTYPE
96+documentAD name attrs dt children = Document { documentPrologue = Prologue def dt def
97+ , documentRoot = Element name (M.fromList attrs) (render children)
98+ , documentEpilogue = def
65-- | Render document using xml-conduit's pretty-printer.
101-- | Render document using xml-conduit's pretty-printer.
66pprint :: Document -> IO ()
102pprint :: Document -> IO ()
67pprint = TL.putStrLn . renderText def { rsPretty = True }
103pprint = TL.putStrLn . renderText def { rsPretty = True }