module Text.XML.HXT.RelaxNG.BasicArrows
where
import Control.Arrow.ListArrows
import Text.XML.HXT.DOM.Interface
import Text.XML.HXT.Arrow.XmlArrow
hiding
( mkText
, mkError
)
hasRngName :: ArrowXml a => String -> a XmlTree XmlTree
hasRngName s
= hasName s
`orElse`
( hasLocalPart s >>> hasNamespaceUri relaxNamespace )
checkRngName :: ArrowXml a => [String] -> a XmlTree XmlTree
checkRngName l
= ( isElem
>>>
catA (map hasRngName l)
)
`guards` this
noOfChildren :: ArrowXml a => (Int -> Bool) -> a XmlTree XmlTree
noOfChildren p
= getChildren
>>.
(\ l -> if p (length l) then l else [])
isAttributeRef :: ArrowXml a => a XmlTree XmlTree
isAttributeRef
= checkRngName ["attribute", "ref"]
isAttributeRefTextListGroupInterleaveOneOrMoreEmpty :: ArrowXml a => a XmlTree XmlTree
isAttributeRefTextListGroupInterleaveOneOrMoreEmpty
= checkRngName ["attribute", "ref", "text", "list", "group", "interleave", "oneOrMore", "empty"]
isAttributeRefTextListInterleave :: ArrowXml a => a XmlTree XmlTree
isAttributeRefTextListInterleave
= checkRngName ["attribute", "ref", "text", "list", "interleave"]
isAttributeListGroupInterleaveOneOrMore :: ArrowXml a => a XmlTree XmlTree
isAttributeListGroupInterleaveOneOrMore
= checkRngName ["attribute", "list", "group", "interleave", "oneOrMore"]
isExternalRefInclude :: ArrowXml a => a XmlTree XmlTree
isExternalRefInclude
= checkRngName ["externalRef", "include"]
isNameNsNameValue :: ArrowXml a => a XmlTree XmlTree
isNameNsNameValue
= checkRngName ["name", "nsName", "value"]
isNameNsName :: ArrowXml a => a XmlTree XmlTree
isNameNsName
= checkRngName ["name", "nsName"]
isNameAnyNameNsName :: ArrowXml a => a XmlTree XmlTree
isNameAnyNameNsName
= checkRngName ["name", "anyName", "nsName"]
isDefineOneOrMoreZeroOrMoreOptionalListMixed :: ArrowXml a => a XmlTree XmlTree
isDefineOneOrMoreZeroOrMoreOptionalListMixed
= checkRngName ["define", "oneOrMore", "zeroOrMore", "optional", "list", "mixed"]
isChoiceGroupInterleave :: ArrowXml a => a XmlTree XmlTree
isChoiceGroupInterleave
= checkRngName ["choice", "group", "interleave"]
isChoiceGroupInterleaveOneOrMore :: ArrowXml a => a XmlTree XmlTree
isChoiceGroupInterleaveOneOrMore
= checkRngName ["choice", "group", "interleave", "oneOrMore"]
isGroupInterleave :: ArrowXml a => a XmlTree XmlTree
isGroupInterleave
= checkRngName ["group", "interleave"]
isRngAnyName :: ArrowXml a => a XmlTree XmlTree
isRngAnyName = isElem >>> hasRngName "anyName"
isRngAttribute :: ArrowXml a => a XmlTree XmlTree
isRngAttribute = isElem >>> hasRngName "attribute"
isRngChoice :: ArrowXml a => a XmlTree XmlTree
isRngChoice = isElem >>> hasRngName "choice"
isRngCombine :: ArrowXml a => a XmlTree XmlTree
isRngCombine = isElem >>> hasRngName "combine"
isRngData :: ArrowXml a => a XmlTree XmlTree
isRngData = isElem >>> hasRngName "data"
isRngDefine :: ArrowXml a => a XmlTree XmlTree
isRngDefine = isElem >>> hasRngName "define"
isRngDiv :: ArrowXml a => a XmlTree XmlTree
isRngDiv = isElem >>> hasRngName "div"
isRngElement :: ArrowXml a => a XmlTree XmlTree
isRngElement = isElem >>> hasRngName "element"
isRngEmpty :: ArrowXml a => a XmlTree XmlTree
isRngEmpty = isElem >>> hasRngName "empty"
isRngExcept :: ArrowXml a => a XmlTree XmlTree
isRngExcept = isElem >>> hasRngName "except"
isRngExternalRef :: ArrowXml a => a XmlTree XmlTree
isRngExternalRef = isElem >>> hasRngName "externalRef"
isRngGrammar :: ArrowXml a => a XmlTree XmlTree
isRngGrammar = isElem >>> hasRngName "grammar"
isRngGroup :: ArrowXml a => a XmlTree XmlTree
isRngGroup = isElem >>> hasRngName "group"
isRngInclude :: ArrowXml a => a XmlTree XmlTree
isRngInclude = isElem >>> hasRngName "include"
isRngInterleave :: ArrowXml a => a XmlTree XmlTree
isRngInterleave = isElem >>> hasRngName "interleave"
isRngList :: ArrowXml a => a XmlTree XmlTree
isRngList = isElem >>> hasRngName "list"
isRngMixed :: ArrowXml a => a XmlTree XmlTree
isRngMixed = isElem >>> hasRngName "mixed"
isRngName :: ArrowXml a => a XmlTree XmlTree
isRngName = isElem >>> hasRngName "name"
isRngNotAllowed :: ArrowXml a => a XmlTree XmlTree
isRngNotAllowed = isElem >>> hasRngName "notAllowed"
isRngNsName :: ArrowXml a => a XmlTree XmlTree
isRngNsName = isElem >>> hasRngName "nsName"
isRngOneOrMore :: ArrowXml a => a XmlTree XmlTree
isRngOneOrMore = isElem >>> hasRngName "oneOrMore"
isRngOptional :: ArrowXml a => a XmlTree XmlTree
isRngOptional = isElem >>> hasRngName "optional"
isRngParam :: ArrowXml a => a XmlTree XmlTree
isRngParam = isElem >>> hasRngName "param"
isRngParentRef :: ArrowXml a => a XmlTree XmlTree
isRngParentRef = isElem >>> hasRngName "parentRef"
isRngRef :: ArrowXml a => a XmlTree XmlTree
isRngRef = isElem >>> hasRngName "ref"
isRngRelaxError :: ArrowXml a => a XmlTree XmlTree
isRngRelaxError = isElem >>> hasRngName "relaxError"
isRngStart :: ArrowXml a => a XmlTree XmlTree
isRngStart = isElem >>> hasRngName "start"
isRngText :: ArrowXml a => a XmlTree XmlTree
isRngText = isElem >>> hasRngName "text"
isRngType :: ArrowXml a => a XmlTree XmlTree
isRngType = isElem >>> hasRngName "type"
isRngValue :: ArrowXml a => a XmlTree XmlTree
isRngValue = isElem >>> hasRngName "value"
isRngZeroOrMore :: ArrowXml a => a XmlTree XmlTree
isRngZeroOrMore = isElem >>> hasRngName "zeroOrMore"
mkRngElement :: ArrowXml a => String -> a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngElement n = mkElement (mkQName "" n relaxNamespace)
mkRngChoice :: ArrowXml a => a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngChoice = mkRngElement "choice"
mkRngDefine :: ArrowXml a => a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngDefine = mkRngElement "define"
mkRngEmpty :: ArrowXml a => a n XmlTree -> a n XmlTree
mkRngEmpty a = mkRngElement "empty" a none
mkRngGrammar :: ArrowXml a => a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngGrammar = mkRngElement "grammar"
mkRngGroup :: ArrowXml a => a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngGroup = mkRngElement "group"
mkRngInterleave :: ArrowXml a => a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngInterleave = mkRngElement "interleave"
mkRngName :: ArrowXml a => a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngName = mkRngElement "name"
mkRngNotAllowed :: ArrowXml a => a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngNotAllowed = mkRngElement "notAllowed"
mkRngOneOrMore :: ArrowXml a => a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngOneOrMore = mkRngElement "oneOrMore"
mkRngRef :: ArrowXml a => a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngRef = mkRngElement "ref"
mkRngRelaxError :: ArrowXml a => a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngRelaxError = mkRngElement "relaxError"
mkRngStart :: ArrowXml a => a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngStart = mkRngElement "start"
mkRngText :: ArrowXml a => a n XmlTree -> a n XmlTree
mkRngText a = mkRngElement "text" a none
setRngName :: ArrowXml a => String -> a XmlTree XmlTree
setRngName n = setElemName (mkQName "" n relaxNamespace)
setRngNameDiv :: ArrowXml a => a XmlTree XmlTree
setRngNameDiv = setRngName "div"
setRngNameRef :: ArrowXml a => a XmlTree XmlTree
setRngNameRef = setRngName "ref"
isRngAttrAttribute :: ArrowXml a => a XmlTree XmlTree
isRngAttrAttribute = isAttr >>> hasRngName "attribute"
isRngAttrCombine :: ArrowXml a => a XmlTree XmlTree
isRngAttrCombine = isAttr >>> hasRngName "combine"
isRngAttrDatatypeLibrary :: ArrowXml a => a XmlTree XmlTree
isRngAttrDatatypeLibrary = isAttr >>> hasRngName "datatypeLibrary"
isRngAttrHref :: ArrowXml a => a XmlTree XmlTree
isRngAttrHref = isAttr >>> hasRngName "href"
isRngAttrName :: ArrowXml a => a XmlTree XmlTree
isRngAttrName = isAttr >>> hasRngName "name"
isRngAttrNs :: ArrowXml a => a XmlTree XmlTree
isRngAttrNs = isAttr >>> hasRngName "ns"
isRngAttrType :: ArrowXml a => a XmlTree XmlTree
isRngAttrType = isAttr >>> hasRngName "type"
hasRngAttrAttribute :: ArrowXml a => a XmlTree XmlTree
hasRngAttrAttribute = hasAttr "attribute"
hasRngAttrCombine :: ArrowXml a => a XmlTree XmlTree
hasRngAttrCombine = hasAttr "combine"
hasRngAttrDatatypeLibrary :: ArrowXml a => a XmlTree XmlTree
hasRngAttrDatatypeLibrary = hasAttr "datatypeLibrary"
hasRngAttrHref :: ArrowXml a => a XmlTree XmlTree
hasRngAttrHref = hasAttr "href"
hasRngAttrName :: ArrowXml a => a XmlTree XmlTree
hasRngAttrName = hasAttr "name"
hasRngAttrNs :: ArrowXml a => a XmlTree XmlTree
hasRngAttrNs = hasAttr "ns"
hasRngAttrType :: ArrowXml a => a XmlTree XmlTree
hasRngAttrType = hasAttr "type"
getRngAttrAttribute :: ArrowXml a => a XmlTree String
getRngAttrAttribute = getAttrValue "attribute"
getRngAttrCombine :: ArrowXml a => a XmlTree String
getRngAttrCombine = getAttrValue "combine"
getRngAttrDatatypeLibrary :: ArrowXml a => a XmlTree String
getRngAttrDatatypeLibrary = getAttrValue "datatypeLibrary"
getRngAttrDescr :: ArrowXml a => a XmlTree String
getRngAttrDescr = getAttrValue "descr"
getRngAttrHref :: ArrowXml a => a XmlTree String
getRngAttrHref = getAttrValue "href"
getRngAttrName :: ArrowXml a => a XmlTree String
getRngAttrName = getAttrValue "name"
getRngAttrNs :: ArrowXml a => a XmlTree String
getRngAttrNs = getAttrValue "ns"
getRngAttrType :: ArrowXml a => a XmlTree String
getRngAttrType = getAttrValue "type"