HaXml-1.13.3: Utilities for manipulating XML documents

Text.XML.HaXml.Xml2Haskell

Contents

Description

This module provides the XmlContent class and readXml and writeXml functions that you will need if you generate a module of Haskell datatype definitions from an XML DTD. Use the DtdToHaskell program to generate both datatypes and instances of this class, then import this module to read and write values to and from XML files.

Synopsis

Reading and writing XML data into a typed Haskell representation.

readXml :: XmlContent a => String -> Maybe aSource

Read a fully-typed XML document from a string.

showXml :: XmlContent a => a -> StringSource

Convert a fully-typed XML document to a string.

hGetXml :: XmlContent a => Handle -> IO aSource

Read a fully-typed XML document from a file handle.

hPutXml :: XmlContent a => Handle -> a -> IO ()Source

Write a fully-typed XML document to a file handle.

fReadXml :: XmlContent a => FilePath -> IO aSource

Read an XML document from a file and convert it to a fully-typed Haskell value.

fWriteXml :: XmlContent a => FilePath -> a -> IO ()Source

Write a fully-typed Haskell value to the given file as an XML document.

The enabling classes.

class XmlContent a whereSource

The XmlContent class promises that an XML content element can be converted to and from a Haskell value.

Methods

fromElem :: [Content] -> (Maybe a, [Content])Source

toElem :: a -> [Content]Source

Instances

XmlContent ANYContent 
XmlContent a => XmlContent [a] 
XmlContent a => XmlContent (Maybe a) 
XmlContent a => XmlContent (List1 a) 
(XmlContent a, XmlContent b) => XmlContent (a, b) 
(XmlContent a, XmlContent b) => XmlContent (OneOf2 a b) 
(XmlContent a, XmlContent b, XmlContent c) => XmlContent (a, b, c) 
(XmlContent a, XmlContent b, XmlContent c) => XmlContent (OneOf3 a b c) 
(XmlContent a, XmlContent b, XmlContent c, XmlContent d) => XmlContent (OneOf4 a b c d) 
(XmlContent a, XmlContent b, XmlContent c, XmlContent d, XmlContent e) => XmlContent (OneOf5 a b c d e) 
(XmlContent a, XmlContent b, XmlContent c, XmlContent d, XmlContent e, XmlContent f) => XmlContent (OneOf6 a b c d e f) 
(XmlContent a, XmlContent b, XmlContent c, XmlContent d, XmlContent e, XmlContent f, XmlContent g) => XmlContent (OneOf7 a b c d e f g) 
(XmlContent a, XmlContent b, XmlContent c, XmlContent d, XmlContent e, XmlContent f, XmlContent g, XmlContent h) => XmlContent (OneOf8 a b c d e f g h) 
(XmlContent a, XmlContent b, XmlContent c, XmlContent d, XmlContent e, XmlContent f, XmlContent g, XmlContent h, XmlContent i) => XmlContent (OneOf9 a b c d e f g h i) 
(XmlContent a, XmlContent b, XmlContent c, XmlContent d, XmlContent e, XmlContent f, XmlContent g, XmlContent h, XmlContent i, XmlContent j) => XmlContent (OneOf10 a b c d e f g h i j) 
(XmlContent a, XmlContent b, XmlContent c, XmlContent d, XmlContent e, XmlContent f, XmlContent g, XmlContent h, XmlContent i, XmlContent j, XmlContent k) => XmlContent (OneOf11 a b c d e f g h i j k) 
(XmlContent a, XmlContent b, XmlContent c, XmlContent d, XmlContent e, XmlContent f, XmlContent g, XmlContent h, XmlContent i, XmlContent j, XmlContent k, XmlContent l) => XmlContent (OneOf12 a b c d e f g h i j k l) 
(XmlContent a, XmlContent b, XmlContent c, XmlContent d, XmlContent e, XmlContent f, XmlContent g, XmlContent h, XmlContent i, XmlContent j, XmlContent k, XmlContent l, XmlContent m) => XmlContent (OneOf13 a b c d e f g h i j k l m) 
(XmlContent a, XmlContent b, XmlContent c, XmlContent d, XmlContent e, XmlContent f, XmlContent g, XmlContent h, XmlContent i, XmlContent j, XmlContent k, XmlContent l, XmlContent m, XmlContent n) => XmlContent (OneOf14 a b c d e f g h i j k l m n) 
(XmlContent a, XmlContent b, XmlContent c, XmlContent d, XmlContent e, XmlContent f, XmlContent g, XmlContent h, XmlContent i, XmlContent j, XmlContent k, XmlContent l, XmlContent m, XmlContent n, XmlContent o) => XmlContent (OneOf15 a b c d e f g h i j k l m n o) 
(XmlContent a, XmlContent b, XmlContent c, XmlContent d, XmlContent e, XmlContent f, XmlContent g, XmlContent h, XmlContent i, XmlContent j, XmlContent k, XmlContent l, XmlContent m, XmlContent n, XmlContent o, XmlContent p) => XmlContent (OneOf16 a b c d e f g h i j k l m n o p) 
(XmlContent a, XmlContent b, XmlContent c, XmlContent d, XmlContent e, XmlContent f, XmlContent g, XmlContent h, XmlContent i, XmlContent j, XmlContent k, XmlContent l, XmlContent m, XmlContent n, XmlContent o, XmlContent p, XmlContent q) => XmlContent (OneOf17 a b c d e f g h i j k l m n o p q) 
(XmlContent a, XmlContent b, XmlContent c, XmlContent d, XmlContent e, XmlContent f, XmlContent g, XmlContent h, XmlContent i, XmlContent j, XmlContent k, XmlContent l, XmlContent m, XmlContent n, XmlContent o, XmlContent p, XmlContent q, XmlContent r) => XmlContent (OneOf18 a b c d e f g h i j k l m n o p q r) 
(XmlContent a, XmlContent b, XmlContent c, XmlContent d, XmlContent e, XmlContent f, XmlContent g, XmlContent h, XmlContent i, XmlContent j, XmlContent k, XmlContent l, XmlContent m, XmlContent n, XmlContent o, XmlContent p, XmlContent q, XmlContent r, XmlContent s) => XmlContent (OneOf19 a b c d e f g h i j k l m n o p q r s) 
(XmlContent a, XmlContent b, XmlContent c, XmlContent d, XmlContent e, XmlContent f, XmlContent g, XmlContent h, XmlContent i, XmlContent j, XmlContent k, XmlContent l, XmlContent m, XmlContent n, XmlContent o, XmlContent p, XmlContent q, XmlContent r, XmlContent s, XmlContent t) => XmlContent (OneOf20 a b c d e f g h i j k l m n o p q r s t) 

