-- ------------------------------------------------------------

{- |
   Module     : Text.XML.HXT.RelaxNG.BasicArrows
   Copyright  : Copyright (C) 2011 Uwe Schmidt
   License    : MIT

   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
   Stability  : experimental
   Portability: portable

   Constants and basic arrows for Relax NG

-}

-- ------------------------------------------------------------

module Text.XML.HXT.RelaxNG.BasicArrows
where

import Control.Arrow.ListArrows

import Text.XML.HXT.DOM.Interface
import Text.XML.HXT.Arrow.XmlArrow

import Text.XML.HXT.RelaxNG.DataTypes
    ( a_relaxSimplificationChanges
    , defineOrigName
    , contextBaseAttr
    )

-- ------------------------------------------------------------

hasRngAttName           :: ArrowXml a => String -> a XmlTree XmlTree
hasRngAttName :: String -> a XmlTree XmlTree
hasRngAttName s :: String
s
    = a XmlTree XmlTree
forall (a :: * -> * -> *). ArrowXml a => a XmlTree XmlTree
isAttr
      a XmlTree XmlTree -> a XmlTree XmlTree -> a XmlTree XmlTree
forall k (cat :: k -> k -> *) (a :: k) (b :: k) (c :: k).
Category cat =>
cat a b -> cat b c -> cat a c
>>>
      String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasLocalPart String
s
      a XmlTree XmlTree -> a XmlTree XmlTree -> a XmlTree XmlTree
forall k (cat :: k -> k -> *) (a :: k) (b :: k) (c :: k).
Category cat =>
cat a b -> cat b c -> cat a c
>>>
      String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasNamespaceUri ""

hasRngElemName          :: ArrowXml a => String -> a XmlTree XmlTree
hasRngElemName :: String -> a XmlTree XmlTree
hasRngElemName s :: String
s
    = a XmlTree XmlTree
forall (a :: * -> * -> *). ArrowXml a => a XmlTree XmlTree
isElem
      a XmlTree XmlTree -> a XmlTree XmlTree -> a XmlTree XmlTree
forall k (cat :: k -> k -> *) (a :: k) (b :: k) (c :: k).
Category cat =>
cat a b -> cat b c -> cat a c
>>>
      String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasLocalPart String
s
      a XmlTree XmlTree -> a XmlTree XmlTree -> a XmlTree XmlTree
forall k (cat :: k -> k -> *) (a :: k) (b :: k) (c :: k).
Category cat =>
cat a b -> cat b c -> cat a c
>>>
      String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasNamespaceUri String
relaxNamespace

checkRngName :: ArrowXml a => [String] -> a XmlTree XmlTree
checkRngName :: [String] -> a XmlTree XmlTree
checkRngName l :: [String]
l
    = [a XmlTree XmlTree] -> a XmlTree XmlTree
forall (a :: * -> * -> *) b c. ArrowList a => [a b c] -> a b c
catA ((String -> a XmlTree XmlTree) -> [String] -> [a XmlTree XmlTree]
forall a b. (a -> b) -> [a] -> [b]
map String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngElemName [String]
l)
      a XmlTree XmlTree -> a XmlTree XmlTree -> a XmlTree XmlTree
forall (a :: * -> * -> *) b c d.
ArrowIf a =>
a b c -> a b d -> a b d
`guards`
      a XmlTree XmlTree
forall (a :: * -> * -> *) b. ArrowList a => a b b
this

noOfChildren    :: ArrowXml a => (Int -> Bool) -> a XmlTree XmlTree
noOfChildren :: (Int -> Bool) -> a XmlTree XmlTree
noOfChildren p :: Int -> Bool
p
    = a XmlTree XmlTree
forall (a :: * -> * -> *) (t :: * -> *) b.
(ArrowTree a, Tree t) =>
a (t b) (t b)
getChildren
      a XmlTree XmlTree -> ([XmlTree] -> [XmlTree]) -> a XmlTree XmlTree
forall (a :: * -> * -> *) b c d.
ArrowList a =>
a b c -> ([c] -> [d]) -> a b d
>>.
      (\ l :: [XmlTree]
l -> if Int -> Bool
p ([XmlTree] -> Int
forall (t :: * -> *) a. Foldable t => t a -> Int
length [XmlTree]
l) then [XmlTree]
l else [])

