Warning: Reason support is experimental. We are looking for beta-tester and contributors.

Module Xml_print

module Xml_print : sig..end

Printing utilities.

This module contains various encoding functions that can be used with Tyxml.Html.pp and Tyxml.Svg.pp.

It also contains functors to create printers for your own XML data structure.


Encoding functions

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_char 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. See also OcamlNet

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.

module Utf8 : sig..end

Utf8 normalizer and encoder for HTML.

Utilities

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 the Javascript norm.

val pp_number : Stdlib.Format.formatter -> float -> unit

Formatter functors

module Make_typed_fmt (Xml : Xml_sigs.Iterable) 
   (Typed_xml : Xml_sigs.Typed_xml     with module Xml := Xml) :
  
  Xml_sigs.Typed_pp
with type 'a elt := 'a Typed_xml.elt
and type doc := Typed_xml.doc

Printers for typed XML modules such as the one produced by Svg_f and Html_f.

module type TagList = sig..end

List of tags that can be printed as empty tags: <foo />.

module Make_fmt (Xml : Xml_sigs.Iterable) 
   (I : TagList) :
  Xml_sigs.Ppwith type elt := Xml.elt

Printers for raw XML modules.

Deprecated functors

Use Xml_print.Make_fmt and Xml_print.Make_typed_fmt instead.

module Make (Xml : Xml_sigs.Iterable) 
   (I : TagList)
   (O : Xml_sigs.Output) :
  Xml_sigs.Printerwith type out := O.out and type xml_elt := Xml.elt
module Make_typed (Xml : Xml_sigs.Iterable) 
   (Typed_xml : Xml_sigs.Typed_xml     with module Xml := Xml)
   (O : Xml_sigs.Output) :
  
  Xml_sigs.Typed_printerwith type out := O.out
and type 'a elt := 'a Typed_xml.elt
and type doc := Typed_xml.doc
module Make_simple (Xml : Xml_sigs.Iterable) 
   (I : TagList) :
  Xml_sigs.Simple_printerwith type xml_elt := Xml.elt
module Make_typed_simple (Xml : Xml_sigs.Iterable) 
   (Typed_xml : Xml_sigs.Typed_xml     with module Xml := Xml) :
  
  Xml_sigs.Typed_simple_printerwith type 'a elt := 'a Typed_xml.elt
and type doc := Typed_xml.doc