`sig
module StringMap :
sig
type key = string
type +'a t
val empty : 'a t
val is_empty : 'a t -> bool
val mem : key -> 'a t -> bool
val add : key -> 'a -> 'a t -> 'a t
val singleton : key -> 'a -> 'a t
val remove : key -> 'a t -> 'a t
val merge :
(key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
val iter : (key -> 'a -> unit) -> 'a t -> unit
val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
val for_all : (key -> 'a -> bool) -> 'a t -> bool
val exists : (key -> 'a -> bool) -> 'a t -> bool
val filter : (key -> 'a -> bool) -> 'a t -> 'a t
val partition : (key -> 'a -> bool) -> 'a t -> 'a t * 'a t
val cardinal : 'a t -> int
val bindings : 'a t -> (key * 'a) list
val min_binding : 'a t -> key * 'a
val max_binding : 'a t -> key * 'a
val choose : 'a t -> key * 'a
val split : key -> 'a t -> 'a t * 'a option * 'a t
val find : key -> 'a t -> 'a
val map : ('a -> 'b) -> 'a t -> 'b t
val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
end
type ext_id =
Pxp_core_types.A.ext_id =
System of string
| Public of (string * string)
| Anonymous
| Private of private_id
and private_id = Pxp_core_types.A.private_id
val allocate_private_id : unit -> private_id
type resolver_id =
Pxp_core_types.A.resolver_id = {
rid_private : private_id option;
rid_public : string option;
rid_system : string option;
rid_system_base : string option;
}
val resolver_id_of_ext_id : ext_id -> resolver_id
type dtd_id =
Pxp_core_types.A.dtd_id =
External of ext_id
| Derived of ext_id
| Internal
type content_model_type =
Pxp_core_types.A.content_model_type =
Unspecified
| Empty
| Any
| Mixed of mixed_spec list
| Regexp of regexp_spec
and mixed_spec = Pxp_core_types.A.mixed_spec = MPCDATA | MChild of string
and regexp_spec =
Pxp_core_types.A.regexp_spec =
Optional of regexp_spec
| Repeated of regexp_spec
| Repeated1 of regexp_spec
| Alt of regexp_spec list
| Seq of regexp_spec list
| Child of string
type att_type =
Pxp_core_types.A.att_type =
A_cdata
| A_id
| A_idref
| A_idrefs
| A_entity
| A_entities
| A_nmtoken
| A_nmtokens
| A_notation of string list
| A_enum of string list
type att_default =
Pxp_core_types.A.att_default =
D_required
| D_implied
| D_default of string
| D_fixed of string
type att_value =
Pxp_core_types.A.att_value =
Value of string
| Valuelist of string list
| Implied_value
class type collect_warnings = object method warn : string -> unit end
class drop_warnings : collect_warnings
type warning =
[ `W_XML_version_not_supported of string
| `W_code_point_cannot_be_represented of int
| `W_element_mentioned_but_not_declared of string
| `W_entity_declared_twice of string
| `W_multiple_ATTLIST_declarations of string
| `W_multiple_attribute_declarations of string * string
| `W_name_is_reserved_for_extensions of string ]
class type symbolic_warnings = object method warn : warning -> unit end
val string_of_warning : warning -> string
val warn : symbolic_warnings option -> collect_warnings -> warning -> unit
type encoding = Netconversion.encoding
type rep_encoding =
[ `Enc_cp1006
| `Enc_cp437
| `Enc_cp737
| `Enc_cp775
| `Enc_cp850
| `Enc_cp852
| `Enc_cp855
| `Enc_cp856
| `Enc_cp857
| `Enc_cp860
| `Enc_cp861
| `Enc_cp862
| `Enc_cp863
| `Enc_cp864
| `Enc_cp865
| `Enc_cp866
| `Enc_cp869
| `Enc_cp874
| `Enc_iso88591
| `Enc_iso885910
| `Enc_iso885913
| `Enc_iso885914
| `Enc_iso885915
| `Enc_iso885916
| `Enc_iso88592
| `Enc_iso88593
| `Enc_iso88594
| `Enc_iso88595
| `Enc_iso88596
| `Enc_iso88597
| `Enc_iso88598
| `Enc_iso88599
| `Enc_koi8r
| `Enc_macroman
| `Enc_usascii
| `Enc_utf8
| `Enc_windows1250
| `Enc_windows1251
| `Enc_windows1252
| `Enc_windows1253
| `Enc_windows1254
| `Enc_windows1255
| `Enc_windows1256
| `Enc_windows1257
| `Enc_windows1258 ]
exception Validation_error of string
exception WF_error of string
exception Namespace_error of string
exception Error of string
exception Character_not_supported
exception At of (string * exn)
exception Undeclared
exception Method_not_applicable of string
exception Namespace_method_not_applicable of string
exception Not_competent
exception Not_resolvable of exn
exception Namespace_not_managed of string
exception Namespace_prefix_not_managed of string
exception Namespace_not_in_scope of string
val string_of_exn : exn -> string
type output_stream =
[ `Out_buffer of Buffer.t
| `Out_channel of out_channel
| `Out_function of string -> int -> int -> unit
| `Out_netchannel of Netchannels.out_obj_channel ]
val write : output_stream -> string -> int -> int -> unit
type pool = Pxp_core_types.A.pool
val make_probabilistic_pool : ?fraction:float -> int -> pool
val pool_string : pool -> string -> string
type config = {
warner : collect_warnings;
swarner : symbolic_warnings option;
enable_pinstr_nodes : bool;
enable_comment_nodes : bool;
enable_super_root_node : bool;
drop_ignorable_whitespace : bool;
encoding : rep_encoding;
recognize_standalone_declaration : bool;
store_element_positions : bool;
idref_pass : bool;
validate_by_dfa : bool;
accept_only_deterministic_models : bool;
disable_content_validation : bool;
name_pool : Pxp_core_types.I.pool;
enable_name_pool_for_element_types : bool;
enable_name_pool_for_attribute_names : bool;
enable_name_pool_for_attribute_values : bool;
enable_name_pool_for_pinstr_targets : bool;
enable_namespace_processing : Pxp_dtd.namespace_manager option;
escape_contents :
(Pxp_lexer_types.token -> Pxp_entity_manager.entity_manager -> string)
option;
escape_attributes :
(Pxp_lexer_types.token ->
int -> Pxp_entity_manager.entity_manager -> string)
option;
debugging_mode : bool;
}
val default_config : Pxp_types.config
val default_namespace_config : Pxp_types.config
type source =
Pxp_dtd.source =
Entity of ((Pxp_dtd.dtd -> Pxp_entity.entity) * Pxp_reader.resolver)
| ExtID of (Pxp_core_types.I.ext_id * Pxp_reader.resolver)
| XExtID of
(Pxp_core_types.I.ext_id * string option * Pxp_reader.resolver)
val from_channel :
?alt:Pxp_reader.resolver list ->
?system_id:string ->
?fixenc:encoding ->
?id:ext_id ->
?system_encoding:encoding -> Pervasives.in_channel -> Pxp_types.source
val from_obj_channel :
?alt:Pxp_reader.resolver list ->
?system_id:string ->
?fixenc:encoding ->
?id:ext_id ->
?system_encoding:encoding ->
Netchannels.in_obj_channel -> Pxp_types.source
val from_string :
?alt:Pxp_reader.resolver list ->
?system_id:string -> ?fixenc:encoding -> string -> Pxp_types.source
val from_file :
?alt:Pxp_reader.resolver list ->
?system_encoding:encoding -> ?enc:encoding -> string -> Pxp_types.source
val open_source :
Pxp_types.config ->
Pxp_types.source ->
bool -> Pxp_dtd.dtd -> Pxp_reader.resolver * Pxp_entity.entity
type entity_id = Pxp_lexer_types.entity_id
type entity = Pxp_entity.entity
type entry =
[ `Entry_content of [ `Dummy ] list
| `Entry_declarations of [ `Extend_dtd_fully | `Val_mode_dtd ] list
| `Entry_document of
[ `Extend_dtd_fully | `Parse_xml_decl | `Val_mode_dtd ] list
| `Entry_element_content of [ `Dummy ] list
| `Entry_expr of [ `Dummy ] list ]
type event =
E_start_doc of (string * Pxp_dtd.dtd)
| E_end_doc of string
| E_start_tag of
(string * (string * string) list * Pxp_dtd.namespace_scope option *
Pxp_lexer_types.entity_id)
| E_end_tag of (string * Pxp_lexer_types.entity_id)
| E_char_data of string
| E_pinstr of (string * string * Pxp_lexer_types.entity_id)
| E_comment of string
| E_start_super
| E_end_super
| E_position of (string * int * int)
| E_error of exn
| E_end_of_stream
end`