{- | This module allows construction of XML trees using String literals instead of names. -} module Text.XML.WraXML.Tree.Literal ( XmlTree.T, processing, processingIndex, tag, tagAttr, tagIndexAttr, XmlTree.literal, XmlTree.literalIndex, XmlTree.comment, XmlTree.commentIndex, XmlTree.warning, XmlTree.warningIndex, XmlTree.cdata, XmlTree.cdataIndex, ) where import qualified Text.XML.WraXML.Tree as XmlTree import qualified Text.XML.Basic.Attribute as Attr import qualified Text.XML.Basic.Name as Name import qualified Text.XML.Basic.ProcessingInstruction as PI import Prelude hiding (show, shows) processing :: (Name.Tag name, Name.Attribute name) => String -> PI.T name str -> XmlTree.T i name str processing = XmlTree.processing . Name.fromString processingIndex :: (Name.Tag name, Name.Attribute name) => i -> String -> PI.T name str -> XmlTree.T i name str processingIndex i = XmlTree.processingIndex i . Name.fromString tag :: (Name.Tag name, Name.Attribute name) => String -> [XmlTree.T i name str] -> XmlTree.T i name str tag = XmlTree.tag . Name.fromString tagAttr :: (Name.Tag name, Name.Attribute name) => String -> [(String,str)] -> [XmlTree.T i name str] -> XmlTree.T i name str tagAttr name attrs = XmlTree.tagAttr (Name.fromString name) (map (uncurry Attr.new) attrs) tagIndexAttr :: (Name.Tag name, Name.Attribute name) => i -> String -> [(String,str)] -> [XmlTree.T i name str] -> XmlTree.T i name str tagIndexAttr i name attrs = XmlTree.tagIndexAttr i (Name.fromString name) (map (uncurry Attr.new) attrs)