-- ------------------------------------------------------------

isAttributeRef  :: ArrowXml a => a XmlTree XmlTree
isAttributeRef :: a XmlTree XmlTree
isAttributeRef
    = [String] -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
[String] -> a XmlTree XmlTree
checkRngName ["attribute", "ref"]

isAttributeRefTextListGroupInterleaveOneOrMoreEmpty     :: ArrowXml a => a XmlTree XmlTree
isAttributeRefTextListGroupInterleaveOneOrMoreEmpty :: a XmlTree XmlTree
isAttributeRefTextListGroupInterleaveOneOrMoreEmpty
    = [String] -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
[String] -> a XmlTree XmlTree
checkRngName ["attribute", "ref", "text", "list", "group", "interleave", "oneOrMore", "empty"]

isAttributeRefTextListInterleave        :: ArrowXml a => a XmlTree XmlTree
isAttributeRefTextListInterleave :: a XmlTree XmlTree
isAttributeRefTextListInterleave
    = [String] -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
[String] -> a XmlTree XmlTree
checkRngName ["attribute", "ref", "text", "list", "interleave"]

isAttributeListGroupInterleaveOneOrMore :: ArrowXml a => a XmlTree XmlTree
isAttributeListGroupInterleaveOneOrMore :: a XmlTree XmlTree
isAttributeListGroupInterleaveOneOrMore
    = [String] -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
[String] -> a XmlTree XmlTree
checkRngName ["attribute", "list", "group", "interleave", "oneOrMore"]

isExternalRefInclude    :: ArrowXml a => a XmlTree XmlTree
isExternalRefInclude :: a XmlTree XmlTree
isExternalRefInclude
    = [String] -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
[String] -> a XmlTree XmlTree
checkRngName ["externalRef", "include"]

isNameNsNameValue       :: ArrowXml a => a XmlTree XmlTree
isNameNsNameValue :: a XmlTree XmlTree
isNameNsNameValue
    = [String] -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
[String] -> a XmlTree XmlTree
checkRngName ["name", "nsName", "value"]

isNameNsName    :: ArrowXml a => a XmlTree XmlTree
isNameNsName :: a XmlTree XmlTree
isNameNsName
    = [String] -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
[String] -> a XmlTree XmlTree
checkRngName ["name", "nsName"]

isNameAnyNameNsName     :: ArrowXml a => a XmlTree XmlTree
isNameAnyNameNsName :: a XmlTree XmlTree
isNameAnyNameNsName
    = [String] -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
[String] -> a XmlTree XmlTree
checkRngName ["name", "anyName", "nsName"]

isDefineOneOrMoreZeroOrMoreOptionalListMixed    :: ArrowXml a => a XmlTree XmlTree
isDefineOneOrMoreZeroOrMoreOptionalListMixed :: a XmlTree XmlTree
isDefineOneOrMoreZeroOrMoreOptionalListMixed
    = [String] -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
[String] -> a XmlTree XmlTree
checkRngName ["define", "oneOrMore", "zeroOrMore", "optional", "list", "mixed"]

isChoiceGroupInterleave :: ArrowXml a => a XmlTree XmlTree
isChoiceGroupInterleave :: a XmlTree XmlTree
isChoiceGroupInterleave
    = [String] -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
[String] -> a XmlTree XmlTree
checkRngName ["choice", "group", "interleave"]

isChoiceGroupInterleaveOneOrMore        :: ArrowXml a => a XmlTree XmlTree
isChoiceGroupInterleaveOneOrMore :: a XmlTree XmlTree
isChoiceGroupInterleaveOneOrMore
    = [String] -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
[String] -> a XmlTree XmlTree
checkRngName ["choice", "group", "interleave", "oneOrMore"]

isGroupInterleave       :: ArrowXml a => a XmlTree XmlTree
isGroupInterleave :: a XmlTree XmlTree
isGroupInterleave
    = [String] -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
[String] -> a XmlTree XmlTree
checkRngName ["group", "interleave"]

-- ------------------------------------------------------------