class XmlAttributes a whereSource

The XmlAttributes class promises that a list of XML tag attributes can be converted to and from a Haskell value.

class XmlAttrType a whereSource

The XmlAttrType class promises that an attribute taking an XML enumerated type can be converted to and from a Haskell value.

Parsing and printing helper functions

choice :: XmlContent a => (a -> b) -> ([Content] -> (Maybe b, [Content])) -> [Content] -> (Maybe b, [Content])Source

definite :: ([Content] -> (Maybe a, [Content])) -> String -> String -> [Content] -> (a, [Content])Source

many :: ([Content] -> (Maybe a, [Content])) -> [Content] -> ([a], [Content])Source

data List1 a Source

The List1 type represents lists with at least one element. It is required for DTD content models that use + as a modifier.

Constructors

NonEmpty [a] 

Instances

Eq a => Eq (List1 a) 
Show a => Show (List1 a) 
XmlContent a => XmlContent (List1 a) 

data ANYContent Source

A type corresponding to XML's ANY contentspec data ANYContent = forall a . XmlContent a => ANYContent a

Constructors

ANYContent 

data Defaultable a Source

If an attribute is defaultable, then it either takes the default value (which is omitted from the output), or a non-default value (which obviously must be printed).

Constructors

Default a 
NonDefault a 

Instances

Eq a => Eq (Defaultable a) 
Show a => Show (Defaultable a) 

Re-exports

data Element Source

Constructors

Elem Name [Attribute] [Content] 

Instances

data Content Source

Constructors

CElem Element 
CString Bool CharData

bool is whether whitespace is significant

CRef Reference 
CMisc Misc 

Instances

catMaybes :: [Maybe a] -> [a]

The catMaybes function takes a list of Maybes and returns a list of all the Just values.