hexpat-0.20.3: XML parser/formatter based on expat

Safe HaskellNone

Text.XML.Expat.Internal.DocumentClass

Description

Type classes to allow for XML handling functions to be generalized to work with different document types.

Synopsis

Documentation

data XMLDeclaration text

XML declaration, consisting of version, encoding and standalone.

The formatting functions always outputs only UTF-8, regardless of what encoding is specified here. If you want to produce a document in a different encoding, then set the encoding here, format the document, and then convert the output text from UTF-8 to your desired encoding using some text conversion library.

Constructors

XMLDeclaration text (Maybe text) (Maybe Bool) 

Instances

Eq text => Eq (XMLDeclaration text) 
Show text => Show (XMLDeclaration text) 

data DocumentTypeDeclaration c tag text

Stub for future expansion.

Instances

data Misc text

Constructors

Comment !text 
ProcessingInstruction !text !text 

Instances

Eq text => Eq (Misc text) 
Show text => Show (Misc text) 
NFData text => NFData (Misc text) 

type family NodeType d :: (* -> *) -> * -> * -> *

class (Functor c, List c, NodeClass (NodeType d) c) => DocumentClass d c where

Methods

getXMLDeclaration :: d c tag text -> Maybe (XMLDeclaration text)

Get the XML declaration for this document.

getDocumentTypeDeclaration :: d c tag text -> Maybe (DocumentTypeDeclaration c tag text)

Get the Document Type Declaration (DTD) for this document.

getTopLevelMiscs :: d c tag text -> c (Misc text)

Get the top-level Misc nodes for this document.

getRoot :: d c tag text -> NodeType d c tag text

Get the root element for this document.

mkDocument :: Maybe (XMLDeclaration text) -> Maybe (DocumentTypeDeclaration c tag text) -> c (Misc text) -> NodeType d c tag text -> d c tag text

Make a document with the specified fields.

Instances

(Functor c, List c) => DocumentClass (DocumentG ann) c 

mkPlainDocument :: DocumentClass d c => NodeType d c tag text -> d c tag text

Make a document with the specified root node and all other information set to defaults.

modifyXMLDeclaration :: DocumentClass d c => (Maybe (XMLDeclaration text) -> Maybe (XMLDeclaration text)) -> d c tag text -> d c tag text

modifyDocumentTypeDeclaration :: DocumentClass d c => (Maybe (DocumentTypeDeclaration c tag text) -> Maybe (DocumentTypeDeclaration c tag text)) -> d c tag text -> d c tag text

modifyTopLevelMiscs :: DocumentClass d c => (c (Misc text) -> c (Misc text)) -> d c tag text -> d c tag text

modifyRoot :: DocumentClass d c => (NodeType d c tag text -> NodeType d c tag text) -> d c tag text -> d c tag text