isRngAnyName            :: ArrowXml a => a XmlTree XmlTree
isRngAnyName :: a XmlTree XmlTree
isRngAnyName            = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngElemName "anyName"

isRngAttribute          :: ArrowXml a => a XmlTree XmlTree
isRngAttribute :: a XmlTree XmlTree
isRngAttribute          = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngElemName "attribute"

isRngChoice             :: ArrowXml a => a XmlTree XmlTree
isRngChoice :: a XmlTree XmlTree
isRngChoice             = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngElemName "choice"

isRngCombine            :: ArrowXml a => a XmlTree XmlTree
isRngCombine :: a XmlTree XmlTree
isRngCombine            = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngElemName "combine"

isRngData               :: ArrowXml a => a XmlTree XmlTree
isRngData :: a XmlTree XmlTree
isRngData               = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngElemName "data"

isRngDefine             :: ArrowXml a => a XmlTree XmlTree
isRngDefine :: a XmlTree XmlTree
isRngDefine             = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngElemName "define"

isRngDiv                :: ArrowXml a => a XmlTree XmlTree
isRngDiv :: a XmlTree XmlTree
isRngDiv                = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngElemName "div"

isRngElement            :: ArrowXml a => a XmlTree XmlTree
isRngElement :: a XmlTree XmlTree
isRngElement            = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngElemName "element"

isRngEmpty              :: ArrowXml a => a XmlTree XmlTree
isRngEmpty :: a XmlTree XmlTree
isRngEmpty              = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngElemName "empty"

isRngExcept             :: ArrowXml a => a XmlTree XmlTree
isRngExcept :: a XmlTree XmlTree
isRngExcept             = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngElemName "except"

isRngExternalRef        :: ArrowXml a => a XmlTree XmlTree
isRngExternalRef :: a XmlTree XmlTree
isRngExternalRef        = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngElemName "externalRef"

isRngGrammar            :: ArrowXml a => a XmlTree XmlTree
isRngGrammar :: a XmlTree XmlTree
isRngGrammar            = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngElemName "grammar"

isRngGroup              :: ArrowXml a => a XmlTree XmlTree
isRngGroup :: a XmlTree XmlTree
isRngGroup              = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngElemName "group"

isRngInclude            :: ArrowXml a => a XmlTree XmlTree
isRngInclude :: a XmlTree XmlTree
isRngInclude            = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngElemName "include"

isRngInterleave         :: ArrowXml a => a XmlTree XmlTree
isRngInterleave :: a XmlTree XmlTree
isRngInterleave         = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngElemName "interleave"

isRngList               :: ArrowXml a => a XmlTree XmlTree
isRngList :: a XmlTree XmlTree
isRngList               = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngElemName "list"

isRngMixed              :: ArrowXml a => a XmlTree XmlTree
isRngMixed :: a XmlTree XmlTree
isRngMixed              = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngElemName "mixed"

isRngName               :: ArrowXml a => a XmlTree XmlTree
isRngName :: a XmlTree XmlTree
isRngName               = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngElemName "name"

isRngNotAllowed         :: ArrowXml a => a XmlTree XmlTree
isRngNotAllowed :: a XmlTree XmlTree
isRngNotAllowed         = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngElemName "notAllowed"

isRngNsName             :: ArrowXml a => a XmlTree XmlTree
isRngNsName :: a XmlTree XmlTree
isRngNsName             = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngElemName "nsName"

isRngOneOrMore          :: ArrowXml a => a XmlTree XmlTree
isRngOneOrMore :: a XmlTree XmlTree
isRngOneOrMore          = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngElemName "oneOrMore"

isRngOptional           :: ArrowXml a => a XmlTree XmlTree
isRngOptional :: a XmlTree XmlTree
isRngOptional           = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngElemName "optional"

isRngParam              :: ArrowXml a => a XmlTree XmlTree
isRngParam :: a XmlTree XmlTree
isRngParam              = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngElemName "param"

isRngParentRef          :: ArrowXml a => a XmlTree XmlTree
isRngParentRef :: a XmlTree XmlTree
isRngParentRef          = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngElemName "parentRef"

