-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Basic types for representing XML
--   
--   Basic types for representing XML
@package xml-types
@version 0.3.6


-- | Basic types for representing XML.
--   
--   The idea is to have a full set of appropriate types, which various XML
--   libraries can share. Instead of having equivalent-but-incompatible
--   types for every binding, parser, or client, they all share the same
--   types can can thus interoperate easily.
--   
--   This library contains complete types for most parts of an XML
--   document, including the prologue, node tree, and doctype. Some basic
--   combinators are included for common tasks, including traversing the
--   node tree and filtering children.
module Data.XML.Types
data Document
Document :: Prologue -> Element -> [Miscellaneous] -> Document
[documentPrologue] :: Document -> Prologue
[documentRoot] :: Document -> Element
[documentEpilogue] :: Document -> [Miscellaneous]
data Prologue
Prologue :: [Miscellaneous] -> Maybe Doctype -> [Miscellaneous] -> Prologue
[prologueBefore] :: Prologue -> [Miscellaneous]
[prologueDoctype] :: Prologue -> Maybe Doctype
[prologueAfter] :: Prologue -> [Miscellaneous]
data Instruction
Instruction :: Text -> Text -> Instruction
[instructionTarget] :: Instruction -> Text
[instructionData] :: Instruction -> Text
data Miscellaneous
MiscInstruction :: Instruction -> Miscellaneous
MiscComment :: Text -> Miscellaneous
data Node
NodeElement :: Element -> Node
NodeInstruction :: Instruction -> Node
NodeContent :: Content -> Node
NodeComment :: Text -> Node
data Element
Element :: Name -> [(Name, [Content])] -> [Node] -> Element
[elementName] :: Element -> Name
[elementAttributes] :: Element -> [(Name, [Content])]
[elementNodes] :: Element -> [Node]
data Content
ContentText :: Text -> Content

-- | For pass-through parsing
ContentEntity :: Text -> Content

-- | A fully qualified name.
--   
--   Prefixes are not semantically important; they are included only to
--   simplify pass-through parsing. When comparing names with <a>Eq</a> or
--   <a>Ord</a> methods, prefixes are ignored.
--   
--   The <tt>IsString</tt> instance supports Clark notation; see
--   <a>http://www.jclark.com/xml/xmlns.htm</a> and
--   <a>http://infohost.nmt.edu/tcc/help/pubs/pylxml/etree-QName.html</a>.
--   Use the <tt>OverloadedStrings</tt> language extension for very simple
--   <tt>Name</tt> construction:
--   
--   <pre>
--   myname :: Name
--   myname = "{http://example.com/ns/my-namespace}my-name"
--   </pre>
data Name
Name :: Text -> Maybe Text -> Maybe Text -> Name
[nameLocalName] :: Name -> Text
[nameNamespace] :: Name -> Maybe Text
[namePrefix] :: Name -> 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.
data Doctype
Doctype :: Text -> Maybe ExternalID -> Doctype
[doctypeName] :: Doctype -> Text
[doctypeID] :: Doctype -> Maybe ExternalID
data ExternalID
SystemID :: Text -> ExternalID
PublicID :: Text -> Text -> ExternalID

