Module Csvfields.Xml

Automatic conversion of OCaml field types into XML. This is used for excel communication functions

type xml

Abstract representation of the xml type

module type Xmlable : sig ... end

The functions provided by the with xml camlp4 extension, and that need to be provided in a hand made conversion to be used by the extension.

val to_string : xml ‑> string

Basic conversions

val to_string_fmt : xml ‑> string
val to_human_string : xml ‑> string
module Parser_state : sig ... end
val stateful_of_string : Parser_state.t ‑> string ‑> xml

Thread safe provided each thread uses a different Parser_state.t

val of_file : string ‑> xml
val tag : xml ‑> string option

Basic traversal

val attributes : xml ‑> (string * string) list
val children : xml ‑> xml list
val contents : xml ‑> string option
val child : xml ‑> string ‑> xml option
val kind : xml ‑> [ `Leaf | `Internal ]
val xml_data : string ‑> xml
exception Illegal_atom of xml

Exceptions that could be raised by to_xml and of_xml

exception Unexpected_xml of xml * string
val check_extra_fields : xml ‑> string list ‑> unit

XSD definition functions

val complex_type : xml list ‑> xml

An xsd complexType.

val decomplexify : xml list ‑> xml
val decomplexify_opt : xml list ‑> xml option
val decomplexify_list : xml list ‑> xml list option
val type_of_simple : xml list ‑> string
val wrap : xml ‑> xml

Standard wrapping to generate the necessary namespaces that are used in the automated conversions

module Restriction : sig ... end

Restriction generation

val xsd_element : ?⁠attr:(string * string) list ‑> name:string ‑> xml list ‑> xml
val xml_element : ?⁠attr:(string * string) list ‑> name:string ‑> xml list ‑> xml
module type Atom : sig ... end
module Make : functor (Atom : Atom) -> Xmlable with type t := Atom.t
val to_xml : to_string:('a ‑> string) ‑> 'a ‑> xml list

Helper functions to create the conversion functions by hand

val of_xml : of_string:(string ‑> 'a) ‑> xml ‑> 'a
val create_node : tag:string ‑> body:xml list ‑> xml

Creating an internal element in the xml tree

val create_data : string ‑> xml

Creating a leaf in the xml tree

type 'a of_xml = xml ‑> 'a

Conversion functions used by the camlp4 extension. Not to be used by hand

val unit_of_xml : unit of_xml
val bool_of_xml : bool of_xml
val string_of_xml : string of_xml
val char_of_xml : char of_xml
val int_of_xml : int of_xml
val float_of_xml : float of_xml
val int32_of_xml : Core.Int32.t of_xml
val int64_of_xml : Core.Int64.t of_xml
val nativeint_of_xml : Core.Nativeint.t of_xml
val big_int_of_xml : Big_int.big_int of_xml
val nat_of_xml : Nat.nat of_xml
val num_of_xml : Num.num of_xml
val ratio_of_xml : Ratio.ratio of_xml
val list_of_xml : ?⁠tag:string ‑> (xml ‑> 'a) ‑> 'a list of_xml
val array_of_xml : tag:string ‑> (xml ‑> 'a) ‑> 'a array of_xml
val option_of_xml : tag:string ‑> (xml ‑> 'a) ‑> 'a option of_xml
val ref_of_xml : (xml ‑> 'a) ‑> 'a Core.ref of_xml
val lazy_t_of_xml : (xml ‑> 'a) ‑> 'a Core.Lazy.t of_xml
val recursive_of_xml : string ‑> (xml ‑> 'a) ‑> 'a of_xml
type 'a to_xml = 'a ‑> xml list
val xml_of_unit : unit to_xml
val xml_of_bool : bool to_xml
val xml_of_string : string to_xml
val xml_of_char : char to_xml
val xml_of_int : int to_xml
val xml_of_float : float to_xml
val xml_of_int32 : Core.Int32.t to_xml
val xml_of_int64 : Core.Int64.t to_xml
val xml_of_nativeint : Core.Nativeint.t to_xml
val xml_of_big_int : Big_int.big_int to_xml
val xml_of_nat : Nat.nat to_xml
val xml_of_num : Num.num to_xml
val xml_of_ratio : Ratio.ratio to_xml
val xml_of_ref : ('a ‑> xml list) ‑> 'a Core.ref to_xml
val xml_of_lazy_t : ('a ‑> xml list) ‑> 'a Core.Lazy.t to_xml
val xml_of_list : tag:string ‑> ('a ‑> xml list) ‑> 'a list to_xml
val xml_of_array : tag:string ‑> ('a ‑> xml list) ‑> 'a array to_xml
val xml_of_option : tag:string ‑> ('a ‑> xml list) ‑> 'a option to_xml
type to_xsd = xml list
val xsd_of_unit : to_xsd
val xsd_of_bool : to_xsd
val xsd_of_string : to_xsd
val xsd_of_char : to_xsd
val xsd_of_int : to_xsd
val xsd_of_float : to_xsd
val xsd_of_int32 : to_xsd
val xsd_of_int64 : to_xsd
val xsd_of_nativeint : to_xsd
val xsd_of_big_int : to_xsd
val xsd_of_list : string ‑> to_xsd ‑> to_xsd
val xsd_of_array : string ‑> to_xsd ‑> to_xsd
val xsd_of_nat : to_xsd
val xsd_of_num : to_xsd
val xsd_of_ratio : to_xsd
val xsd_of_ref : to_xsd ‑> to_xsd
val xsd_of_lazy_t : to_xsd ‑> to_xsd
val xsd_of_option : string ‑> to_xsd ‑> to_xsd

Converstion functions used for excaml... macs should be upgraded to use this val list_xml : ('a -> xml list) -> 'a list to_xml

module type X : sig ... end
module Write : functor (X : X) -> sig ... end