module Text.XML.HXT.RelaxNG.PatternFunctions
where
import Text.XML.HXT.RelaxNG.DataTypes
isRelaxEmpty :: Pattern -> Bool
isRelaxEmpty Empty = True
isRelaxEmpty _ = False
isRelaxNotAllowed :: Pattern -> Bool
isRelaxNotAllowed (NotAllowed _) = True
isRelaxNotAllowed _ = False
isRelaxText :: Pattern -> Bool
isRelaxText Text = True
isRelaxText _ = False
isRelaxChoice :: Pattern -> Bool
isRelaxChoice (Choice _ _) = True
isRelaxChoice _ = False
isRelaxInterleave :: Pattern -> Bool
isRelaxInterleave (Interleave _ _) = True
isRelaxInterleave _ = False
isRelaxGroup :: Pattern -> Bool
isRelaxGroup (Group _ _) = True
isRelaxGroup _ = False
isRelaxOneOrMore :: Pattern -> Bool
isRelaxOneOrMore (OneOrMore _) = True
isRelaxOneOrMore _ = False
isRelaxList :: Pattern -> Bool
isRelaxList (List _) = True
isRelaxList _ = False
isRelaxData :: Pattern -> Bool
isRelaxData (Data _ _) = True
isRelaxData _ = False
isRelaxDataExcept :: Pattern -> Bool
isRelaxDataExcept (DataExcept _ _ _) = True
isRelaxDataExcept _ = False
isRelaxValue :: Pattern -> Bool
isRelaxValue (Value _ _ _) = True
isRelaxValue _ = False
isRelaxAttribute :: Pattern -> Bool
isRelaxAttribute (Attribute _ _) = True
isRelaxAttribute _ = False
isRelaxElement :: Pattern -> Bool
isRelaxElement (Element _ _) = True
isRelaxElement _ = False
isRelaxAfter :: Pattern -> Bool
isRelaxAfter (After _ _) = True
isRelaxAfter _ = False
getChildrenPattern :: Pattern -> [Pattern]
getChildrenPattern (Choice p1 p2) = [p1, p2]
getChildrenPattern (Interleave p1 p2) = [p1, p2]
getChildrenPattern (Group p1 p2) = [p1, p2]
getChildrenPattern (OneOrMore p) = [p]
getChildrenPattern (List p) = [p]
getChildrenPattern (Element _ p) = [p]
getChildrenPattern (DataExcept _ _ p) = [p]
getChildrenPattern (Attribute _ p) = [p]
getChildrenPattern (After p1 p2) = [p1, p2]
getChildrenPattern _ = []
getNameClassFromPattern :: Pattern -> NameClass
getNameClassFromPattern (Element nc _) = nc
getNameClassFromPattern (Attribute nc _) = nc
getNameClassFromPattern _ = NCError "Pattern without a NameClass"
getPatternName :: Pattern -> String
getPatternName (Empty) = "Empty"
getPatternName (NotAllowed _) = "NotAllowed"
getPatternName (Text) = "Text"
getPatternName (Choice _ _) = "Choice"
getPatternName (Interleave _ _) = "Interleave"
getPatternName (Group _ _) = "Group"
getPatternName (OneOrMore _) = "OneOrMore"
getPatternName (List _) = "List"
getPatternName (Data _ _ ) = "Data"
getPatternName (DataExcept _ _ _) = "DataExcept"
getPatternName (Value _ _ _) = "Value"
getPatternName (Attribute _ _) = "Attribute"
getPatternName (Element _ _) = "Element"
getPatternName (After _ _) = "After"