1 module Rakka.Attachment
6 import Control.Arrow.ArrowList
7 import System.IO.Unsafe
8 import Text.XML.HXT.Arrow.ReadDocument
9 import Text.XML.HXT.Arrow.WriteDocument
10 import Text.XML.HXT.Arrow.XmlArrow
11 import Text.XML.HXT.DOM.TypeDefs
12 import Text.XML.HXT.DOM.XmlKeywords
15 class Attachment t where
16 serializeToXmlTree :: (ArrowChoice a, ArrowXml a) => a t XmlTree
17 deserializeFromXmlTree :: (ArrowChoice a, ArrowXml a) => a XmlTree t
19 serializeToString :: t -> String
20 serializeToString attachment
22 do [xmlStr] <- runX ( setErrorMsgHandler False fail
28 writeDocumentToString [ (a_indent, v_1) ]
32 deserializeFromString :: String -> t
33 deserializeFromString source
35 do [ret] <- runX ( setErrorMsgHandler False fail
37 readString [ (a_validate , v_0)
38 , (a_check_namespaces , v_1)
39 , (a_remove_whitespace, v_0)
42 deserializeFromXmlTree