Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Text.XML
Description
DOM-based parsing and rendering.
This module requires that all entities be resolved at parsing. If you need to interact with unresolved entities, please use Text.XML.Unresolved. This is the recommended module for most uses cases.
While many of the datatypes in this module are simply re-exported from
Data.XML.Types
, Document
, Node
and Element
are all redefined here to
disallow the possibility of unresolved entities. Conversion functions are
provided to switch between the two sets of datatypes.
For simpler, bidirectional traversal of the DOM tree, see the Text.XML.Cursor module.
Synopsis
- data Document = Document {}
- data Prologue = Prologue {
- prologueBefore :: [Miscellaneous]
- prologueDoctype :: Maybe Doctype
- prologueAfter :: [Miscellaneous]
- data Instruction = Instruction {
- instructionTarget :: Text
- instructionData :: Text
- data Miscellaneous
- = MiscInstruction Instruction
- | MiscComment Text
- data Node
- = NodeElement Element
- | NodeInstruction Instruction
- | NodeContent Text
- | NodeComment Text
- data Element = Element {
- elementName :: Name
- elementAttributes :: Map Name Text
- elementNodes :: [Node]
- data Name = Name {
- nameLocalName :: Text
- nameNamespace :: Maybe Text
- namePrefix :: Maybe Text
- data Doctype = Doctype {
- doctypeName :: Text
- doctypeID :: Maybe ExternalID
- data ExternalID
- readFile :: ParseSettings -> FilePath -> IO Document
- parseLBS :: ParseSettings -> ByteString -> Either SomeException Document
- parseLBS_ :: ParseSettings -> ByteString -> Document
- sinkDoc :: MonadThrow m => ParseSettings -> ConduitT ByteString o m Document
- parseText :: ParseSettings -> Text -> Either SomeException Document
- parseText_ :: ParseSettings -> Text -> Document
- sinkTextDoc :: MonadThrow m => ParseSettings -> ConduitT Text o m Document
- fromEvents :: MonadThrow m => ConduitT EventPos o m Document
- data UnresolvedEntityException = UnresolvedEntityException (Set Text)
- data XMLException = InvalidXMLFile FilePath SomeException
- writeFile :: RenderSettings -> FilePath -> Document -> IO ()
- renderLBS :: RenderSettings -> Document -> ByteString
- renderText :: RenderSettings -> Document -> Text
- renderBytes :: PrimMonad m => RenderSettings -> Document -> ConduitT i ByteString m ()
- def :: Default a => a
- data ParseSettings
- psDecodeEntities :: ParseSettings -> DecodeEntities
- psRetainNamespaces :: ParseSettings -> Bool
- decodeXmlEntities :: DecodeEntities
- decodeHtmlEntities :: DecodeEntities
- data RenderSettings
- rsPretty :: RenderSettings -> Bool
- rsNamespaces :: RenderSettings -> [(Text, Text)]
- rsAttrOrder :: RenderSettings -> Name -> Map Name Text -> [(Name, Text)]
- rsUseCDATA :: RenderSettings -> Content -> Bool
- rsXMLDeclaration :: RenderSettings -> Bool
- orderAttrs :: [(Name, [Name])] -> Name -> Map Name Text -> [(Name, Text)]
- toXMLDocument :: Document -> Document
- fromXMLDocument :: Document -> Either (Set Text) Document
- toXMLNode :: Node -> Node
- fromXMLNode :: Node -> Either (Set Text) Node
- toXMLElement :: Element -> Element
- fromXMLElement :: Element -> Either (Set Text) Element
Data types
Constructors
Document | |
Fields |
Instances
Data Document # | |
Defined in Text.XML Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Document -> c Document gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Document toConstr :: Document -> Constr dataTypeOf :: Document -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Document) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Document) gmapT :: (forall b. Data b => b -> b) -> Document -> Document gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Document -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Document -> r gmapQ :: (forall d. Data d => d -> u) -> Document -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Document -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Document -> m Document gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Document -> m Document gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Document -> m Document | |
Show Document # | |
ToMarkup Document # | |
NFData Document # | |
Eq Document # | |
Constructors
Prologue | |
Fields
|
Instances
Data Prologue | |
Defined in Data.XML.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Prologue -> c Prologue gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Prologue toConstr :: Prologue -> Constr dataTypeOf :: Prologue -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Prologue) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Prologue) gmapT :: (forall b. Data b => b -> b) -> Prologue -> Prologue gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Prologue -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Prologue -> r gmapQ :: (forall d. Data d => d -> u) -> Prologue -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Prologue -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Prologue -> m Prologue gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Prologue -> m Prologue gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Prologue -> m Prologue | |
Generic Prologue | |
Show Prologue | |
NFData Prologue | |
Defined in Data.XML.Types | |
Eq Prologue | |
Ord Prologue | |
type Rep Prologue | |
Defined in Data.XML.Types type Rep Prologue = D1 ('MetaData "Prologue" "Data.XML.Types" "xml-types-0.3.8-HF90TLWmHZu5DojalAv5Jy" 'False) (C1 ('MetaCons "Prologue" 'PrefixI 'True) (S1 ('MetaSel ('Just "prologueBefore") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Miscellaneous]) :*: (S1 ('MetaSel ('Just "prologueDoctype") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Doctype)) :*: S1 ('MetaSel ('Just "prologueAfter") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Miscellaneous])))) |
data Instruction #
Constructors
Instruction | |
Fields
|
Instances
Data Instruction | |
Defined in Data.XML.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Instruction -> c Instruction gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Instruction toConstr :: Instruction -> Constr dataTypeOf :: Instruction -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Instruction) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Instruction) gmapT :: (forall b. Data b => b -> b) -> Instruction -> Instruction gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Instruction -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Instruction -> r gmapQ :: (forall d. Data d => d -> u) -> Instruction -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Instruction -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Instruction -> m Instruction gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Instruction -> m Instruction gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Instruction -> m Instruction | |
Generic Instruction | |
Defined in Data.XML.Types Associated Types type Rep Instruction :: Type -> Type | |
Show Instruction | |
Defined in Data.XML.Types Methods showsPrec :: Int -> Instruction -> ShowS show :: Instruction -> String showList :: [Instruction] -> ShowS | |
NFData Instruction | |
Defined in Data.XML.Types Methods rnf :: Instruction -> () | |
Eq Instruction | |
Defined in Data.XML.Types | |
Ord Instruction | |
Defined in Data.XML.Types Methods compare :: Instruction -> Instruction -> Ordering (<) :: Instruction -> Instruction -> Bool (<=) :: Instruction -> Instruction -> Bool (>) :: Instruction -> Instruction -> Bool (>=) :: Instruction -> Instruction -> Bool max :: Instruction -> Instruction -> Instruction min :: Instruction -> Instruction -> Instruction | |
type Rep Instruction | |
Defined in Data.XML.Types type Rep Instruction = D1 ('MetaData "Instruction" "Data.XML.Types" "xml-types-0.3.8-HF90TLWmHZu5DojalAv5Jy" 'False) (C1 ('MetaCons "Instruction" 'PrefixI 'True) (S1 ('MetaSel ('Just "instructionTarget") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "instructionData") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text))) |
data Miscellaneous #
Constructors
MiscInstruction Instruction | |
MiscComment Text |
Instances
Data Miscellaneous | |
Defined in Data.XML.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Miscellaneous -> c Miscellaneous gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Miscellaneous toConstr :: Miscellaneous -> Constr dataTypeOf :: Miscellaneous -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Miscellaneous) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Miscellaneous) gmapT :: (forall b. Data b => b -> b) -> Miscellaneous -> Miscellaneous gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Miscellaneous -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Miscellaneous -> r gmapQ :: (forall d. Data d => d -> u) -> Miscellaneous -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Miscellaneous -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Miscellaneous -> m Miscellaneous gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Miscellaneous -> m Miscellaneous gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Miscellaneous -> m Miscellaneous | |
Generic Miscellaneous | |
Defined in Data.XML.Types Associated Types type Rep Miscellaneous :: Type -> Type | |
Show Miscellaneous | |
Defined in Data.XML.Types Methods showsPrec :: Int -> Miscellaneous -> ShowS show :: Miscellaneous -> String showList :: [Miscellaneous] -> ShowS | |
NFData Miscellaneous | |
Defined in Data.XML.Types Methods rnf :: Miscellaneous -> () | |
Eq Miscellaneous | |
Defined in Data.XML.Types | |
Ord Miscellaneous | |
Defined in Data.XML.Types Methods compare :: Miscellaneous -> Miscellaneous -> Ordering (<) :: Miscellaneous -> Miscellaneous -> Bool (<=) :: Miscellaneous -> Miscellaneous -> Bool (>) :: Miscellaneous -> Miscellaneous -> Bool (>=) :: Miscellaneous -> Miscellaneous -> Bool max :: Miscellaneous -> Miscellaneous -> Miscellaneous min :: Miscellaneous -> Miscellaneous -> Miscellaneous | |
type Rep Miscellaneous | |
Defined in Data.XML.Types type Rep Miscellaneous = D1 ('MetaData "Miscellaneous" "Data.XML.Types" "xml-types-0.3.8-HF90TLWmHZu5DojalAv5Jy" 'False) (C1 ('MetaCons "MiscInstruction" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Instruction)) :+: C1 ('MetaCons "MiscComment" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text))) |
Constructors
NodeElement Element | |
NodeInstruction Instruction | |
NodeContent Text | |
NodeComment Text |
Instances
Data Node # | |
Defined in Text.XML Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Node -> c Node gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Node dataTypeOf :: Node -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Node) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Node) gmapT :: (forall b. Data b => b -> b) -> Node -> Node gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Node -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Node -> r gmapQ :: (forall d. Data d => d -> u) -> Node -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Node -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Node -> m Node gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Node -> m Node gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Node -> m Node | |
Show Node # | |
ToMarkup Node # | |
NFData Node # | |
Eq Node # | |
Ord Node # | |
Constructors
Element | |
Fields
|
Instances
Data Element # | |
Defined in Text.XML Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Element -> c Element gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Element dataTypeOf :: Element -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Element) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Element) gmapT :: (forall b. Data b => b -> b) -> Element -> Element gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Element -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Element -> r gmapQ :: (forall d. Data d => d -> u) -> Element -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Element -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Element -> m Element gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Element -> m Element gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Element -> m Element | |
Show Element # | |
ToMarkup Element # | Note that the special element name
|
NFData Element # | |
Eq Element # | |
Ord Element # | |
A fully qualified name.
Prefixes are not semantically important; they are included only to
simplify pass-through parsing. When comparing names with Eq
or Ord
methods, prefixes are ignored.
The IsString
instance supports Clark notation; see
http://www.jclark.com/xml/xmlns.htm and
http://infohost.nmt.edu/tcc/help/pubs/pylxml/etree-QName.html. Use
the OverloadedStrings
language extension for very simple Name
construction:
myname :: Name myname = "{http://example.com/ns/my-namespace}my-name"
Constructors
Name | |
Fields
|
Instances
Data Name | |
Defined in Data.XML.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Name -> c Name gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Name dataTypeOf :: Name -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Name) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Name) gmapT :: (forall b. Data b => b -> b) -> Name -> Name gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Name -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Name -> r gmapQ :: (forall d. Data d => d -> u) -> Name -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Name -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Name -> m Name gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Name -> m Name gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Name -> m Name | |
IsString Name | |
Defined in Data.XML.Types Methods fromString :: String -> Name | |
Generic Name | |
Show Name | |
NFData Name | |
Defined in Data.XML.Types | |
Eq Name | |
Ord Name | |
type Rep Name | |
Defined in Data.XML.Types type Rep Name = D1 ('MetaData "Name" "Data.XML.Types" "xml-types-0.3.8-HF90TLWmHZu5DojalAv5Jy" 'False) (C1 ('MetaCons "Name" 'PrefixI 'True) (S1 ('MetaSel ('Just "nameLocalName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: (S1 ('MetaSel ('Just "nameNamespace") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text)) :*: S1 ('MetaSel ('Just "namePrefix") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text))))) |
Note: due to the incredible complexity of DTDs, this type only supports external subsets. I've tried adding internal subset types, but they quickly gain more code than the rest of this module put together.
It is possible that some future version of this library might support internal subsets, but I am no longer actively working on adding them.
Constructors
Doctype | |
Fields
|
Instances
Data Doctype | |
Defined in Data.XML.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Doctype -> c Doctype gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Doctype dataTypeOf :: Doctype -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Doctype) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Doctype) gmapT :: (forall b. Data b => b -> b) -> Doctype -> Doctype gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Doctype -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Doctype -> r gmapQ :: (forall d. Data d => d -> u) -> Doctype -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Doctype -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Doctype -> m Doctype gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Doctype -> m Doctype gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Doctype -> m Doctype | |
Generic Doctype | |
Show Doctype | |
NFData Doctype | |
Defined in Data.XML.Types | |
Eq Doctype | |
Ord Doctype | |
type Rep Doctype | |
Defined in Data.XML.Types type Rep Doctype = D1 ('MetaData "Doctype" "Data.XML.Types" "xml-types-0.3.8-HF90TLWmHZu5DojalAv5Jy" 'False) (C1 ('MetaCons "Doctype" 'PrefixI 'True) (S1 ('MetaSel ('Just "doctypeName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "doctypeID") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe ExternalID)))) |
data ExternalID #
Instances
Data ExternalID | |
Defined in Data.XML.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ExternalID -> c ExternalID gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ExternalID toConstr :: ExternalID -> Constr dataTypeOf :: ExternalID -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ExternalID) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ExternalID) gmapT :: (forall b. Data b => b -> b) -> ExternalID -> ExternalID gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ExternalID -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ExternalID -> r gmapQ :: (forall d. Data d => d -> u) -> ExternalID -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> ExternalID -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> ExternalID -> m ExternalID gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ExternalID -> m ExternalID gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ExternalID -> m ExternalID | |
Generic ExternalID | |
Defined in Data.XML.Types Associated Types type Rep ExternalID :: Type -> Type | |
Show ExternalID | |
Defined in Data.XML.Types Methods showsPrec :: Int -> ExternalID -> ShowS show :: ExternalID -> String showList :: [ExternalID] -> ShowS | |
NFData ExternalID | |
Defined in Data.XML.Types Methods rnf :: ExternalID -> () | |
Eq ExternalID | |
Defined in Data.XML.Types | |
Ord ExternalID | |
Defined in Data.XML.Types Methods compare :: ExternalID -> ExternalID -> Ordering (<) :: ExternalID -> ExternalID -> Bool (<=) :: ExternalID -> ExternalID -> Bool (>) :: ExternalID -> ExternalID -> Bool (>=) :: ExternalID -> ExternalID -> Bool max :: ExternalID -> ExternalID -> ExternalID min :: ExternalID -> ExternalID -> ExternalID | |
type Rep ExternalID | |
Defined in Data.XML.Types type Rep ExternalID = D1 ('MetaData "ExternalID" "Data.XML.Types" "xml-types-0.3.8-HF90TLWmHZu5DojalAv5Jy" 'False) (C1 ('MetaCons "SystemID" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)) :+: C1 ('MetaCons "PublicID" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text))) |
Parsing
Files
readFile :: ParseSettings -> FilePath -> IO Document #
Bytes
parseLBS :: ParseSettings -> ByteString -> Either SomeException Document #
parseLBS_ :: ParseSettings -> ByteString -> Document #
sinkDoc :: MonadThrow m => ParseSettings -> ConduitT ByteString o m Document #
Text
parseText :: ParseSettings -> Text -> Either SomeException Document #
parseText_ :: ParseSettings -> Text -> Document #
sinkTextDoc :: MonadThrow m => ParseSettings -> ConduitT Text o m Document #
Other
fromEvents :: MonadThrow m => ConduitT EventPos o m Document #
data UnresolvedEntityException #
Constructors
UnresolvedEntityException (Set Text) |
Instances
Exception UnresolvedEntityException # | |
Defined in Text.XML Methods toException :: UnresolvedEntityException -> SomeException fromException :: SomeException -> Maybe UnresolvedEntityException displayException :: UnresolvedEntityException -> String | |
Show UnresolvedEntityException # | |
Defined in Text.XML Methods showsPrec :: Int -> UnresolvedEntityException -> ShowS show :: UnresolvedEntityException -> String showList :: [UnresolvedEntityException] -> ShowS |
data XMLException #
Constructors
InvalidXMLFile FilePath SomeException |
Instances
Exception XMLException # | |
Defined in Text.XML Methods toException :: XMLException -> SomeException fromException :: SomeException -> Maybe XMLException displayException :: XMLException -> String | |
Show XMLException # | |
Defined in Text.XML Methods showsPrec :: Int -> XMLException -> ShowS show :: XMLException -> String showList :: [XMLException] -> ShowS |
Rendering
writeFile :: RenderSettings -> FilePath -> Document -> IO () #
renderLBS :: RenderSettings -> Document -> ByteString #
renderText :: RenderSettings -> Document -> Text #
renderBytes :: PrimMonad m => RenderSettings -> Document -> ConduitT i ByteString m () #
Settings
Parsing
data ParseSettings #
Instances
Default ParseSettings # | |
Defined in Text.XML.Stream.Parse Methods def :: ParseSettings # |
psRetainNamespaces :: ParseSettings -> Bool #
Whether the original xmlns attributes should be retained in the parsed values. For more information on motivation, see:
https://github.com/snoyberg/xml/issues/38
Default: False
Since 1.2.1
Entity decoding
decodeXmlEntities :: DecodeEntities #
Default implementation of DecodeEntities
, which leaves the
entity as-is. Numeric character references and the five standard
entities (lt, gt, amp, quot, pos) are handled internally by the
parser.
decodeHtmlEntities :: DecodeEntities #
HTML4-compliant entity decoder. Handles the additional 248 entities defined by HTML 4 and XHTML 1.
Note that HTML 5 introduces a drastically larger number of entities, and this code does not recognize most of them.
Rendering
data RenderSettings #
Instances
Default RenderSettings # | |
Defined in Text.XML.Stream.Render Methods def :: RenderSettings # |
rsPretty :: RenderSettings -> Bool #
rsNamespaces :: RenderSettings -> [(Text, Text)] #
Defines some top level namespace definitions to be used, in the form of (prefix, namespace). This has absolutely no impact on the meaning of your documents, but can increase readability by moving commonly used namespace declarations to the top level.
rsAttrOrder :: RenderSettings -> Name -> Map Name Text -> [(Name, Text)] #
Specify how to turn the unordered attributes used by the Text.XML module into an ordered list.
rsUseCDATA :: RenderSettings -> Content -> Bool #
Determines if for a given text content the renderer should use a CDATA node.
Default: False
Since: 1.3.3
rsXMLDeclaration :: RenderSettings -> Bool #
Determines whether the XML declaration will be output.
Default: True
Since: 1.5.1
orderAttrs :: [(Name, [Name])] -> Name -> Map Name Text -> [(Name, Text)] #
Convenience function to create an ordering function suitable for
use as the value of rsAttrOrder
. The ordering function is created
from an explicit ordering of the attributes, specified as a list of
tuples, as follows: In each tuple, the first component is the
Name
of an element, and the second component is a list of
attributes names. When the given element is rendered, the
attributes listed, when present, appear first in the given order,
followed by any other attributes in arbitrary order. If an element
does not appear, all of its attributes are rendered in arbitrary
order.
Conversion
toXMLDocument :: Document -> Document #
fromXMLDocument :: Document -> Either (Set Text) Document #
fromXMLNode :: Node -> Either (Set Text) Node #
toXMLElement :: Element -> Element #
fromXMLElement :: Element -> Either (Set Text) Element #