{- |
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 :: forall name str i.
(Tag name, Attribute name) =>
String -> T name str -> T i name str
processing =
   forall name str i. Name name -> T name str -> T i name str
XmlTree.processing forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall name. C name => String -> name
Name.fromString

processingIndex ::
   (Name.Tag name, Name.Attribute name) =>
   i -> String -> PI.T name str -> XmlTree.T i name str
processingIndex :: forall name i str.
(Tag name, Attribute name) =>
i -> String -> T name str -> T i name str
processingIndex i
i =
   forall i name str. i -> Name name -> T name str -> T i name str
XmlTree.processingIndex i
i forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall name. C name => String -> name
Name.fromString

tag ::
   (Name.Tag name, Name.Attribute name) =>
   String -> [XmlTree.T i name str] -> XmlTree.T i name str
tag :: forall name i str.
(Tag name, Attribute name) =>
String -> [T i name str] -> T i name str
tag = forall name i str. Name name -> [T i name str] -> T i name str
XmlTree.tag forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall name. C name => String -> name
Name.fromString

tagAttr ::
   (Name.Tag name, Name.Attribute name) =>
   String -> [(String,str)] -> [XmlTree.T i name str] -> XmlTree.T i name str
tagAttr :: forall name str i.
(Tag name, Attribute name) =>
String -> [(String, str)] -> [T i name str] -> T i name str
tagAttr String
name [(String, str)]
attrs =
   forall name str i.
Name name -> [T name str] -> [T i name str] -> T i name str
XmlTree.tagAttr (forall name. C name => String -> name
Name.fromString String
name)
      (forall a b. (a -> b) -> [a] -> [b]
map (forall a b c. (a -> b -> c) -> (a, b) -> c
uncurry forall name string.
Attribute name =>
String -> string -> T name string
Attr.new) [(String, str)]
attrs)

tagIndexAttr ::
   (Name.Tag name, Name.Attribute name) =>
   i -> String -> [(String,str)] -> [XmlTree.T i name str] -> XmlTree.T i name str
tagIndexAttr :: forall name i str.
(Tag name, Attribute name) =>
i -> String -> [(String, str)] -> [T i name str] -> T i name str
tagIndexAttr i
i String
name [(String, str)]
attrs =
   forall i name str.
i -> Name name -> [T name str] -> [T i name str] -> T i name str
XmlTree.tagIndexAttr i
i (forall name. C name => String -> name
Name.fromString String
name)
      (forall a b. (a -> b) -> [a] -> [b]
map (forall a b c. (a -> b -> c) -> (a, b) -> c
uncurry forall name string.
Attribute name =>
String -> string -> T name string
Attr.new) [(String, str)]
attrs)