isRngRef                :: ArrowXml a => a XmlTree XmlTree
isRngRef :: a XmlTree XmlTree
isRngRef                = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngElemName "ref"

isRngRelaxError         :: ArrowXml a => a XmlTree XmlTree
isRngRelaxError :: a XmlTree XmlTree
isRngRelaxError         = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngElemName "relaxError"

isRngStart              :: ArrowXml a => a XmlTree XmlTree
isRngStart :: a XmlTree XmlTree
isRngStart              = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngElemName "start"

isRngText               :: ArrowXml a => a XmlTree XmlTree
isRngText :: a XmlTree XmlTree
isRngText               = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngElemName "text"

isRngType               :: ArrowXml a => a XmlTree XmlTree
isRngType :: a XmlTree XmlTree
isRngType               = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngElemName "type"

isRngValue              :: ArrowXml a => a XmlTree XmlTree
isRngValue :: a XmlTree XmlTree
isRngValue              = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngElemName "value"

isRngZeroOrMore         :: ArrowXml a => a XmlTree XmlTree
isRngZeroOrMore :: a XmlTree XmlTree
isRngZeroOrMore         = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngElemName "zeroOrMore"

-- ------------------------------------------------------------

mkRngElement            :: ArrowXml a => String -> a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngElement :: String -> a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngElement n :: String
n          = QName -> a n XmlTree -> a n XmlTree -> a n XmlTree
forall (a :: * -> * -> *) n.
ArrowXml a =>
QName -> a n XmlTree -> a n XmlTree -> a n XmlTree
mkElement (String -> String -> String -> QName
mkQName "" String
n String
relaxNamespace)

mkRngChoice             :: ArrowXml a => a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngChoice :: a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngChoice             = String -> a n XmlTree -> a n XmlTree -> a n XmlTree
forall (a :: * -> * -> *) n.
ArrowXml a =>
String -> a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngElement "choice"

mkRngDefine             :: ArrowXml a => a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngDefine :: a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngDefine             = String -> a n XmlTree -> a n XmlTree -> a n XmlTree
forall (a :: * -> * -> *) n.
ArrowXml a =>
String -> a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngElement "define"

mkRngEmpty              :: ArrowXml a => a n XmlTree -> a n XmlTree
mkRngEmpty :: a n XmlTree -> a n XmlTree
mkRngEmpty a :: a n XmlTree
a            = String -> a n XmlTree -> a n XmlTree -> a n XmlTree
forall (a :: * -> * -> *) n.
ArrowXml a =>
String -> a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngElement "empty" a n XmlTree
a a n XmlTree
forall (a :: * -> * -> *) b c. ArrowList a => a b c
none

mkRngGrammar            :: ArrowXml a => a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngGrammar :: a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngGrammar            = String -> a n XmlTree -> a n XmlTree -> a n XmlTree
forall (a :: * -> * -> *) n.
ArrowXml a =>
String -> a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngElement "grammar"

mkRngGroup              :: ArrowXml a => a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngGroup :: a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngGroup              = String -> a n XmlTree -> a n XmlTree -> a n XmlTree
forall (a :: * -> * -> *) n.
ArrowXml a =>
String -> a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngElement "group"

mkRngInterleave         :: ArrowXml a => a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngInterleave :: a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngInterleave         = String -> a n XmlTree -> a n XmlTree -> a n XmlTree
forall (a :: * -> * -> *) n.
ArrowXml a =>
String -> a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngElement "interleave"

mkRngName               :: ArrowXml a => a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngName :: a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngName               = String -> a n XmlTree -> a n XmlTree -> a n XmlTree
forall (a :: * -> * -> *) n.
ArrowXml a =>
String -> a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngElement "name"

mkRngNotAllowed         :: ArrowXml a => a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngNotAllowed :: a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngNotAllowed         = String -> a n XmlTree -> a n XmlTree -> a n XmlTree
forall (a :: * -> * -> *) n.
ArrowXml a =>
String -> a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngElement "notAllowed"

