-- |
-- Helper methods for working with XML 
--

module Network.TableStorage.XML where

import Text.XML.Light.Types

-- |
-- 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 }