]> gitweb @ CieloNegro.org - hxt-compile.git/blobdiff - Text/XML/HXT/Compilation.hs
filterOutRootAttrs
[hxt-compile.git] / Text / XML / HXT / Compilation.hs
index 01e13e28b48ead8dd963a5cc6f4220ea75d49e4f..c2428de92137d65c3e6904bf749b96ed35337224 100644 (file)
@@ -11,6 +11,8 @@ import           Text.XML.HXT.Compilation.XmlTree
 
 compileDocument :: ArrowXml a => a XmlTree (HsQualType, HsExp)
 compileDocument = uniqueNamespacesFromDeclAndQNames
+                  >>>
+                  filterOutRootAttrs
                   >>>
                   ( constA (HsQualType [] (HsTyCon (UnQual (HsIdent "XmlTree"))))
                     &&&
@@ -18,6 +20,12 @@ compileDocument = uniqueNamespacesFromDeclAndQNames
                   )
 
 
+filterOutRootAttrs :: ArrowXml a => a XmlTree XmlTree
+filterOutRootAttrs = processTopDownUntil (clearAttrs `when` isRoot)
+    where
+      clearAttrs = processAttrl none
+
+
 wrapIntoModule :: Arrow a => a (Module, ([HsImportDecl], (HsName, (HsQualType, HsExp)))) HsModule
 wrapIntoModule = proc (modName, (extImports, (symName, (symType, symExp)))) ->
                  do let hsModule = HsModule undefined modName (Just exports) imports decls