tablestorage-0.1.0.3: src/Network/TableStorage/XML.hs
-- |
-- Helper methods for working with XML
--
module Network.TableStorage.XML (
qualify, cDataText, namespaceAttr
) where
import Text.XML.Light.Types
( Content(Text),
CDataKind(CDataText),
CData(CData, cdData, cdLine, cdVerbatim),
QName(..),
Attr(..) )
-- |
-- Qualify a name for a specific namespace and/or prefix
--
qualify :: Maybe String -> Maybe String -> String -> QName
qualify namespace prefix name =
QName { qName = name,
qURI = namespace,
qPrefix = prefix }
-- |
-- Constructs a piece of content consisting of a single string.
--
cDataText :: String -> [Content]
cDataText content = [ Text CData { cdVerbatim = CDataText, cdData = content, cdLine = Nothing } ]
-- |
-- Constructs an xmlns attribute to be added to the document root
--
namespaceAttr :: String -> String -> Attr
namespaceAttr prefix uri =
Attr { attrKey = qualify Nothing (Just "xmlns") prefix,
attrVal = uri }