HaXml-1.25.3: Utilities for manipulating XML documents

Safe HaskellSafe-Inferred
LanguageHaskell98

Text.XML.HaXml.Types

Contents

Description

This module defines an internal (generic) representation for XML documents including their DTDs.

History: The original module was derived by hand from the XML specification, following the grammar precisely. Then we simplified the types, removing layers of indirection and redundancy, and generally making things easier to work with. Then we allowed PEReferences to be ubiquitous, by removing them from the types and resolving all PE references at parse-time. Finally, we added a per-document symbol table for GEReferences, and a whitespace-significance flag for plaintext.

Synopsis

A simple symbol table mapping strings (references) to values.

type SymTab a = [(String, a)] Source

Symbol table operations

addST :: String -> a -> SymTab a -> SymTab a Source

XML Types

The top-level document container

data Document i Source

The symbol table stored in a document holds all its general entity reference definitions.

Constructors

Document Prolog (SymTab EntityDef) (Element i) [Misc] 

Instances

The main document content

data Element i Source

Constructors

Elem QName [Attribute] [Content i] 

Instances

data ElemTag Source

Constructors

ElemTag QName [Attribute] 

Instances

data Content i Source

Constructors

CElem (Element i) i 
CString Bool CharData i

bool is whether whitespace is significant

CRef Reference i 
CMisc Misc i 

Instances

info :: Content t -> t Source

Administrative parts of the document

data Prolog Source

Constructors

Prolog (Maybe XMLDecl) [Misc] (Maybe DocTypeDecl) [Misc] 

Instances

The DTD

content model

data CP Source

Instances

data Modifier Source

Constructors

None

Just One

Query

Zero Or One

Star

Zero Or More

Plus

One Or More

Instances

data Mixed Source

Constructors

PCDATA 
PCDATAplus [QName] 

Instances

attribute model

data FIXED Source

Constructors

FIXED 

Instances

conditional sections

data Ignore Source

Constructors

Ignore 

Instances

References

Entities

data GEDecl Source

Constructors

GEDecl Name EntityDef 

Instances

data PEDecl Source

Constructors

PEDecl Name PEDef 

Instances

newtype NDataDecl Source

Constructors

NDATA Name 

data ExtParsedEnt i Source

Constructors

ExtParsedEnt (Maybe TextDecl) (Content i) 

Instances

data ExtPE Source

Constructors

ExtPE (Maybe TextDecl) [ExtSubsetDecl] 

Instances

newtype PublicID Source

Constructors

PUBLICID PubidLiteral 

Instances

data EV Source

Instances

Namespaces

data QName Source

A QName is a (possibly) qualified name, in the sense of XML namespaces.

Constructors

N Name 
QN Namespace Name 

Instances

data Namespace Source

Namespaces are not defined in the XML spec itself, but at http:/www.w3.orgTR/xml-names

Constructors

Namespace 

Fields

nsPrefix :: String
 
nsURI :: String
 

Basic value types

type Names = [Name] Source