packages feed

xml-catalog 0.3.0.1 → 0.5.0

raw patch · 2 files changed

+12/−7 lines, 2 filesdep +bytestringdep +conduitdep +uri-conduitdep −uri-enumeratordep −xml-enumerator

Dependencies added: bytestring, conduit, uri-conduit, xml-conduit

Dependencies removed: uri-enumerator, xml-enumerator

Files

Text/XML/Catalog.hs view
@@ -1,5 +1,6 @@ {-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE FlexibleContexts #-}
 -- | Used for loading a catalog file, caching DTDs and applying DTDs to
 -- documents.
 module Text.XML.Catalog
@@ -16,9 +17,10 @@ import Data.Text (Text)
 import qualified Text.XML as X
 import Control.Monad (foldM)
-import Network.URI.Enumerator
+import Network.URI.Conduit
 import qualified Data.Text as T
-import Control.Monad.IO.Class (MonadIO)
+import qualified Data.Conduit as C
+import Control.Monad.IO.Class (liftIO)
 
 -- | Either a public or system identifier.
 data PubSys = Public Text | System Text
@@ -28,9 +30,10 @@ type Catalog = Map.Map PubSys URI
 
 -- | Load a 'Catalog' from the given path.
-loadCatalog :: MonadIO m => SchemeMap m -> URI -> m Catalog
+loadCatalog :: C.ResourceIO m => SchemeMap -> URI -> m Catalog
 loadCatalog sm uri = do
-    X.Document _ (X.Element _ _ ns) _ <- X.parseEnum_ X.def $ readURI sm uri
+    X.Document _ (X.Element _ _ ns) _ <- liftIO $ C.runResourceT $
+        readURI sm uri C.$$ X.sinkDoc X.def
     foldM (addNode Nothing) Map.empty ns
   where
     addNode mbase0 c (X.NodeElement (X.Element name as ns)) = do
xml-catalog.cabal view
@@ -1,5 +1,5 @@ Name:                xml-catalog
-Version:             0.3.0.1
+Version:             0.5.0
 Synopsis:            Parse XML catalog files
 Homepage:            http://github.com/snoyberg/xml
 License:             BSD3
@@ -16,7 +16,9 @@   Build-depends:       base                     >= 4          && < 5
                      , text                     >= 0.11       && < 1.0
                      , containers               >= 0.2        && < 0.5
-                     , xml-enumerator           >= 0.4        && < 0.5
-                     , uri-enumerator           >= 0.1        && < 0.2
+                     , xml-conduit              >= 0.5        && < 0.6
+                     , uri-conduit              >= 0.2        && < 0.3
+                     , conduit                  >= 0.0        && < 0.1
                      , transformers             >= 0.2        && < 0.3
+                     , bytestring
   Ghc-options: -Wall