mkRngOneOrMore          :: ArrowXml a => a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngOneOrMore :: a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngOneOrMore          = String -> a n XmlTree -> a n XmlTree -> a n XmlTree
forall (a :: * -> * -> *) n.
ArrowXml a =>
String -> a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngElement "oneOrMore"

mkRngRef                :: ArrowXml a => a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngRef :: a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngRef                = String -> a n XmlTree -> a n XmlTree -> a n XmlTree
forall (a :: * -> * -> *) n.
ArrowXml a =>
String -> a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngElement "ref"

mkRngRelaxError         :: ArrowXml a => a n XmlTree
mkRngRelaxError :: a n XmlTree
mkRngRelaxError         = String -> a n XmlTree -> a n XmlTree -> a n XmlTree
forall (a :: * -> * -> *) n.
ArrowXml a =>
String -> a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngElement "relaxError" a n XmlTree
forall (a :: * -> * -> *) b c. ArrowList a => a b c
none a n XmlTree
forall (a :: * -> * -> *) b c. ArrowList a => a b c
none

mkRngStart              :: ArrowXml a => a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngStart :: a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngStart              = String -> a n XmlTree -> a n XmlTree -> a n XmlTree
forall (a :: * -> * -> *) n.
ArrowXml a =>
String -> a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngElement "start"

mkRngText               :: ArrowXml a => a n XmlTree -> a n XmlTree
mkRngText :: a n XmlTree -> a n XmlTree
mkRngText a :: a n XmlTree
a             = String -> a n XmlTree -> a n XmlTree -> a n XmlTree
forall (a :: * -> * -> *) n.
ArrowXml a =>
String -> a n XmlTree -> a n XmlTree -> a n XmlTree
mkRngElement "text" a n XmlTree
a a n XmlTree
forall (a :: * -> * -> *) b c. ArrowList a => a b c
none

-- ------------------------------------------------------------

setRngName              :: ArrowXml a => String -> a XmlTree XmlTree
setRngName :: String -> a XmlTree XmlTree
setRngName n :: String
n            = QName -> a XmlTree XmlTree
forall (a :: * -> * -> *). ArrowXml a => QName -> a XmlTree XmlTree
setElemName (String -> String -> String -> QName
mkQName "" String
n String
relaxNamespace)

setRngNameDiv           :: ArrowXml a => a XmlTree XmlTree
setRngNameDiv :: a XmlTree XmlTree
setRngNameDiv           = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
setRngName "div"

setRngNameRef           :: ArrowXml a => a XmlTree XmlTree
setRngNameRef :: a XmlTree XmlTree
setRngNameRef           = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
setRngName "ref"

-- ------------------------------------------------------------

-- Attributes

isRngAttrAttribute              :: ArrowXml a => a XmlTree XmlTree
isRngAttrAttribute :: a XmlTree XmlTree
isRngAttrAttribute              = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngAttName "attribute"

isRngAttrCombine                :: ArrowXml a => a XmlTree XmlTree
isRngAttrCombine :: a XmlTree XmlTree
isRngAttrCombine                = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngAttName "combine"

isRngAttrDatatypeLibrary        :: ArrowXml a => a XmlTree XmlTree
isRngAttrDatatypeLibrary :: a XmlTree XmlTree
isRngAttrDatatypeLibrary        = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngAttName "datatypeLibrary"

isRngAttrHref                   :: ArrowXml a => a XmlTree XmlTree
isRngAttrHref :: a XmlTree XmlTree
isRngAttrHref                   = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngAttName "href"

isRngAttrName                   :: ArrowXml a => a XmlTree XmlTree
isRngAttrName :: a XmlTree XmlTree
isRngAttrName                   = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngAttName "name"

isRngAttrNs                     :: ArrowXml a => a XmlTree XmlTree
isRngAttrNs :: a XmlTree XmlTree
isRngAttrNs                     = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngAttName "ns"

isRngAttrType                   :: ArrowXml a => a XmlTree XmlTree
isRngAttrType :: a XmlTree XmlTree
isRngAttrType                   = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngAttName "type"

isRngAttrRelaxSimplificationChanges     :: ArrowXml a => a XmlTree XmlTree
isRngAttrRelaxSimplificationChanges :: a XmlTree XmlTree
isRngAttrRelaxSimplificationChanges     = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasRngAttName String
a_relaxSimplificationChanges

