symantic-xml-2.0.0.20200523: Library for reading, validating and writing XML.

Safe HaskellNone
LanguageHaskell2010

Symantic.XML.Read

Contents

Synopsis

Documentation

read :: Read FileSourced Void (x -> x) a -> FilePath -> IO (Either String a) Source #

Main reading function.

runRead :: Read FileSourced Void (x -> x) a -> FileSourcedTrees -> Either String a Source #

Like readWithRelaxNG but on a FileSourcedTrees.

Type ReadStream

type ReadStream src = (HashMap QName (src EscapedAttr), Trees src) Source #

take1_ :: UnSource src => (Node (src EscapedAttr) -> Bool) -> ReadStream src -> Maybe (Token (ReadStream src), ReadStream src) Source #

Take one Node from the ReadStream, or fallback to an attribute, or Nothing.

Use pTokenAttr to take only attributes.

Type ReadConstraints

type ReadConstraints src = (Ord (src (Node (src EscapedAttr))), Ord (src EscapedAttr), UnSource src, NoSource src, SourceOf src, Show (Source src), Show (src String), Functor src) Source #

Convenient alias to be less verbose.

Type Read

newtype Read src e f k Source #

Constructors

Read 

Fields

Instances
(Ord err, ReadConstraints src) => Constant (Read src err) Source # 
Instance details

Defined in Symantic.XML.Read

Methods

constant :: a -> Read src err (a -> k) k

(Ord err, ReadConstraints src) => Dicurryable (Read src err) Source # 
Instance details

Defined in Symantic.XML.Read

Methods

dicurry :: CurryN args => proxy args -> (args -..-> r) -> (r -> Tuples args) -> Read src err (args -..-> k) k -> Read src err (r -> k) k

(Ord err, ReadConstraints src) => Eitherable (Read src err) Source # 
Instance details

Defined in Symantic.XML.Read

Methods

(<+>) :: Read src err (a -> k) k -> Read src err (b -> k) k -> Read src err (Either a b -> k) k

(Ord err, ReadConstraints src) => Emptyable (Read src err) Source # 
Instance details

Defined in Symantic.XML.Read

Methods

empty :: Read src err k k

(Ord err, ReadConstraints src) => Optionable (Read src err) Source # 
Instance details

Defined in Symantic.XML.Read

Methods

option :: Read src err k k -> Read src err k k

optional :: Read src err (a -> k) k -> Read src err (Maybe a -> k) k

(Ord err, ReadConstraints src) => Repeatable (Read src err) Source # 
Instance details

Defined in Symantic.XML.Read

Methods

many0 :: Read src err (a -> k) k -> Read src err ([a] -> k) k

many1 :: Read src err (a -> k) k -> Read src err ([a] -> k) k

(Ord err, ReadConstraints src) => Tupable (Read src err) Source # 
Instance details

Defined in Symantic.XML.Read

Methods

(<:>) :: Read src err (a -> k) k -> Read src err (b -> k) k -> Read src err ((a, b) -> k) k

(Ord err, ReadConstraints src) => Unitable (Read src err) Source # 
Instance details

Defined in Symantic.XML.Read

Methods

unit :: Read src err (() -> k) k

(Ord err, ReadConstraints src) => Dimapable (Read src err) Source # 
Instance details

Defined in Symantic.XML.Read

Methods

dimap :: (a -> b) -> (b -> a) -> Read src err (a -> k) k -> Read src err (b -> k) k

(Ord err, ReadConstraints src) => Composable (Read src err) Source # 
Instance details

Defined in Symantic.XML.Read

Methods

(<.>) :: Read src err a b -> Read src err b c -> Read src err a c

(Ord err, ReadConstraints src) => Voidable (Read src err) Source # 
Instance details

Defined in Symantic.XML.Read

Methods

void :: a -> Read src err (a -> b) k -> Read src err b k

(Ord err, ReadConstraints src) => Permutable (Read src err) Source # 
Instance details

Defined in Symantic.XML.Read

Associated Types

type Permutation (Read src err) = (r :: Type -> Type -> Type)

Methods

permutable :: Permutation (Read src err) (a -> k) k -> Read src err (a -> k) k

perm :: Read src err (a -> k) k -> Permutation (Read src err) (a -> k) k

noPerm :: Permutation (Read src err) k k

permWithDefault :: a -> Read src err (a -> k) k -> Permutation (Read src err) (a -> k) k

optionalPerm :: (Eitherable (Read src err), Dimapable (Read src err), Permutable (Read src err)) => Read src err (a -> k) k -> Permutation (Read src err) (Maybe a -> k) k

Ord err => Textable (Read FileSourced err) Source # 
Instance details

Defined in Symantic.XML.Read

Associated Types

type TextConstraint (Read FileSourced err) a :: Constraint Source #

Methods

text :: TextConstraint (Read FileSourced err) a => Read FileSourced err (a -> k) k Source #

(Ord err, ReadConstraints src, Textable (Read src err)) => XML (Read src err) Source # 
Instance details

