Up

module Xml_print

: sig

Printer for XML.

#
val encode_unsafe_char : string -> string

The encoder maps strings to HTML and must encode the unsafe characters '<', '>', '"', '&' and the control characters 0-8, 11-12, 14-31, 127 to HTML entities. encode_unsafe is the default for ?encode in output and pretty_print below. Other implementations are provided by the module Netencoding in the OcamlNet library, e.g.: let encode = Netencoding.Html.encode ~in_enc:`Enc_iso88591 ~out_enc:`Enc_usascii (), Where national characters are replaced by HTML entities. The user is of course free to write her own implementation.

#
val encode_unsafe_char_and_at : string -> string

In addition, encode "@" as "&#64;" in the hope that this will fool simple minded email address harvesters.

#
val compose_decl : ?version:string -> ?encoding:string -> unit -> string

encoding is the name of the character encoding, e.g. "US-ASCII" or "UTF-8"

#
val compose_doctype : string -> string list -> string
#
val string_of_number : float -> string

Convert a float to a string using a compact representation compatible with Javascript norme.

#
module Utf8 : sig

Utf8 normalizer and encoder for HTML.

Given a module Htmlprinter produced by one of the functors in [root:Xml_print], this modules is used as following:

    let encode x = fst (Utf8.normalize_html x) in
    Htmlprinter.print ~encode document
#
type utf8 = string

normalize str take a possibly invalid utf-8 string and return a valid utf-8 string where invalid bytes have been replaced by the replacement character U+FFFD. The returned boolean is true if invalid bytes were found

#
val normalize : string -> utf8 * bool
#
val normalize_html : string -> utf8 * bool

Same as normalize plus some extra work : It encode '<' , '>' , '"' , '&' characters with corresponding entities and replaced invalid html character by U+FFFD

end
#
module Make : functor (Xml : Xml_sigs.Iterable) -> functor (I : sig
#
val emptytags : string list
end
) -> functor (O : Xml_sigs.Output) -> Xml_sigs.Printer with type out := O.out and type xml_elt := Xml.elt
#
module Make_typed : functor (Xml : Xml_sigs.Iterable) -> functor (Typed_xml : Xml_sigs.Typed_xml with module Xml := Xml) -> functor (O : Xml_sigs.Output) -> Xml_sigs.Typed_printer with type out := O.out and type 'a elt := 'a Typed_xml.elt and type doc := Typed_xml.doc
#
module Make_simple : functor (Xml : Xml_sigs.Iterable) -> functor (F : sig
#
val emptytags : string list
end
) -> Xml_sigs.Simple_printer with type xml_elt := Xml.elt
#
module Make_typed_simple : functor (Xml : Xml_sigs.Iterable) -> functor (Typed_xml : Xml_sigs.Typed_xml with module Xml := Xml) -> Xml_sigs.Typed_simple_printer with type 'a elt := 'a Typed_xml.elt and type doc := Typed_xml.doc
end