packages feed

dom-parser 3.1.0 → 3.2.0

raw patch · 5 files changed

+67/−9 lines, 5 filesdep +xml-conduit-writerdep ~basedep ~mtldep ~textPVP ok

version bump matches the API change (PVP)

Dependencies added: xml-conduit-writer

Dependency ranges changed: base, mtl, text

API changes (from Hackage documentation)

- Text.XML.DOM.Parser.Buildable: instance Text.XML.DOM.Parser.Buildable.Buildable Data.List.NonEmpty.NonEmpty
- Text.XML.DOM.Parser.Buildable: instance Text.XML.DOM.Parser.Buildable.Buildable GHC.Base.Maybe
- Text.XML.DOM.Parser.FromAttribute: instance Text.XML.DOM.Parser.FromAttribute.FromAttribute Data.Void.Void
- Text.XML.DOM.Parser.FromAttribute: instance Text.XML.DOM.Parser.FromAttribute.FromAttribute GHC.Integer.Type.Integer
- Text.XML.DOM.Parser.FromDom: instance Text.XML.DOM.Parser.FromDom.FromDom Data.Void.Void
- Text.XML.DOM.Parser.FromDom: instance Text.XML.DOM.Parser.FromDom.FromDom GHC.Integer.Type.Integer
- Text.XML.DOM.Parser.Types: instance Data.Semigroup.Semigroup Text.XML.DOM.Parser.Types.DomPath
- Text.XML.DOM.Parser.Types: instance Data.Semigroup.Semigroup Text.XML.DOM.Parser.Types.ParserErrors
- Text.XML.DOM.Parser.Types: instance GHC.Exception.Exception Text.XML.DOM.Parser.Types.ParserError
- Text.XML.DOM.Parser.Types: instance GHC.Exception.Exception Text.XML.DOM.Parser.Types.ParserErrors
+ Text.XML.DOM.Parser.Buildable: instance Text.XML.DOM.Parser.Buildable.Buildable GHC.Base.NonEmpty
+ Text.XML.DOM.Parser.Buildable: instance Text.XML.DOM.Parser.Buildable.Buildable GHC.Maybe.Maybe
+ Text.XML.DOM.Parser.FromAttribute: instance Text.XML.DOM.Parser.FromAttribute.FromAttribute GHC.Base.Void
+ Text.XML.DOM.Parser.FromAttribute: instance Text.XML.DOM.Parser.FromAttribute.FromAttribute GHC.Num.Integer.Integer
+ Text.XML.DOM.Parser.FromDom: instance Text.XML.DOM.Parser.FromDom.FromDom GHC.Base.Void
+ Text.XML.DOM.Parser.FromDom: instance Text.XML.DOM.Parser.FromDom.FromDom GHC.Num.Integer.Integer
+ Text.XML.DOM.Parser.Types: instance GHC.Base.Semigroup Text.XML.DOM.Parser.Types.DomPath
+ Text.XML.DOM.Parser.Types: instance GHC.Base.Semigroup Text.XML.DOM.Parser.Types.ParserErrors
+ Text.XML.DOM.Parser.Types: instance GHC.Exception.Type.Exception Text.XML.DOM.Parser.Types.ParserError
+ Text.XML.DOM.Parser.Types: instance GHC.Exception.Type.Exception Text.XML.DOM.Parser.Types.ParserErrors
+ Text.XML.Soap: XmlEnvelope :: !Maybe h -> !Maybe b -> XmlEnvelope h b
+ Text.XML.Soap: [_xeBody] :: XmlEnvelope h b -> !Maybe b
+ Text.XML.Soap: [_xeHeader] :: XmlEnvelope h b -> !Maybe h
+ Text.XML.Soap: data XmlEnvelope h b
+ Text.XML.Soap: instance (GHC.Classes.Eq h, GHC.Classes.Eq b) => GHC.Classes.Eq (Text.XML.Soap.XmlEnvelope h b)
+ Text.XML.Soap: instance (GHC.Show.Show h, GHC.Show.Show b) => GHC.Show.Show (Text.XML.Soap.XmlEnvelope h b)
+ Text.XML.Soap: instance (Text.XML.DOM.Parser.FromDom.FromDom h, Text.XML.DOM.Parser.FromDom.FromDom b) => Text.XML.DOM.Parser.FromDom.FromDom (Text.XML.Soap.XmlEnvelope h b)
+ Text.XML.Soap: xeBody :: forall h_anp4 b_anp5 b_ansj. Lens (XmlEnvelope h_anp4 b_anp5) (XmlEnvelope h_anp4 b_ansj) (Maybe b_anp5) (Maybe b_ansj)
+ Text.XML.Soap: xeHeader :: forall h_anp4 b_anp5 h_ansk. Lens (XmlEnvelope h_anp4 b_anp5) (XmlEnvelope h_ansk b_anp5) (Maybe h_anp4) (Maybe h_ansk)
+ Text.XML.Soap: xmlEnvelopeToDocument :: (ToXML h, ToXML b) => XmlEnvelope h b -> Document
- Text.XML.DOM.Parser.Attributes: getCurrentAttribute :: (Monad m) => NameMatcher -> DomParserT Identity m (Maybe Text)
+ Text.XML.DOM.Parser.Attributes: getCurrentAttribute :: Monad m => NameMatcher -> DomParserT Identity m (Maybe Text)
- Text.XML.DOM.Parser.Attributes: getCurrentAttributes :: (Monad m) => DomParserT Identity m (Map Name Text)
+ Text.XML.DOM.Parser.Attributes: getCurrentAttributes :: Monad m => DomParserT Identity m (Map Name Text)
- Text.XML.DOM.Parser.Attributes: parseAttribute :: (Monad m) => NameMatcher -> (Text -> Either Text a) -> DomParserT Identity m a
+ Text.XML.DOM.Parser.Attributes: parseAttribute :: Monad m => NameMatcher -> (Text -> Either Text a) -> DomParserT Identity m a
- Text.XML.DOM.Parser.Attributes: parseAttributeMaybe :: (Monad m) => NameMatcher -> (Text -> Either Text a) -> DomParserT Identity m (Maybe a)
+ Text.XML.DOM.Parser.Attributes: parseAttributeMaybe :: Monad m => NameMatcher -> (Text -> Either Text a) -> DomParserT Identity m (Maybe a)
- Text.XML.DOM.Parser.Combinators: ignoreBlank :: (Monad m) => DomParserT Identity m a -> DomParserT Identity m (Maybe a)
+ Text.XML.DOM.Parser.Combinators: ignoreBlank :: Monad m => DomParserT Identity m a -> DomParserT Identity m (Maybe a)
- Text.XML.DOM.Parser.Combinators: ignoreElem :: (Monad m) => (Element -> Bool) -> DomParserT Identity m a -> DomParserT Identity m (Maybe a)
+ Text.XML.DOM.Parser.Combinators: ignoreElem :: Monad m => (Element -> Bool) -> DomParserT Identity m a -> DomParserT Identity m (Maybe a)
- Text.XML.DOM.Parser.Combinators: ignoreEmpty :: (Monad m) => DomParserT Identity m a -> DomParserT Identity m (Maybe a)
+ Text.XML.DOM.Parser.Combinators: ignoreEmpty :: Monad m => DomParserT Identity m a -> DomParserT Identity m (Maybe a)
- Text.XML.DOM.Parser.Content: checkCurrentName :: (Monad m) => NameMatcher -> DomParserT Identity m ()
+ Text.XML.DOM.Parser.Content: checkCurrentName :: Monad m => NameMatcher -> DomParserT Identity m ()
- Text.XML.DOM.Parser.Content: getCurrentContent :: (Monad m) => DomParserT Identity m (Maybe Text)
+ Text.XML.DOM.Parser.Content: getCurrentContent :: Monad m => DomParserT Identity m (Maybe Text)
- Text.XML.DOM.Parser.Content: getCurrentName :: (Monad m) => DomParserT Identity m Name
+ Text.XML.DOM.Parser.Content: getCurrentName :: Monad m => DomParserT Identity m Name
- Text.XML.DOM.Parser.Content: maybeReadContent :: forall a. (Typeable a) => (Text -> Maybe a) -> Text -> Either Text a
+ Text.XML.DOM.Parser.Content: maybeReadContent :: forall a. Typeable a => (Text -> Maybe a) -> Text -> Either Text a
- Text.XML.DOM.Parser.Content: parseContent :: (Monad m) => (Text -> Either Text a) -> DomParserT Identity m a
+ Text.XML.DOM.Parser.Content: parseContent :: Monad m => (Text -> Either Text a) -> DomParserT Identity m a
- Text.XML.DOM.Parser.FromDom: boolFromDom :: (Monad m) => DomParserT Identity m Bool
+ Text.XML.DOM.Parser.FromDom: boolFromDom :: Monad m => DomParserT Identity m Bool
- Text.XML.DOM.Parser.FromDom: charFromDom :: (Monad m) => DomParserT Identity m Char
+ Text.XML.DOM.Parser.FromDom: charFromDom :: Monad m => DomParserT Identity m Char
- Text.XML.DOM.Parser.FromDom: doubleFromDom :: (Monad m) => DomParserT Identity m Double
+ Text.XML.DOM.Parser.FromDom: doubleFromDom :: Monad m => DomParserT Identity m Double
- Text.XML.DOM.Parser.FromDom: elementFromDom :: (Monad m) => DomParserT Identity m Element
+ Text.XML.DOM.Parser.FromDom: elementFromDom :: Monad m => DomParserT Identity m Element
- Text.XML.DOM.Parser.FromDom: fromDom :: (FromDom a, (Monad m)) => DomParserT Identity m a
+ Text.XML.DOM.Parser.FromDom: fromDom :: (FromDom a, Monad m) => DomParserT Identity m a
- Text.XML.DOM.Parser.FromDom: intFromDom :: (Monad m) => DomParserT Identity m Int
+ Text.XML.DOM.Parser.FromDom: intFromDom :: Monad m => DomParserT Identity m Int
- Text.XML.DOM.Parser.FromDom: integerFromDom :: (Monad m) => DomParserT Identity m Integer
+ Text.XML.DOM.Parser.FromDom: integerFromDom :: Monad m => DomParserT Identity m Integer
- Text.XML.DOM.Parser.FromDom: stringFromDom :: (Monad m) => DomParserT Identity m String
+ Text.XML.DOM.Parser.FromDom: stringFromDom :: Monad m => DomParserT Identity m String
- Text.XML.DOM.Parser.FromDom: textFromDom :: (Monad m) => DomParserT Identity m Text
+ Text.XML.DOM.Parser.FromDom: textFromDom :: Monad m => DomParserT Identity m Text
- Text.XML.DOM.Parser.FromDom: unitFromDom :: (Monad m) => DomParserT Identity m ()
+ Text.XML.DOM.Parser.FromDom: unitFromDom :: Monad m => DomParserT Identity m ()
- Text.XML.DOM.Parser.FromDom: voidFromDom :: (Monad m) => DomParserT Identity m Void
+ Text.XML.DOM.Parser.FromDom: voidFromDom :: Monad m => DomParserT Identity m Void
- Text.XML.DOM.Parser.Types: pdElements :: forall f_akTW f_akXU. Lens (ParserData f_akTW) (ParserData f_akXU) (f_akTW Element) (f_akXU Element)
+ Text.XML.DOM.Parser.Types: pdElements :: forall f_afrz f_aftL. Lens (ParserData f_afrz) (ParserData f_aftL) (f_afrz Element) (f_aftL Element)
- Text.XML.DOM.Parser.Types: pdPath :: forall f_akTW. Lens' (ParserData f_akTW) DomPath
+ Text.XML.DOM.Parser.Types: pdPath :: forall f_afrz. Lens' (ParserData f_afrz) DomPath
- Text.XML.DOM.Parser.Types: runDomParserT :: (Monad m) => Document -> DomParserT Identity m a -> m (Either ParserErrors a)
+ Text.XML.DOM.Parser.Types: runDomParserT :: Monad m => Document -> DomParserT Identity m a -> m (Either ParserErrors a)