-- ------------------------------------------------------------

mkRngAttr                       :: ArrowXml a => String -> a b String -> a b XmlTree
mkRngAttr :: String -> a b String -> a b XmlTree
mkRngAttr name :: String
name value :: a b String
value            = QName -> a b XmlTree -> a b XmlTree
forall (a :: * -> * -> *) n.
ArrowXml a =>
QName -> a n XmlTree -> a n XmlTree
mkAttr (String -> QName
mkName String
name) (a b String
value a b String -> a String XmlTree -> a b XmlTree
forall k (cat :: k -> k -> *) (a :: k) (b :: k) (c :: k).
Category cat =>
cat a b -> cat b c -> cat a c
>>> a String XmlTree
forall (a :: * -> * -> *). ArrowXml a => a String XmlTree
mkText)

mkRngAttrName                   :: ArrowXml a => String -> a b XmlTree
mkRngAttrName :: String -> a b XmlTree
mkRngAttrName value :: String
value             = String -> a b String -> a b XmlTree
forall (a :: * -> * -> *) b.
ArrowXml a =>
String -> a b String -> a b XmlTree
mkRngAttr "name" (String -> a b String
forall (a :: * -> * -> *) c b. ArrowList a => c -> a b c
constA String
value)

mkRngAttrRelaxSimplificationChanges     :: ArrowXml a => String -> a b XmlTree
mkRngAttrRelaxSimplificationChanges :: String -> a b XmlTree
mkRngAttrRelaxSimplificationChanges value :: String
value
                                = String -> a b String -> a b XmlTree
forall (a :: * -> * -> *) b.
ArrowXml a =>
String -> a b String -> a b XmlTree
mkRngAttr String
a_relaxSimplificationChanges (String -> a b String
forall (a :: * -> * -> *) c b. ArrowList a => c -> a b c
constA String
value)

mkRngAttrDefineOrigName         :: ArrowXml a => String -> a b XmlTree
mkRngAttrDefineOrigName :: String -> a b XmlTree
mkRngAttrDefineOrigName value :: String
value   = String -> a b String -> a b XmlTree
forall (a :: * -> * -> *) b.
ArrowXml a =>
String -> a b String -> a b XmlTree
mkRngAttr String
defineOrigName (String -> a b String
forall (a :: * -> * -> *) c b. ArrowList a => c -> a b c
constA String
value)

mkRngAttrContextBase            :: ArrowXml a => a b String -> a b XmlTree
mkRngAttrContextBase :: a b String -> a b XmlTree
mkRngAttrContextBase            = String -> a b String -> a b XmlTree
forall (a :: * -> * -> *) b.
ArrowXml a =>
String -> a b String -> a b XmlTree
mkRngAttr String
contextBaseAttr

addRngAttrName                  :: ArrowXml a => String -> a XmlTree XmlTree
addRngAttrName :: String -> a XmlTree XmlTree
addRngAttrName value :: String
value            = String -> String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> String -> a XmlTree XmlTree
addAttr "name" String
value

addRngAttrDescr                 :: ArrowXml a => String -> a XmlTree XmlTree
addRngAttrDescr :: String -> a XmlTree XmlTree
addRngAttrDescr                 = String -> String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> String -> a XmlTree XmlTree
addAttr "descr"

addRngAttrChanges               :: ArrowXml a => String -> a XmlTree XmlTree
addRngAttrChanges :: String -> a XmlTree XmlTree
addRngAttrChanges               = String -> String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> String -> a XmlTree XmlTree
addAttr "changes"

addRngAttrNs                    :: ArrowXml a => String -> a XmlTree XmlTree
addRngAttrNs :: String -> a XmlTree XmlTree
addRngAttrNs                    = String -> String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> String -> a XmlTree XmlTree
addAttr "ns"

rmRngAttrNs                     :: ArrowXml a => a XmlTree XmlTree
rmRngAttrNs :: a XmlTree XmlTree
rmRngAttrNs                     = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
removeAttr "ns"

-- ------------------------------------------------------------

