package xml-light
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=f58c2b3db70ad1ba080b0d306ae32f82ccbb95dabb92c599cdc467d1e44e003d
sha512=fec6b83f8342a37bdad0fc745032f1faa57b359365ab53c2376fb031613a83a3139766f2d646a9b9b8d67da25252f2499a03de4caaef7bd8738f9b183ef84b6e
Description
It provide functions to parse an XML document into an OCaml data structure, work with it, and print it back to an XML document. It support also DTD parsing and checking, and is entirely written in OCaml, hence it does not require additional C library.
Published: 22 Feb 2023
README
Xml-Light :
Xml Light is a minimal Xml parser & printer for OCaml. It provide few functions to parse a basic Xml document into an OCaml data structure and to print back the data structures to an Xml document.
Xml Light has also support for DTD (Document Type Definition).
Install
dune build
dune install
Usage
simple samples :
parse / print an xml string
let x = Xml.parse_string "<a href='url'>TEXT<begin/><end/></a>" in
Printf.printf "XML formated = \n%s" (Xml.to_string_fmt x);
load an xml and a dtd , prove and print
let x = Xml.parse_file "myfile.xml" in
let dtd = Dtd.parse_file "myfile.dtd" in
let x = Dtd.prove (Dtd.check dtd) "start" x in
print_endline (Xml.to_string x)
Documentation
HTML documentation can be generated with ocamldoc :
dune build @doc
You can also directly browse the MLI files to read it.
Licence
Xml Light is distributed under the terms of the GNU Library General Public License, with the special exception on linking described below. (This is the OCaml library licence.)
As a special exception to the GNU Library General Public License, you may link, statically or dynamically, a "work that uses the Library" with a publicly distributed version of the Library to produce an executable file containing portions of the Library, and distribute that executable file under terms of your choice, without any of the additional requirements listed in clause 6 of the GNU Library General Public License. By "a publicly distributed version of the Library", we mean either the unmodified Library as distributed by INRIA, or a modified version of the Library that is distributed under the conditions defined in clause 3 of the GNU Library General Public License. This exception does not however invalidate any other reasons why the executable file might be covered by the GNU Library General Public License.
Credits
(c)2003-2005 Nicolas Cannasse (ncannasse@motion-twin.com)
(c)2003-2005 Motion-Twin
Some parts of this code source has an additionnal copyright to Jacques Garrigue
Dev Dependencies
None
Used by (26)
-
amqp-client
< "2.2.2"
-
amqp-client-async
< "2.3.0"
-
amqp-client-lwt
< "2.3.0"
-
aws-s3
< "4.5.1"
- bulletml
- dbforge
-
eliom
>= "11.0.0"
-
goblint
< "1.1.1"
- gpx
- gxl-light
- hardcaml-lua
-
haxe
>= "4.0.0"
- ocamleditor
-
ocsigenserver
>= "2.10"
-
ocsipersist-dbm
< "2.0.0"
- ocsipersist-dbm-config
-
ocsipersist-pgsql
< "2.0.0"
- ocsipersist-pgsql-config
-
ocsipersist-sqlite
< "2.0.0"
- ocsipersist-sqlite-config
- ofx
- open_packaging
-
ppx_deriving_protocol
< "0.8.1"
-
ppx_protocol_conv
< "3.1.0"
- ppx_protocol_conv_xml_light
- tcx
Conflicts
None