module Text.XML.HXT.DOM.Namespace
( module Text.XML.HXT.DOM.Namespace
, module Text.XML.HXT.DOM.NamespaceFilter
)
where
import Text.XML.HXT.DOM.XmlTree
import Text.XML.HXT.DOM.XmlState
import Text.XML.HXT.DOM.NamespaceFilter
import Text.XML.HXT.Parser.XmlOutput
( traceTree
, traceSource
, traceMsg
)
propagateAndValidateNamespaces :: XmlStateFilter a
propagateAndValidateNamespaces
= traceMsg 2 "propagating namespaces"
.>>
liftMf propagateNamespaces
.>>
traceTree
.>>
traceSource
.>>
traceMsg 2 "validating namespaces"
.>>
validate
where
validate :: XmlStateFilter a
validate t
= let
errs = validateNamespaces t
in if null errs
then thisM t
else do
liftF this $$< errs
return (setStatus c_err "namespace propagation" t)