Defined in Symantic.XML.Read

Methods

namespace :: Maybe NCName -> Namespace -> Read src err k k Source #

element :: QName -> Read src err a k -> Read src err a k Source #

attribute :: QName -> Read src err a k -> Read src err a k Source #

pi :: PName -> Read src err (Text -> k) k Source #

literal :: Text -> Read src err k k Source #

comment :: Read src err (Text -> k) k Source #

cdata :: Read src err (Text -> k) k Source #

Ord err => Definable (Read FileSourced err) Source # 
Instance details

Defined in Symantic.XML.Read

Methods

define :: DefineName -> Read FileSourced err a k -> Read FileSourced err a k Source #

(Ord err, ReadConstraints src, Textable (Read src err), Definable (Read src err)) => RelaxNG (Read src err) Source # 
Instance details

Defined in Symantic.XML.Read

Methods

elementMatch :: NameClass -> Read src err a k -> Read src err (QName -> a) k Source #

attributeMatch :: NameClass -> Read src err a k -> Read src err (QName -> a) k Source #

type Permutation (Read src err) Source # 
Instance details

Defined in Symantic.XML.Read

type Permutation (Read src err) = ReadPerm src err
type TextConstraint (Read FileSourced err) a Source # 
Instance details

Defined in Symantic.XML.Read

Type ReadPerm

data ReadPerm (src :: * -> *) err a k Source #

Constructors

ReadPerm 

Fields

Instances
(Ord err, ReadConstraints src) => Dicurryable (ReadPerm src err) Source # 
Instance details

Defined in Symantic.XML.Read

Methods

dicurry :: CurryN args => proxy args -> (args -..-> r) -> (r -> Tuples args) -> ReadPerm src err (args -..-> k) k -> ReadPerm src err (r -> k) k

(Ord err, ReadConstraints src) => Tupable (ReadPerm src err) Source # 
Instance details

Defined in Symantic.XML.Read

Methods

(<:>) :: ReadPerm src err (a -> k) k -> ReadPerm src err (b -> k) k -> ReadPerm src err ((a, b) -> k) k

(Ord err, ReadConstraints src) => Dimapable (ReadPerm src err) Source # 
Instance details

Defined in Symantic.XML.Read

Methods

dimap :: (a -> b) -> (b -> a) -> ReadPerm src err (a -> k) k -> ReadPerm src err (b -> k) k

(Ord err, ReadConstraints src) => Composable (ReadPerm src err) Source # 
Instance details

Defined in Symantic.XML.Read

Methods

(<.>) :: ReadPerm src err a b -> ReadPerm src err b c -> ReadPerm src err a c

Definable (ReadPerm src err) Source # 
Instance details

Defined in Symantic.XML.Read

Methods

define :: DefineName -> ReadPerm src err a k -> ReadPerm src err a k Source #

Utils

concatCont :: [(a -> k) -> k] -> ([a] -> k) -> k Source #

consCont :: (a -> b -> c) -> ((a -> k) -> k) -> ((b -> k) -> k) -> (c -> k) -> k Source #

mapCont :: (a -> b) -> ((a -> k) -> k) -> (b -> k) -> k Source #

pTokenAttr :: forall e m src. ReadConstraints src => QName -> Set (ErrorItem (Token (ReadStream src))) -> ParsecT e (ReadStream src) m (src EscapedAttr) Source #

An adaptation of megaparsec's pToken, to handle attribute properly.

pTokenAttrNameClass :: forall e m src. ReadConstraints src => NameClass -> Set (ErrorItem (Token (ReadStream src))) -> ParsecT e (ReadStream src) m (QName, src EscapedAttr) Source #

An adaptation of megaparsec's pToken, to handle attributeMatch properly.

pTokenPI :: forall e m src. UnSource src => PName -> Set (ErrorItem (Token (ReadStream src))) -> ParsecT e (ReadStream src) m Text Source #

An adaptation of megaparsec's pToken, to handle pi since NodePI is ignored by take1_.

removeSpaces :: UnSource src => Trees src -> Trees src Source #

readNested :: Ord err => ReadConstraints src => Read src err f a -> ReadStream src -> Read src err f a Source #

readNested v xs returns a Read parsing xs entirely with v, updating stateOffset and re-raising any exception.

Class DecodeText

class DecodeText a where Source #

Instances
DecodeText Bool Source # 
Instance details

Defined in Symantic.XML.Read

DecodeText Integer Source # 
Instance details

Defined in Symantic.XML.Read

DecodeText Natural Source # 
Instance details

Defined in Symantic.XML.Read

DecodeText String Source # 
Instance details

Defined in Symantic.XML.Read

DecodeText Text Source # 
Instance details

Defined in Symantic.XML.Read

DecodeText Text Source # 
Instance details

Defined in Symantic.XML.Read

Megaparsec adaptations

orList :: IsString s => Monoid s => [s] -> s Source #

Orphan instances