1 module Rakka.Attachment
7 import Control.Arrow.ArrowList
8 import System.IO.Unsafe
9 import Text.XML.HXT.Arrow.ReadDocument
10 import Text.XML.HXT.Arrow.WriteDocument
11 import Text.XML.HXT.Arrow.XmlArrow
12 import Text.XML.HXT.Arrow.XmlIOStateArrow
13 import Text.XML.HXT.DOM.TypeDefs
14 import Text.XML.HXT.DOM.XmlKeywords
17 class Attachment t where
18 serializeToXmlTree :: (ArrowChoice a, ArrowXml a) => a t XmlTree
19 deserializeFromXmlTree :: (ArrowChoice a, ArrowXml a) => a XmlTree t
21 serializeToString :: t -> String
22 serializeToString attachment
24 do [xmlStr] <- runX ( setErrorMsgHandler False fail
30 writeDocumentToString [ (a_indent, v_1) ]
34 deserializeFromString :: String -> t
35 deserializeFromString source
37 do [ret] <- runX ( setErrorMsgHandler False fail
39 readString [ (a_validate , v_0)
40 , (a_check_namespaces , v_1)
41 , (a_remove_whitespace, v_0)
44 deserializeFromXmlTree