---
name: "Eliom_content.server"
section: "3o"
platform: "linux"
package: "libeliom-ocaml-doc"
version: "4.0.0-2"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/Eliom_content.server"
---

# Eliom\_content.server(3o)

This module allows creating valid HTML content, or other XML formats.

## NAME

Eliom\_content - This module allows creating valid HTML content, or other XML formats.

## Module

Module   Eliom\_content

## Documentation

Module **Eliom\_content**\
  :  **sig end**

This module allows creating valid HTML content, or other XML formats.

**=== XML tree manipulation within Eliom is based on the TyXML library** **but Eliom is using a custom representation for XML values (see** **Eliom\_content.Xml). Then, Eliom\_content redefines the two high level** **interfaces (Eliom\_content.Svg, Eliom\_content.Html5) that are provided by** **TyXML for valid XML tree creation and printing.** **- If you want to generate typed HTML, use Eliom\_content.Html5,** **- If you want to write untyped html, use Eliom\_content.Html\_text,** **- If you want to generate typed svg, use Eliom\_content.Svg.** **Modules Eliom\_content.Html5, Eliom\_content.Svg contain two** **sub-modules: Eliom\_content.Html5.F, Eliom\_content.Html5.D** **corresponding to tow different semantics.** **They also contain a module Eliom\_content.Html5.C that allows to** **inject client-side content into server-side content.** **Functional semantics** **The F modules provides functions to create elements with functional** **semantics: they are standard OCaml values.** **Use this module:** **- if your application does not have a client-side part** **(server-side generated Web site)** **- or if the client-side is not written with Eliom,** **- or if you do not need to use this node from the client-side program** **(no injection %n on this node)** **and want to avoid the extra attributes added by module D.** **If you use a F-node n in an injection (%n),** **it is considered as any OCaml value, NOT precisely the copy you (possibly)** **inserted in the page. For example, To\_dom.of\_element %n will not refer** **to the element in the page, but create a new DOM node.** **DOM semantics** **The D module provides functions to create elements with DOM semantics:** **Firstly, they behave like DOM nodes, e.g. they can only be added once to the** **DOM tree even when appended several times.** **Secondly, those values have an identifier,** **which means they can be referred to** **on client side (by %variable) or used with the functions in** **{% \<\<a\_api subproject="client"\|module Eliom\_content.Html5.To\_dom\>\> %} and** **{% \<\<a\_api subproject="client"\|module Eliom\_content.Html5.Manip\>\> %}.** **In case of doubt, always use D-nodes when you are writing a** **client-server Eliom app. You can also mix F-nodes and D-nodes.** **Client-side value injection** **The C modules provides functions to inject client-side elements and attributes** **into server-side content.** **Please read** **{% \<\<a\_manual chapter="clientserver-html"\|Eliom's manual\>\> %}** **to learn how to generate HTML. ===**

*module type Forms =* **sig end**

Abstract signature for links and forms creation functions, for concrete instances see  **Eliom\_content.Html5** , or  **Eliom\_content.Html\_text** .

*module Xml :* **sig end**

Low-level XML manipulation.

*module Svg :* **sig end**

Building and pretty-printing valid SVG tree. Information about Svg api can be found at

*module Html5 :* **sig end**

Building and printing valid HTML5 tree. Information about Html5 api can be found at .

*module Html\_text :* **sig end**

Generate untyped html as text.
