Module Xml
module Xml : sig..end
Basic functions for construction and manipulation of XML tree.
type 'a wrap = 'a
type 'a list_wrap = 'a list
module W : Xml_wrap.NoWrap
type uri = string
val string_of_uri : uri -> string
val uri_of_string : string -> uri
type aname = string
type separator = | Space | Comma
type event_handler = string
type mouse_event_handler = string
type keyboard_event_handler = string
type attrib
val aname : attrib -> aname
type acontent = private | AFloat of float | AInt of int | AStr of string | AStrL of separator * string list
val acontent : attrib -> acontent
val float_attrib : aname -> float -> attrib
val int_attrib : aname -> int -> attrib
val string_attrib : aname -> string -> attrib
val space_sep_attrib : aname -> string list -> attrib
val comma_sep_attrib : aname -> string list -> attrib
val event_handler_attrib : aname -> event_handler -> attrib
val mouse_event_handler_attrib : aname -> event_handler -> attrib
val keyboard_event_handler_attrib : aname -> event_handler -> attrib
val uri_attrib : aname -> uri -> attrib
val uris_attrib : aname -> uri list -> attrib
type ename = string
type elt
type econtent = private | Empty | Comment of string | EncodedPCDATA of string | PCDATA of string | Entity of string | Leaf of ename * attrib list | Node of ename * attrib list * elt list
val content : elt -> econtent
val empty : unit -> elt
val comment : string -> elt
val pcdata : string -> elt
val encodedpcdata : string -> elt
val entity : string -> elt
Neither comment, pcdata nor entity check their argument for invalid characters. Unsafe characters will be escaped later by the output routines.
val leaf : ?a:attrib list -> ename -> elt
val node : ?a:attrib list -> ename -> elt list -> elt
val cdata : string -> elt
val cdata_script : string -> elt
val cdata_style : string -> elt
Iterators ¶
val amap :
(ename -> attrib list -> attrib list) ->
elt -> elt
Recursively edit attributes for the element and all its children.
val amap1 :
(ename -> attrib list -> attrib list) ->
elt -> elt
Edit attributes only for one element.
The following can safely be exported by higher level libraries, because removing an attribute from a element is always legal.
val rm_attrib : (aname -> bool) -> attrib list -> attrib list
val rm_attrib_from_list :
(aname -> bool) ->
(string -> bool) -> attrib list -> attrib list
val map_int_attrib :
(aname -> bool) ->
(int -> int) -> attrib list -> attrib list
val map_string_attrib :
(aname -> bool) ->
(string -> string) -> attrib list -> attrib list
val map_string_attrib_in_list :
(aname -> bool) ->
(string -> string) -> attrib list -> attrib list
Exporting the following by higher level libraries would drive a hole through a type system, because they allow to add any attribute to any element.
val add_int_attrib : aname -> int -> attrib list -> attrib list
val add_string_attrib : aname -> string -> attrib list -> attrib list
val add_comma_sep_attrib : aname -> string -> attrib list -> attrib list
val add_space_sep_attrib : aname -> string -> attrib list -> attrib list
val fold :
(unit -> 'a) ->
(string -> 'a) ->
(string -> 'a) ->
(string -> 'a) ->
(string -> 'a) ->
(ename -> attrib list -> 'a) ->
(ename -> attrib list -> 'a list -> 'a) -> elt -> 'a
val all_entities : elt -> string list
val translate :
(ename -> attrib list -> elt) ->
(ename -> attrib list -> elt list -> elt) ->
('state -> ename -> attrib list -> elt list) ->
('state ->
ename -> attrib list -> elt list -> elt list) ->
(ename -> attrib list -> 'state -> 'state) ->
'state -> elt -> elt
Printer ¶
val print_list :
output:(string -> unit) ->
?encode:(string -> string) -> elt list -> unit
val print : Format.formatter -> elt -> unit