hasRngAttrRelaxSimplificationChanges             :: ArrowXml a => a XmlTree XmlTree
hasRngAttrRelaxSimplificationChanges :: a XmlTree XmlTree
hasRngAttrRelaxSimplificationChanges             = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasAttr String
a_relaxSimplificationChanges

hasRngAttrAttribute             :: ArrowXml a => a XmlTree XmlTree
hasRngAttrAttribute :: a XmlTree XmlTree
hasRngAttrAttribute             = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasAttr "attribute"

hasRngAttrCombine               :: ArrowXml a => a XmlTree XmlTree
hasRngAttrCombine :: a XmlTree XmlTree
hasRngAttrCombine               = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasAttr "combine"

hasRngAttrDatatypeLibrary       :: ArrowXml a => a XmlTree XmlTree
hasRngAttrDatatypeLibrary :: a XmlTree XmlTree
hasRngAttrDatatypeLibrary       = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasAttr "datatypeLibrary"

hasRngAttrHref                  :: ArrowXml a => a XmlTree XmlTree
hasRngAttrHref :: a XmlTree XmlTree
hasRngAttrHref                  = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasAttr "href"

hasRngAttrName                  :: ArrowXml a => a XmlTree XmlTree
hasRngAttrName :: a XmlTree XmlTree
hasRngAttrName                  = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasAttr "name"

hasRngAttrNs                    :: ArrowXml a => a XmlTree XmlTree
hasRngAttrNs :: a XmlTree XmlTree
hasRngAttrNs                    = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasAttr "ns"

hasRngAttrType                  :: ArrowXml a => a XmlTree XmlTree
hasRngAttrType :: a XmlTree XmlTree
hasRngAttrType                  = String -> a XmlTree XmlTree
forall (a :: * -> * -> *).
ArrowXml a =>
String -> a XmlTree XmlTree
hasAttr "type"

-- ------------------------------------------------------------

getRngAttrAttribute             :: ArrowXml a => a XmlTree String
getRngAttrAttribute :: a XmlTree String
getRngAttrAttribute             = String -> a XmlTree String
forall (a :: * -> * -> *). ArrowXml a => String -> a XmlTree String
getAttrValue "attribute"

getRngAttrCombine               :: ArrowXml a => a XmlTree String
getRngAttrCombine :: a XmlTree String
getRngAttrCombine               = String -> a XmlTree String
forall (a :: * -> * -> *). ArrowXml a => String -> a XmlTree String
getAttrValue "combine"

getRngAttrDatatypeLibrary       :: ArrowXml a => a XmlTree String
getRngAttrDatatypeLibrary :: a XmlTree String
getRngAttrDatatypeLibrary       = String -> a XmlTree String
forall (a :: * -> * -> *). ArrowXml a => String -> a XmlTree String
getAttrValue "datatypeLibrary"

getRngAttrDescr                 :: ArrowXml a => a XmlTree String
getRngAttrDescr :: a XmlTree String
getRngAttrDescr                 = String -> a XmlTree String
forall (a :: * -> * -> *). ArrowXml a => String -> a XmlTree String
getAttrValue "descr"

getRngAttrHref                  :: ArrowXml a => a XmlTree String
getRngAttrHref :: a XmlTree String
getRngAttrHref                  = String -> a XmlTree String
forall (a :: * -> * -> *). ArrowXml a => String -> a XmlTree String
getAttrValue "href"

getRngAttrName                  :: ArrowXml a => a XmlTree String
getRngAttrName :: a XmlTree String
getRngAttrName                  = String -> a XmlTree String
forall (a :: * -> * -> *). ArrowXml a => String -> a XmlTree String
getAttrValue "name"

getRngAttrNs                    :: ArrowXml a => a XmlTree String
getRngAttrNs :: a XmlTree String
getRngAttrNs                    = String -> a XmlTree String
forall (a :: * -> * -> *). ArrowXml a => String -> a XmlTree String
getAttrValue "ns"

getRngAttrType                  :: ArrowXml a => a XmlTree String
getRngAttrType :: a XmlTree String
getRngAttrType                  = String -> a XmlTree String
forall (a :: * -> * -> *). ArrowXml a => String -> a XmlTree String
getAttrValue "type"

-- ------------------------------------------------------------