module XsltValidator where import XmlTree hiding (mkNode) import DocValidation import Validation import XmlState ---------------------------------------------------------------------- -- type XmlStateFilter state = XmlTree -> XState state XmlTrees validateXslFile :: XmlTrees -> XmlTrees -> XState state XmlTrees validateXslFile xslDtd xslFile = return (DocValidation.validateDoc (head xsldtd) (head $ remNotXslt $ xslFile)) where xsldtd = (getChildren .> isDoctype .> processBottomUp removeDoublicateDefs) $ head xslDtd {-- --validateXslFile :: XmlTrees -> XmlTrees -> XmlTrees valXslFile :: XmlTrees -> XmlTrees -> XState state XmlTrees valXslFile xslDtd xslFile -- = DocValidation.validateDoc (head dtd) (head xslFile) = DocValidation.validateDoc (head dtd) (head $ removeNotXslt $$ xslFile) where dtd = (getChildren .> isDoctype .> processBottomUp removeDoublicateDefs) $ head xslDtd --} --removeNotXslt :: XmlStateFilter state --removeNotXslt ts -- = liftMf ( remNotXslt ) ts -- | -- entfernen der nicht xsl-Elemente aus dem baum remNotXslt :: XmlSFilter remNotXslt ts = (processChildren process `when` isXTag) $$ ts where process :: XmlFilter process = none `when` isNotXslt isNotXslt :: XmlFilter isNotXslt = neg (hasPrefix "xsl")