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

Module Ocsigen_extensions.Configuration

module Configuration : sig..end

This modules contains types and constructor for the description of XML configurations and the accordingly parsing.


type element

Specification of a XML element.

type attribute

Specification of a XML attribute.

val element : 
  name:string ->
  ?obligatory:bool ->
  ?init:(unit -> unit) ->
  ?elements:element list ->
  ?attributes:attribute list ->
  ?pcdata:(string -> unit) ->
  ?other_elements:(string ->
   (string * string) list -> Xml.xml list -> unit) ->
  ?other_attributes:(string -> string -> unit) ->
  unit -> element

Create the specification of a XML element.

name : Name of the XML tag

obligatory : Whether the element is obligatory (false by default)

init : A function to be executed before processing the child elements and attributes

elements : Specifications of the child elements

pcdata : Function to be applied on the pcdata (ignore_blank_pcdata by default)

other_elements : Optional function to be applied on the content of unspecified tags

other_attributes : Optional function to be applied on the unspecfied attributes

val attribute : 
  name:string ->
  ?obligatory:bool ->
  (string -> unit) -> attribute

attribute ~name f create a specification of a XML attribute.

name : The name of the XML attribute

obligatory : Whether the attribute is obligatory (false by default)

val process_element : 
  in_tag:string ->
  elements:element list ->
  ?pcdata:(string -> unit) ->
  ?other_elements:(string ->
   (string * string) list -> Xml.xml list -> unit) ->
  Xml.xml -> unit

Process an XML element by the specifications. Raises Error_in_config_file If an element (resp. attribute) occurs which is not specified by the element (resp. attribute) parameter and no function other_elements (resp. other_attributes) is provided

in_tag : Name of the enclosing XML tag (just for generating error messages)

elements : Specifications of the child elements

pcdata : Function to be applied on the PCDATA (ignore_blank_pcdata by default)

other_elements : Optional function to be applied on unexpected child elements

val process_elements : 
  in_tag:string ->
  elements:element list ->
  ?pcdata:(string -> unit) ->
  ?other_elements:(string ->
   (string * string) list -> Xml.xml list -> unit) ->
  ?init:(unit -> unit) -> Xml.xml list -> unit

Application of process_element on a list of XML elements.

val ignore_blank_pcdata : in_tag:string -> string -> unit

The specification for ignoring blank PCDATA ('\n', '\r', ' ', '\t') and failing otherwise (a reasonable default).

val refuse_pcdata : in_tag:string -> string -> unit