dtd-types-0.4.0.0: Basic types for representing XML DTDs

CopyrightSuite Solutions Ltd. Israel 2011
MaintainerYitzchak Gale <gale@sefer.org>
Portabilityportable
Safe HaskellSafe
LanguageHaskell98

Data.XML.DTD.Types

Contents

Description

This module provides types to represent an XML Document Type Declaration (DTD) as defined in W3C specifications (http://www.w3.org/XML/Core/#Publications). It is intended to be compatible with and extend the set of types in Data.XML.Types provided by the xml-types package.

Following the philosophy of Data.XML.Types, the types in this module are not intended to be a strict and complete representation of the model in the W3C specifications; rather, they are intended to be convenient and type-safe for the kinds of processing of DTDs that are commonly done in practice. As such, this model is compatible with both Version 1.0 and Version 1.1 of the XML specification.

Therefore, these types are not suitable for type-level validation of the syntax of a DTD. For example: these types are more lenient than the specs about the characters that are allowed in various locations in a DTD; entities of various kinds only appear as distinct syntactic elements in places where they are commonly needed when processing DTDs; etc.

Conditional sections are not represented in these types. They should be handled directly by parsers and renderers, if needed.

Synopsis

DTD structure

data DTD Source #

A DTD is a sequence components in any order.

Instances
Eq DTD Source # 
Instance details

Defined in Data.XML.DTD.Types

Methods

(==) :: DTD -> DTD -> Bool #

(/=) :: DTD -> DTD -> Bool #

Show DTD Source # 
Instance details

Defined in Data.XML.DTD.Types

Methods

showsPrec :: Int -> DTD -> ShowS #

show :: DTD -> String #

showList :: [DTD] -> ShowS #

data DTDTextDecl Source #

The ?xml text declaration at the beginning of a DTD.

Constructors

DTDTextDecl 
Instances
Eq DTDTextDecl Source # 
Instance details

Defined in Data.XML.DTD.Types

Show DTDTextDecl Source # 
Instance details

Defined in Data.XML.DTD.Types

data DTDComponent Source #

The kinds of components that can appear in a DTD.

Constructors

DTDEntityDecl EntityDecl

Entity declaration

DTDElementDecl ElementDecl

Element declaration

DTDAttList AttList

List of attribute declarions for an element

DTDNotation Notation

A notation declaration

DTDPERef PERef

A parameter entity reference in the top-level flow of the DTD

DTDInstruction Instruction

A processing instruction

DTDComment Text

A comment

Instances
Eq DTDComponent Source # 
Instance details

Defined in Data.XML.DTD.Types

Show DTDComponent Source # 
Instance details

Defined in Data.XML.DTD.Types

Entity declarations and references

data EntityDecl Source #

A declaration of an entity. An entity is a textual substitution variable. General entities can be referenced in an XML document conforming to the DTD, and parameter entities can be referenced in the DTD itself. The value of an unparsed entity is not specified in the DTD; it is specified by external syntax declared as a notation elsewhere in the DTD.

Instances
Eq EntityDecl Source # 
Instance details

Defined in Data.XML.DTD.Types

Show EntityDecl Source # 
Instance details

Defined in Data.XML.DTD.Types

data EntityValue Source #

The value of an internal entity may contain references to parameter entities; these references need to be resolved to obtain the actual replacement value of the entity. So we represent the value as a mixture of parameter entity references and free text.

Instances
Eq EntityValue Source # 
Instance details

Defined in Data.XML.DTD.Types

Show EntityValue Source # 
Instance details

Defined in Data.XML.DTD.Types

type PERef = Text Source #

A parameter entity reference. It contains the name of the parameter entity that is being referenced.

Element declarations

data ElementDecl Source #

A declaration of an element.

Instances
Eq ElementDecl Source # 
Instance details

Defined in Data.XML.DTD.Types

Show ElementDecl Source # 
Instance details

Defined in Data.XML.DTD.Types

data ContentDecl Source #

The content that can occur in an element.

Constructors

ContentEmpty

No content

ContentAny

Unrestricted content

ContentElement ContentModel

Structured element content

ContentMixed [Text]

A mixture of text and elements

Instances
Eq ContentDecl Source # 
Instance details

Defined in Data.XML.DTD.Types

Show ContentDecl Source # 
Instance details

Defined in Data.XML.DTD.Types

data ContentModel Source #

A model of structured content for an element.

Constructors

CMName Text Repeat

Element name

CMChoice [ContentModel] Repeat

Choice, delimited by "|"

CMSeq [ContentModel] Repeat

Sequence, delimited by ","

Instances
Eq ContentModel Source # 
Instance details

Defined in Data.XML.DTD.Types

Show ContentModel Source # 
Instance details

Defined in Data.XML.DTD.Types

data Repeat Source #

The number of times a production of content model syntax can repeat.

Instances
Eq Repeat Source # 
Instance details

Defined in Data.XML.DTD.Types

Methods

(==) :: Repeat -> Repeat -> Bool #

(/=) :: Repeat -> Repeat -> Bool #

Show Repeat Source # 
Instance details

Defined in Data.XML.DTD.Types

Attribute declarations

data AttList Source #

A list of attribute declarations for an element.

Constructors

AttList 

Fields

Instances
Eq AttList Source # 
Instance details

Defined in Data.XML.DTD.Types

Methods

(==) :: AttList -> AttList -> Bool #

(/=) :: AttList -> AttList -> Bool #

Show AttList Source # 
Instance details

Defined in Data.XML.DTD.Types

data AttDecl Source #

A declaration of an attribute that can occur in an element.

Constructors

AttDecl 

Fields

Instances
Eq AttDecl Source # 
Instance details

Defined in Data.XML.DTD.Types

Methods

(==) :: AttDecl -> AttDecl -> Bool #

(/=) :: AttDecl -> AttDecl -> Bool #

Show AttDecl Source # 
Instance details

Defined in Data.XML.DTD.Types

data AttType Source #

The type of value that an attribute can take.

Constructors

AttStringType

Any text

AttIDType

A unique ID

AttIDRefType

A reference to an ID

AttIDRefsType

One or more references to IDs

AttEntityType

An unparsed external entity

AttEntitiesType

One or more unparsed external entities

AttNmTokenType

A name-like token

AttNmTokensType

One or more name-like tokens

AttEnumType [Text]

One of the given values

AttNotationType [Text]

Specified by external syntax declared as a notation

Instances
Eq AttType Source # 
Instance details

Defined in Data.XML.DTD.Types

Methods

(==) :: AttType -> AttType -> Bool #

(/=) :: AttType -> AttType -> Bool #

Show AttType Source # 
Instance details

Defined in Data.XML.DTD.Types

data AttDefault Source #

A default value specification for an attribute.

Constructors

AttRequired

No default value; the attribute must always be supplied

AttImplied

No default value; the attribute is optional

AttFixed Text

When supplied, the attribute must have the given value

AttDefaultValue Text

The attribute has the given default value when not supplied

Instances
Eq AttDefault Source # 
Instance details

Defined in Data.XML.DTD.Types

Show AttDefault Source # 
Instance details

Defined in Data.XML.DTD.Types

Notation declarations

data Notation Source #

A declaration of a notation.

Instances
Eq Notation Source # 
Instance details

Defined in Data.XML.DTD.Types

Show Notation Source # 
Instance details

Defined in Data.XML.DTD.Types

data NotationSource Source #

A source for a notation. We do not use the usual ExternalID type here, because for notations it is only optional, not required, for a public ID to be accompanied also by a system ID.

Constructors

NotationSysID Text

A system ID

NotationPubID Text

A public ID

NotationPubSysID Text Text

A public ID with a system ID