hexpat-0.20.13: XML parser/formatter based on expat

Safe HaskellNone
LanguageHaskell98

Text.XML.Expat.Format

Contents

Description

This module provides functions to format a tree structure or SAX stream as UTF-8 encoded XML.

The formatting functions always outputs only UTF-8, regardless of what encoding is specified in the document's XMLDeclaration. If you want to output a document in another encoding, then make sure the XMLDeclaration agrees with the final output encoding, then format the document, and convert from UTF-8 to your desired encoding using some text conversion library.

The lazy ByteString representation of the output in generated with very small chunks, so in some applications you may want to combine them into larger chunks to get better efficiency.

Synopsis

High level

format :: (NodeClass n [], GenericXMLString tag, GenericXMLString text) => n [] tag text -> ByteString Source #

Format document with <?xml.. header - lazy variant that returns lazy ByteString.

format' :: (NodeClass n [], GenericXMLString tag, GenericXMLString text) => n [] tag text -> ByteString Source #

Format document with <?xml.. header - strict variant that returns strict ByteString.

formatG :: (NodeClass n c, GenericXMLString tag, GenericXMLString text) => n c tag text -> c ByteString Source #

Format document with <?xml.. header - generalized variant that returns a generic list of strict ByteStrings.

formatNode :: (NodeClass n [], GenericXMLString tag, GenericXMLString text) => n [] tag text -> ByteString Source #

Format XML node with no header - lazy variant that returns lazy ByteString.

formatNode' :: (NodeClass n [], GenericXMLString tag, GenericXMLString text) => n [] tag text -> ByteString Source #

Format XML node with no header - strict variant that returns strict ByteString.

formatNodeG :: (NodeClass n c, GenericXMLString tag, GenericXMLString text) => n c tag text -> c ByteString Source #

Format XML node with no header - generalized variant that returns a generic list of strict ByteStrings.

Format document (for use with Extended.hs)

formatDocument :: (DocumentClass d [], GenericXMLString tag, GenericXMLString text) => d [] tag text -> ByteString Source #

Format an XML document - lazy variant that returns lazy ByteString.

formatDocument' :: (DocumentClass d [], GenericXMLString tag, GenericXMLString text) => d [] tag text -> ByteString Source #

Format an XML document - strict variant that returns strict ByteString.

formatDocumentG :: (DocumentClass d c, GenericXMLString tag, GenericXMLString text) => d c tag text -> c ByteString Source #

Format an XML document - generalized variant that returns a generic list of strict ByteStrings.

Low level

xmlHeader :: ByteString Source #

The standard XML header with UTF-8 encoding.

treeToSAX :: forall tag text n c. (GenericXMLString tag, GenericXMLString text, Monoid text, NodeClass n c) => n c tag text -> c (SAXEvent tag text) Source #

Flatten a tree structure into SAX events, monadic version.

documentToSAX :: forall tag text d c. (GenericXMLString tag, GenericXMLString text, Monoid text, DocumentClass d c) => d c tag text -> c (SAXEvent tag text) Source #

formatSAX :: (GenericXMLString tag, GenericXMLString text) => [SAXEvent tag text] -> ByteString Source #

Format SAX events with no header - lazy variant that returns lazy ByteString.

formatSAX' :: (GenericXMLString tag, GenericXMLString text) => [SAXEvent tag text] -> ByteString Source #

Format SAX events with no header - strict variant that returns strict ByteString.

formatSAXG Source #

Arguments

:: (List c, GenericXMLString tag, GenericXMLString text) 
=> c (SAXEvent tag text)

SAX events

-> c ByteString 

Format SAX events with no header - generalized variant that uses generic list.

Indentation

indent Source #

Arguments

:: (NodeClass n c, GenericXMLString tag, GenericXMLString text) 
=> Int

Number of indentation spaces per nesting level

-> n c tag text 
-> n c tag text 

Make the output prettier by adding indentation.

indent_ Source #

Arguments

:: (NodeClass n c, GenericXMLString tag, GenericXMLString text) 
=> Int

Initial indent (spaces)

-> Int

Number of indentation spaces per nesting level

-> n c tag text 
-> n c tag text 

Make the output prettier by adding indentation, specifying initial indent.