# Module XmlRpcServer

    module XmlRpcServer: sig .. end

XmlRpc Light server.

Example:

        let server = new XmlRpcServer.cgi () in
        server#register "demo.sayHello"
          (fun _ -> `String "Hello!");
        server#run ()

By inheriting from `XmlRpcServer.base`, all servers provide the following introspection functions by default: `system.listMethods`, `system.getCapabilities`. To prevent their use, use `server#unregister`.

Additionally, the methods `system.methodHelp` and `system.methodSignature` will be made available if at least one method help or method signature is provided.

    type param_type = [ `Array
           | `Binary
           | `Boolean
           | `DateTime
           | `Double
           | `Int
           | `String
           | `Struct
           | `Undefined ]

Type of parameters used in method signatures.

### Base classes

    class virtual base : object .. end

Abstract base class for XmlRpc servers.

    class type server = object .. end

Type of concrete XmlRpc server classes.

### Server implementations

    class cgi : unit -> server

CGI XmlRpc server based on Netcgi2.

    class netplex : ?parallelizer:Netplex_types.parallelizer -> ?handler:string -> unit -> server

Stand-alone XmlRpc server based on Netplex.

### Utility functions

    val invalid_method : string -> 'a

Raise an `XmlRpc.Error` indicating a method name not found.

    val invalid_params : unit -> 'a

Raise an `XmlRpc.Error` indicating invalid method parameters.