-- | Some XML processing tools are incremental, and work in terms of events
--   rather than node trees. The <a>Event</a> type allows a document to be
--   fully specified as a sequence of events.
--   
--   Event-based XML libraries include:
--   
--   <ul>
--   <li><a>http://hackage.haskell.org/package/xml-enumerator</a></li>
--   <li><a>http://hackage.haskell.org/package/libxml-enumerator</a></li>
--   <li><a>http://hackage.haskell.org/package/expat-enumerator</a></li>
--   </ul>
data Event
EventBeginDocument :: Event
EventEndDocument :: Event
EventBeginDoctype :: Text -> (Maybe ExternalID) -> Event
EventEndDoctype :: Event
EventInstruction :: Instruction -> Event
EventBeginElement :: Name -> [(Name, [Content])] -> Event
EventEndElement :: Name -> Event
EventContent :: Content -> Event
EventComment :: Text -> Event
EventCDATA :: Text -> Event
isElement :: Node -> [Element]
isInstruction :: Node -> [Instruction]
isContent :: Node -> [Content]
isComment :: Node -> [Text]
isNamed :: Name -> Element -> [Element]
elementChildren :: Element -> [Element]
elementContent :: Element -> [Content]
elementText :: Element -> [Text]
nodeChildren :: Node -> [Node]
nodeContent :: Node -> [Content]
nodeText :: Node -> [Text]
hasAttribute :: Name -> Element -> [Element]
hasAttributeText :: Name -> (Text -> Bool) -> Element -> [Element]
attributeContent :: Name -> Element -> Maybe [Content]
attributeText :: Name -> Element -> Maybe Text
instance GHC.Generics.Selector Data.XML.Types.S1_0_2Document
instance GHC.Generics.Selector Data.XML.Types.S1_0_1Document
instance GHC.Generics.Selector Data.XML.Types.S1_0_0Document
instance GHC.Generics.Constructor Data.XML.Types.C1_0Document
instance GHC.Generics.Datatype Data.XML.Types.D1Document
instance GHC.Generics.Selector Data.XML.Types.S1_0_2Prologue
instance GHC.Generics.Selector Data.XML.Types.S1_0_1Prologue
instance GHC.Generics.Selector Data.XML.Types.S1_0_0Prologue
instance GHC.Generics.Constructor Data.XML.Types.C1_0Prologue
instance GHC.Generics.Datatype Data.XML.Types.D1Prologue
instance GHC.Generics.Selector Data.XML.Types.S1_0_1Instruction
instance GHC.Generics.Selector Data.XML.Types.S1_0_0Instruction
instance GHC.Generics.Constructor Data.XML.Types.C1_0Instruction
instance GHC.Generics.Datatype Data.XML.Types.D1Instruction
instance GHC.Generics.Constructor Data.XML.Types.C1_1Miscellaneous
instance GHC.Generics.Constructor Data.XML.Types.C1_0Miscellaneous
instance GHC.Generics.Datatype Data.XML.Types.D1Miscellaneous
instance GHC.Generics.Constructor Data.XML.Types.C1_3Node
instance GHC.Generics.Constructor Data.XML.Types.C1_2Node
instance GHC.Generics.Constructor Data.XML.Types.C1_1Node
instance GHC.Generics.Constructor Data.XML.Types.C1_0Node
instance GHC.Generics.Datatype Data.XML.Types.D1Node
instance GHC.Generics.Selector Data.XML.Types.S1_0_2Element
instance GHC.Generics.Selector Data.XML.Types.S1_0_1Element
instance GHC.Generics.Selector Data.XML.Types.S1_0_0Element
instance GHC.Generics.Constructor Data.XML.Types.C1_0Element
instance GHC.Generics.Datatype Data.XML.Types.D1Element
instance GHC.Generics.Constructor Data.XML.Types.C1_1Content
instance GHC.Generics.Constructor Data.XML.Types.C1_0Content
instance GHC.Generics.Datatype Data.XML.Types.D1Content
instance GHC.Generics.Selector Data.XML.Types.S1_0_2Name
instance GHC.Generics.Selector Data.XML.Types.S1_0_1Name
instance GHC.Generics.Selector Data.XML.Types.S1_0_0Name
instance GHC.Generics.Constructor Data.XML.Types.C1_0Name
instance GHC.Generics.Datatype Data.XML.Types.D1Name
instance GHC.Generics.Selector Data.XML.Types.S1_0_1Doctype
instance GHC.Generics.Selector Data.XML.Types.S1_0_0Doctype
instance GHC.Generics.Constructor Data.XML.Types.C1_0Doctype
instance GHC.Generics.Datatype Data.XML.Types.D1Doctype
instance GHC.Generics.Constructor Data.XML.Types.C1_1ExternalID
instance GHC.Generics.Constructor Data.XML.Types.C1_0ExternalID
instance GHC.Generics.Datatype Data.XML.Types.D1ExternalID
instance GHC.Generics.Constructor Data.XML.Types.C1_9Event
instance GHC.Generics.Constructor Data.XML.Types.C1_8Event
instance GHC.Generics.Constructor Data.XML.Types.C1_7Event
instance GHC.Generics.Constructor Data.XML.Types.C1_6Event
instance GHC.Generics.Constructor Data.XML.Types.C1_5Event
instance GHC.Generics.Constructor Data.XML.Types.C1_4Event
instance GHC.Generics.Constructor Data.XML.Types.C1_3Event
instance GHC.Generics.Constructor Data.XML.Types.C1_2Event
instance GHC.Generics.Constructor Data.XML.Types.C1_1Event
instance GHC.Generics.Constructor Data.XML.Types.C1_0Event
instance GHC.Generics.Datatype Data.XML.Types.D1Event
instance GHC.Show.Show Data.XML.Types.Event
instance GHC.Classes.Ord Data.XML.Types.Event
instance GHC.Classes.Eq Data.XML.Types.Event
instance Data.Data.Data Data.XML.Types.Event
instance GHC.Show.Show Data.XML.Types.Document
instance GHC.Classes.Ord Data.XML.Types.Document
instance GHC.Classes.Eq Data.XML.Types.Document
instance Data.Data.Data Data.XML.Types.Document
instance GHC.Show.Show Data.XML.Types.Prologue
instance GHC.Classes.Ord Data.XML.Types.Prologue
instance GHC.Classes.Eq Data.XML.Types.Prologue
instance Data.Data.Data Data.XML.Types.Prologue
instance GHC.Show.Show Data.XML.Types.Doctype
instance GHC.Classes.Ord Data.XML.Types.Doctype
instance GHC.Classes.Eq Data.XML.Types.Doctype
instance Data.Data.Data Data.XML.Types.Doctype
instance GHC.Show.Show Data.XML.Types.ExternalID
instance GHC.Classes.Ord Data.XML.Types.ExternalID
instance GHC.Classes.Eq Data.XML.Types.ExternalID
instance Data.Data.Data Data.XML.Types.ExternalID
instance GHC.Show.Show Data.XML.Types.Node
instance GHC.Classes.Ord Data.XML.Types.Node
instance GHC.Classes.Eq Data.XML.Types.Node
instance Data.Data.Data Data.XML.Types.Node
instance GHC.Show.Show Data.XML.Types.Element
instance GHC.Classes.Ord Data.XML.Types.Element
instance GHC.Classes.Eq Data.XML.Types.Element
instance Data.Data.Data Data.XML.Types.Element
instance GHC.Show.Show Data.XML.Types.Name
instance Data.Data.Data Data.XML.Types.Name
instance GHC.Show.Show Data.XML.Types.Content
instance GHC.Classes.Ord Data.XML.Types.Content
instance GHC.Classes.Eq Data.XML.Types.Content
instance Data.Data.Data Data.XML.Types.Content
instance GHC.Show.Show Data.XML.Types.Miscellaneous
instance GHC.Classes.Ord Data.XML.Types.Miscellaneous
instance GHC.Classes.Eq Data.XML.Types.Miscellaneous
instance Data.Data.Data Data.XML.Types.Miscellaneous
instance GHC.Show.Show Data.XML.Types.Instruction
instance GHC.Classes.Ord Data.XML.Types.Instruction
instance GHC.Classes.Eq Data.XML.Types.Instruction
instance Data.Data.Data Data.XML.Types.Instruction
instance GHC.Generics.Generic Data.XML.Types.Document
instance GHC.Generics.Generic Data.XML.Types.Prologue
instance GHC.Generics.Generic Data.XML.Types.Instruction
instance GHC.Generics.Generic Data.XML.Types.Miscellaneous
instance GHC.Generics.Generic Data.XML.Types.Node
instance GHC.Generics.Generic Data.XML.Types.Element
instance GHC.Generics.Generic Data.XML.Types.Content
instance GHC.Generics.Generic Data.XML.Types.Name
instance GHC.Generics.Generic Data.XML.Types.Doctype
instance GHC.Generics.Generic Data.XML.Types.ExternalID
instance GHC.Generics.Generic Data.XML.Types.Event
instance Control.DeepSeq.NFData Data.XML.Types.Document
instance Control.DeepSeq.NFData Data.XML.Types.Prologue
instance Control.DeepSeq.NFData Data.XML.Types.Instruction
instance Control.DeepSeq.NFData Data.XML.Types.Miscellaneous
instance Control.DeepSeq.NFData Data.XML.Types.Node
instance Control.DeepSeq.NFData Data.XML.Types.Element
instance Control.DeepSeq.NFData Data.XML.Types.Content
instance GHC.Classes.Eq Data.XML.Types.Name
instance GHC.Classes.Ord Data.XML.Types.Name
instance Data.String.IsString Data.XML.Types.Name
instance Control.DeepSeq.NFData Data.XML.Types.Name
instance Control.DeepSeq.NFData Data.XML.Types.Doctype
instance Control.DeepSeq.NFData Data.XML.Types.ExternalID
instance Control.DeepSeq.NFData Data.XML.Types.Event