Files

CHANGELOG.md view
@@ -2,6 +2,17 @@  ## HEAD +## 3.2.0++### Added++* Text.XML.Soap module with XmlEnvelope stuff in it.+* GHC 9 compatibility.++### Removed++* Old stackage files.+ ## 3.1.0  ### Added
dom-parser.cabal view
@@ -1,5 +1,5 @@ name:                dom-parser-version:             3.1.0+version:             3.2.0 synopsis:            Simple monadic DOM parser license:             MIT license-file:        LICENSE@@ -9,10 +9,9 @@ build-type:          Simple cabal-version:       >=1.10 homepage:            https://github.com/typeable/dom-parser-tested-with:         GHC == 7.10.3-                   , GHC == 8.0.2-                   , GHC == 8.2.2-                   , GHC == 8.4.1+tested-with:         GHC == 9.2.7+                   , GHC == 9.4.8+                   , GHC == 9.6.3 extra-source-files:  CHANGELOG.md                    , README.md @@ -55,6 +54,7 @@                      , text                      , transformers                      , xml-conduit+                     , xml-conduit-writer                      , xml-lens   exposed-modules: Text.XML.DOM.Parser                  , Text.XML.DOM.Parser.Attributes@@ -64,6 +64,7 @@                  , Text.XML.DOM.Parser.FromAttribute                  , Text.XML.DOM.Parser.FromDom                  , Text.XML.DOM.Parser.Types+                 , Text.XML.Soap  test-suite test   type:             exitcode-stdio-1.0
src/Text/XML/DOM/Parser/Content.hs view
@@ -114,8 +114,8 @@     tvals = ["y", "yes", "t", "true", "1"]     fvals = ["n", "no", "f", "false", "0"]   in if-    | lowt `elem` tvals -> Right True-    | lowt `elem` fvals -> Right False+    | lowt `L.elem` tvals -> Right True+    | lowt `L.elem` fvals -> Right False     | otherwise         ->         Left $ "Could not read " <> t <> " as Bool" 
src/Text/XML/DOM/Parser/Types.hs view
@@ -89,8 +89,6 @@     -- ^ Field for 'Show' instance and bulding usefull errors   } -makeLenses ''NameMatcher- -- | Instance use 'matchCILocalName' as most general and liberal -- matching strategy (while XML is often malformed). --@@ -121,6 +119,8 @@   { _nmMatch = \n -> CI.mk (nameLocalName n) == CI.mk tname   , _nmShow  = tname   }++makeLenses ''NameMatcher  -- | Makes matcher which match name by 'Eq' with given --
+ src/Text/XML/Soap.hs view
@@ -0,0 +1,46 @@+module Text.XML.Soap where++import Control.Lens+import Data.String+import Text.XML+import Text.XML.DOM.Parser+import Text.XML.Writer++data XmlEnvelope h b = XmlEnvelope+  { _xeHeader :: !(Maybe h)+  , _xeBody   :: !(Maybe b)+  } deriving (Eq, Show)++makeLenses ''XmlEnvelope++xmlEnvelopeToDocument :: (ToXML h, ToXML b) => XmlEnvelope h b -> Document+xmlEnvelopeToDocument xe = doc+  where+    sname n = fromString $ "{http://schemas.xmlsoap.org/soap/envelope/}" <> n+    doc    =+      Document+        { documentPrologue = Prologue [] Nothing []+        , documentRoot     =+          Element+            { elementName       = sname "Envelope"+            , elementAttributes = mempty+            , elementNodes      = [NodeElement header, NodeElement body]+            }+        , documentEpilogue = []+        }+    header =+      Element+        { elementName       = sname "Header"+        , elementAttributes = mempty+        , elementNodes      = render . toXML $ xe ^. xeHeader+        }+    body   =+      Element+        { elementName       = sname "Body"+        , elementAttributes = mempty+        , elementNodes      = render . toXML $ xe ^. xeBody+        }++instance (FromDom h, FromDom b) => FromDom (XmlEnvelope h b) where+  fromDom = XmlEnvelope <$> inElemMay "Header" fromDom+                        <*> inElemMay "Body" fromDom