xml-types 0.3.1 → 0.3.2
raw patch · 2 files changed
+23/−57 lines, 2 filesdep ~base
Dependency ranges changed: base
Files
- lib/Data/XML/Types.hs +20/−54
- xml-types.cabal +3/−3
lib/Data/XML/Types.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE DeriveDataTypeable #-}+ -- | -- Module: Data.XML.Types -- Copyright: 2010-2011 John Millikin@@ -65,79 +67,58 @@ , attributeContent , attributeText ) where-import Control.Monad ((>=>))-import Data.Maybe (isJust)-import Data.Text (Text)++import Control.Monad ((>=>))+import Data.Maybe (isJust)+import Data.Text (Text) import qualified Data.Text as T-import Data.String (IsString, fromString)-import Data.Function (on)-import Data.Typeable ( Typeable, TypeRep, typeOf- , mkTyConApp, mkTyCon)+import Data.String (IsString, fromString)+import Data.Function (on)+import Data.Typeable (Typeable) data Document = Document { documentPrologue :: Prologue , documentRoot :: Element , documentEpilogue :: [Miscellaneous] }- deriving (Show, Eq, Ord)--instance Typeable Document where- typeOf = typeString "Document"+ deriving (Show, Eq, Ord, Typeable) data Prologue = Prologue { prologueBefore :: [Miscellaneous] , prologueDoctype :: Maybe Doctype , prologueAfter :: [Miscellaneous] }- deriving (Show, Eq, Ord)--instance Typeable Prologue where- typeOf = typeString "Prologue"+ deriving (Show, Eq, Ord, Typeable) data Instruction = Instruction { instructionTarget :: Text , instructionData :: Text }- deriving (Show, Eq, Ord)--instance Typeable Instruction where- typeOf = typeString "Instruction"+ deriving (Show, Eq, Ord, Typeable) data Miscellaneous = MiscInstruction Instruction | MiscComment Text- deriving (Show, Eq, Ord)--instance Typeable Miscellaneous where- typeOf = typeString "Miscellaneous"+ deriving (Show, Eq, Ord, Typeable) data Node = NodeElement Element | NodeInstruction Instruction | NodeContent Content | NodeComment Text- deriving (Show, Eq, Ord)--instance Typeable Node where- typeOf = typeString "Node"+ deriving (Show, Eq, Ord, Typeable) data Element = Element { elementName :: Name , elementAttributes :: [(Name, [Content])] , elementNodes :: [Node] }- deriving (Show, Eq, Ord)--instance Typeable Element where- typeOf = typeString "Element"+ deriving (Show, Eq, Ord, Typeable) data Content = ContentText Text | ContentEntity Text -- ^ For pass-through parsing- deriving (Show, Eq, Ord)--instance Typeable Content where- typeOf = typeString "Content"+ deriving (Show, Eq, Ord, Typeable) -- | A fully qualified name. --@@ -159,10 +140,7 @@ , nameNamespace :: Maybe Text , namePrefix :: Maybe Text }- deriving (Show)--instance Typeable Name where- typeOf = typeString "Name"+ deriving (Show, Typeable) instance Eq Name where (==) = (==) `on` (\x -> (nameNamespace x, nameLocalName x))@@ -187,18 +165,12 @@ { doctypeName :: Text , doctypeID :: Maybe ExternalID }- deriving (Show, Eq, Ord)--instance Typeable Doctype where- typeOf = typeString "Doctype"+ deriving (Show, Eq, Ord, Typeable) data ExternalID = SystemID Text | PublicID Text Text- deriving (Show, Eq, Ord)--instance Typeable ExternalID where- typeOf = typeString "ExternalID"+ deriving (Show, Eq, Ord, Typeable) -- | Some XML processing tools are incremental, and work in terms of events -- rather than node trees. The 'Event' type allows a document to be fully@@ -223,10 +195,7 @@ | EventContent Content | EventComment Text | EventCDATA Text- deriving (Show, Eq, Ord)--instance Typeable Event where- typeOf = typeString "Event"+ deriving (Show, Eq, Ord, Typeable) isElement :: Node -> [Element] isElement (NodeElement e) = [e]@@ -283,6 +252,3 @@ contentFlat :: [Content] -> Text contentFlat cs = T.concat (cs >>= contentText)--typeString :: String -> a -> TypeRep-typeString str _ = mkTyConApp (mkTyCon ("Data.XML.Types." ++ str)) []
xml-types.cabal view
@@ -1,5 +1,5 @@ name: xml-types-version: 0.3.1+version: 0.3.2 synopsis: Basic types for representing XML license: MIT license-file: license.txt@@ -19,14 +19,14 @@ source-repository this type: bazaar location: https://john-millikin.com/branches/xml-types/0.3/- tag: xml-types_0.3.1+ tag: xml-types_0.3.2 library ghc-options: -Wall hs-source-dirs: lib build-depends:- base >= 3 && < 5+ base >= 3.0 && < 5.0 , text exposed-modules: