package forester
Source file Xml_printer.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33open Prelude type printer = Xmlm.output -> unit module P0 = struct type out = Xmlm.output let text txt out = Xmlm.output out @@ `Data txt end include Printer_kit.Kit (P0) let attr ?(ns = "") k v = (ns, k), v let tag ?(ns = "") name attrs bdy : printer = fun out -> Xmlm.output out @@ `El_start ((ns, name), attrs); seq ~sep:space bdy out; Xmlm.output out `El_end let with_xsl stylesheet bdy : printer = fun out -> let line = Format.sprintf "<?xml-stylesheet type=\"text/xsl\" href=\"%s\"?>" stylesheet in Xmlm.output out @@ `Dtd (Some line); bdy out let document body : printer = fun out -> Xmlm.output out @@ `Dtd None; body out