# Module Pxp_dtd

    module Pxp_dtd: sig .. end

DTD objects

The DTD object is a separate container for the formal requirements of a document. The DTD object is always present in a document, even when validation is turned off. See `Pxp_dtd.dtd` for details about the DTD object.

There are a number of accompanying objects also defined in this module (e.g. `namespace_manager` or `dtd_element`).

    class namespace_manager : object .. end

This class manages mappings from URIs to normalized prefixes.

    val create_namespace_manager : unit -> namespace_manager

Preferred way of creating a `namespace_manager`

    class type namespace_scope = object .. end

The recursive class type `namespace_scope` represents the original namespace declarations found in the XML text.

    class namespace_scope_impl : namespace_manager -> namespace_scope option -> (string * string) list -> namespace_scope

An implementation of `namespace_scope`.

    val create_namespace_scope : ?parent:namespace_scope ->
           ?decl:(string * string) list ->
           namespace_manager -> namespace_scope

Preferred way of creating a `namespace_scope`

    class dtd : ?swarner:Pxp_types.symbolic_warnings -> Pxp_types.collect_warnings -> Pxp_types.rep_encoding -> object .. end

DTD objects have two purposes: They are containers for global declarations that apply to the whole XML document. This includes the character set, the standalone declaration, and all declaration that can appear in the "DTD part" of a document., Also, they express formal constraints the document must fulfill such as validity, or (less ambitious) well-formedness. Normally, programmers neither need to create such objects, nor to fill them with data, as the parser already does this.

    class dtd_element : dtd -> string -> object .. end

A single element declaration that can be added to the DTD object.

    class dtd_notation : string -> Pxp_types.ext_id -> Pxp_types.rep_encoding -> object .. end

A single notation declaration that can be added to the DTD object.

    class proc_instruction : string -> string -> Pxp_types.rep_encoding -> object .. end

A single processing instruction occuring in DTD scope.

    val create_dtd : ?swarner:Pxp_types.symbolic_warnings ->
           ?warner:Pxp_types.collect_warnings ->
           Pxp_types.rep_encoding -> dtd

Preferred way of creating a DTD. Example: `let dtd = create_dtd
?swarner:config.swarner
~warner:config.warner
config.encoding`

See also `Pxp_dtd_parser.create_empty_dtd`, which creates a DTD from a `Pxp_types.config` record.

    module Entity: sig .. end

Useful properties of entities: The following submodule exports all stable properties of the entity classes.