<html><head> <link rel="stylesheet" href="style.css" type="text/css"> <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"> <link rel="Start" href="index.html"> <link title="Index of types" rel=Appendix href="index_types.html"> <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> <link title="Index of values" rel=Appendix href="index_values.html"> <link title="Index of modules" rel=Appendix href="index_modules.html"> <link title="Index of module types" rel=Appendix href="index_module_types.html"> <link title="Xmlm" rel="Chapter" href="Xmlm.html"><title>Xmlm</title> </head> <body> <code class="code"><span class="keyword">sig</span><br> <span class="keyword">type</span> encoding =<br> [ <span class="keywordsign">`</span><span class="constructor">ISO_8859_1</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">US_ASCII</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">UTF_16</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">UTF_16BE</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">UTF_16LE</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">UTF_8</span> ]<br> <span class="keyword">type</span> dtd = string option<br> <span class="keyword">type</span> name = string * string<br> <span class="keyword">type</span> attribute = <span class="constructor">Xmlm</span>.name * string<br> <span class="keyword">type</span> tag = <span class="constructor">Xmlm</span>.name * <span class="constructor">Xmlm</span>.attribute list<br> <span class="keyword">type</span> signal =<br> [ <span class="keywordsign">`</span><span class="constructor">Data</span> <span class="keyword">of</span> string <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Dtd</span> <span class="keyword">of</span> <span class="constructor">Xmlm</span>.dtd <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">El_end</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">El_start</span> <span class="keyword">of</span> <span class="constructor">Xmlm</span>.tag ]<br> <span class="keyword">val</span> ns_xml : string<br> <span class="keyword">val</span> ns_xmlns : string<br> <span class="keyword">type</span> pos = int * int<br> <span class="keyword">type</span> error =<br> [ <span class="keywordsign">`</span><span class="constructor">Expected_char_seqs</span> <span class="keyword">of</span> string list * string<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Expected_root_element</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Illegal_char_ref</span> <span class="keyword">of</span> string<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Illegal_char_seq</span> <span class="keyword">of</span> string<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Malformed_char_stream</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Max_buffer_size</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Unexpected_eoi</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Unknown_encoding</span> <span class="keyword">of</span> string<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Unknown_entity_ref</span> <span class="keyword">of</span> string<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Unknown_ns_prefix</span> <span class="keyword">of</span> string ]<br> <span class="keyword">val</span> error_message : <span class="constructor">Xmlm</span>.error <span class="keywordsign">-></span> string<br> <span class="keyword">exception</span> <span class="constructor">Error</span> <span class="keyword">of</span> <span class="constructor">Xmlm</span>.pos * <span class="constructor">Xmlm</span>.error<br> <span class="keyword">type</span> source =<br> [ <span class="keywordsign">`</span><span class="constructor">Channel</span> <span class="keyword">of</span> <span class="constructor">Pervasives</span>.in_channel<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Fun</span> <span class="keyword">of</span> unit <span class="keywordsign">-></span> int<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">String</span> <span class="keyword">of</span> int * string ]<br> <span class="keyword">type</span> input<br> <span class="keyword">val</span> make_input :<br> ?enc:<span class="constructor">Xmlm</span>.encoding option <span class="keywordsign">-></span><br> ?strip:bool <span class="keywordsign">-></span><br> ?ns:(string <span class="keywordsign">-></span> string option) <span class="keywordsign">-></span><br> ?entity:(string <span class="keywordsign">-></span> string option) <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.source <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.input<br> <span class="keyword">val</span> input : <span class="constructor">Xmlm</span>.input <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.signal<br> <span class="keyword">val</span> input_tree :<br> el:(<span class="constructor">Xmlm</span>.tag <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> data:(string <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.input <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> input_doc_tree :<br> el:(<span class="constructor">Xmlm</span>.tag <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span><br> data:(string <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.input <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.dtd * <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> peek : <span class="constructor">Xmlm</span>.input <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.signal<br> <span class="keyword">val</span> eoi : <span class="constructor">Xmlm</span>.input <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> pos : <span class="constructor">Xmlm</span>.input <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.pos<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a frag = [ <span class="keywordsign">`</span><span class="constructor">Data</span> <span class="keyword">of</span> string <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">El</span> <span class="keyword">of</span> <span class="constructor">Xmlm</span>.tag * <span class="keywordsign">'</span>a list ]<br> <span class="keyword">type</span> dest =<br> [ <span class="keywordsign">`</span><span class="constructor">Buffer</span> <span class="keyword">of</span> <span class="constructor">Buffer</span>.t<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Channel</span> <span class="keyword">of</span> <span class="constructor">Pervasives</span>.out_channel<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Fun</span> <span class="keyword">of</span> int <span class="keywordsign">-></span> unit ]<br> <span class="keyword">type</span> output<br> <span class="keyword">val</span> make_output :<br> ?nl:bool <span class="keywordsign">-></span><br> ?indent:int option <span class="keywordsign">-></span><br> ?ns_prefix:(string <span class="keywordsign">-></span> string option) <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.dest <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.output<br> <span class="keyword">val</span> output : <span class="constructor">Xmlm</span>.output <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.signal <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> output_tree : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Xmlm</span>.frag) <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.output <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> output_doc_tree :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Xmlm</span>.frag) <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.output <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.dtd * <span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit<br> <span class="keyword">type</span> std_string = string<br> <span class="keyword">type</span> std_buffer = <span class="constructor">Buffer</span>.t<br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">String</span> =<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> empty : <span class="constructor">Xmlm</span>.<span class="constructor">String</span>.t<br> <span class="keyword">val</span> length : <span class="constructor">Xmlm</span>.<span class="constructor">String</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> append : <span class="constructor">Xmlm</span>.<span class="constructor">String</span>.t <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.<span class="constructor">String</span>.t <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.<span class="constructor">String</span>.t<br> <span class="keyword">val</span> lowercase : <span class="constructor">Xmlm</span>.<span class="constructor">String</span>.t <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.<span class="constructor">String</span>.t<br> <span class="keyword">val</span> iter : (int <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.<span class="constructor">String</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> of_string : <span class="constructor">Xmlm</span>.std_string <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.<span class="constructor">String</span>.t<br> <span class="keyword">val</span> to_utf_8 :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.std_string <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.<span class="constructor">String</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> compare : <span class="constructor">Xmlm</span>.<span class="constructor">String</span>.t <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.<span class="constructor">String</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">Buffer</span> =<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> string<br> <span class="keyword">type</span> t<br> <span class="keyword">exception</span> <span class="constructor">Full</span><br> <span class="keyword">val</span> create : int <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.<span class="constructor">Buffer</span>.t<br> <span class="keyword">val</span> add_uchar : <span class="constructor">Xmlm</span>.<span class="constructor">Buffer</span>.t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> clear : <span class="constructor">Xmlm</span>.<span class="constructor">Buffer</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> contents : <span class="constructor">Xmlm</span>.<span class="constructor">Buffer</span>.t <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.<span class="constructor">Buffer</span>.string<br> <span class="keyword">val</span> length : <span class="constructor">Xmlm</span>.<span class="constructor">Buffer</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">S</span> =<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> string<br> <span class="keyword">type</span> encoding =<br> [ <span class="keywordsign">`</span><span class="constructor">ISO_8859_1</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">US_ASCII</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">UTF_16</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">UTF_16BE</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">UTF_16LE</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">UTF_8</span> ]<br> <span class="keyword">type</span> dtd = <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.string option<br> <span class="keyword">type</span> name = <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.string * <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.string<br> <span class="keyword">type</span> attribute = <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.name * <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.string<br> <span class="keyword">type</span> tag = <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.name * <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.attribute list<br> <span class="keyword">type</span> signal =<br> [ <span class="keywordsign">`</span><span class="constructor">Data</span> <span class="keyword">of</span> <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.string<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Dtd</span> <span class="keyword">of</span> <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.dtd<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">El_end</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">El_start</span> <span class="keyword">of</span> <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.tag ]<br> <span class="keyword">val</span> ns_xml : <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.string<br> <span class="keyword">val</span> ns_xmlns : <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.string<br> <span class="keyword">type</span> pos = int * int<br> <span class="keyword">type</span> error =<br> [ <span class="keywordsign">`</span><span class="constructor">Expected_char_seqs</span> <span class="keyword">of</span> <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.string list * <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.string<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Expected_root_element</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Illegal_char_ref</span> <span class="keyword">of</span> <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.string<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Illegal_char_seq</span> <span class="keyword">of</span> <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.string<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Malformed_char_stream</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Max_buffer_size</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Unexpected_eoi</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Unknown_encoding</span> <span class="keyword">of</span> <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.string<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Unknown_entity_ref</span> <span class="keyword">of</span> <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.string<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Unknown_ns_prefix</span> <span class="keyword">of</span> <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.string ]<br> <span class="keyword">exception</span> <span class="constructor">Error</span> <span class="keyword">of</span> <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.pos * <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.error<br> <span class="keyword">val</span> error_message : <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.error <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.string<br> <span class="keyword">type</span> source =<br> [ <span class="keywordsign">`</span><span class="constructor">Channel</span> <span class="keyword">of</span> <span class="constructor">Pervasives</span>.in_channel<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Fun</span> <span class="keyword">of</span> unit <span class="keywordsign">-></span> int<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">String</span> <span class="keyword">of</span> int * <span class="constructor">Xmlm</span>.std_string ]<br> <span class="keyword">type</span> input<br> <span class="keyword">val</span> make_input :<br> ?enc:<span class="constructor">Xmlm</span>.<span class="constructor">S</span>.encoding option <span class="keywordsign">-></span><br> ?strip:bool <span class="keywordsign">-></span><br> ?ns:(<span class="constructor">Xmlm</span>.<span class="constructor">S</span>.string <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.string option) <span class="keywordsign">-></span><br> ?entity:(<span class="constructor">Xmlm</span>.<span class="constructor">S</span>.string <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.string option) <span class="keywordsign">-></span><br> <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.source <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.input<br> <span class="keyword">val</span> input : <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.input <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.signal<br> <span class="keyword">val</span> input_tree :<br> el:(<span class="constructor">Xmlm</span>.<span class="constructor">S</span>.tag <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span><br> data:(<span class="constructor">Xmlm</span>.<span class="constructor">S</span>.string <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.input <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> input_doc_tree :<br> el:(<span class="constructor">Xmlm</span>.<span class="constructor">S</span>.tag <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span><br> data:(<span class="constructor">Xmlm</span>.<span class="constructor">S</span>.string <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.input <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.dtd * <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> peek : <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.input <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.signal<br> <span class="keyword">val</span> eoi : <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.input <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> pos : <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.input <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.pos<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a frag = [ <span class="keywordsign">`</span><span class="constructor">Data</span> <span class="keyword">of</span> <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.string <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">El</span> <span class="keyword">of</span> <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.tag * <span class="keywordsign">'</span>a list ]<br> <span class="keyword">type</span> dest =<br> [ <span class="keywordsign">`</span><span class="constructor">Buffer</span> <span class="keyword">of</span> <span class="constructor">Xmlm</span>.std_buffer<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Channel</span> <span class="keyword">of</span> <span class="constructor">Pervasives</span>.out_channel<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Fun</span> <span class="keyword">of</span> int <span class="keywordsign">-></span> unit ]<br> <span class="keyword">type</span> output<br> <span class="keyword">val</span> make_output :<br> ?nl:bool <span class="keywordsign">-></span><br> ?indent:int option <span class="keywordsign">-></span><br> ?ns_prefix:(<span class="constructor">Xmlm</span>.<span class="constructor">S</span>.string <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.string option) <span class="keywordsign">-></span><br> <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.dest <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.output<br> <span class="keyword">val</span> output : <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.output <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.signal <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> output_tree : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.frag) <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.output <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> output_doc_tree :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.frag) <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.output <span class="keywordsign">-></span> <span class="constructor">Xmlm</span>.<span class="constructor">S</span>.dtd * <span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Make</span> :<br> <span class="keyword">functor</span> (<span class="constructor">String</span> : <span class="constructor">String</span>) <span class="keywordsign">-></span><br> <span class="keyword">functor</span><br> (<span class="constructor">Buffer</span> : <span class="keyword">sig</span><br> <span class="keyword">type</span> string = <span class="constructor">String</span>.t<br> <span class="keyword">type</span> t<br> <span class="keyword">exception</span> <span class="constructor">Full</span><br> <span class="keyword">val</span> create : int <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> add_uchar : t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> clear : t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> contents : t <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> length : t <span class="keywordsign">-></span> int<br> <span class="keyword">end</span>) <span class="keywordsign">-></span><br> <span class="keyword">sig</span><br> <span class="keyword">type</span> string = <span class="constructor">String</span>.t<br> <span class="keyword">type</span> encoding =<br> [ <span class="keywordsign">`</span><span class="constructor">ISO_8859_1</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">US_ASCII</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">UTF_16</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">UTF_16BE</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">UTF_16LE</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">UTF_8</span> ]<br> <span class="keyword">type</span> dtd = string option<br> <span class="keyword">type</span> name = string * string<br> <span class="keyword">type</span> attribute = name * string<br> <span class="keyword">type</span> tag = name * attribute list<br> <span class="keyword">type</span> signal =<br> [ <span class="keywordsign">`</span><span class="constructor">Data</span> <span class="keyword">of</span> string <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Dtd</span> <span class="keyword">of</span> dtd <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">El_end</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">El_start</span> <span class="keyword">of</span> tag ]<br> <span class="keyword">val</span> ns_xml : string<br> <span class="keyword">val</span> ns_xmlns : string<br> <span class="keyword">type</span> pos = int * int<br> <span class="keyword">type</span> error =<br> [ <span class="keywordsign">`</span><span class="constructor">Expected_char_seqs</span> <span class="keyword">of</span> string list * string<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Expected_root_element</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Illegal_char_ref</span> <span class="keyword">of</span> string<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Illegal_char_seq</span> <span class="keyword">of</span> string<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Malformed_char_stream</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Max_buffer_size</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Unexpected_eoi</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Unknown_encoding</span> <span class="keyword">of</span> string<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Unknown_entity_ref</span> <span class="keyword">of</span> string<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Unknown_ns_prefix</span> <span class="keyword">of</span> string ]<br> <span class="keyword">exception</span> <span class="constructor">Error</span> <span class="keyword">of</span> pos * error<br> <span class="keyword">val</span> error_message : error <span class="keywordsign">-></span> string<br> <span class="keyword">type</span> source =<br> [ <span class="keywordsign">`</span><span class="constructor">Channel</span> <span class="keyword">of</span> in_channel<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Fun</span> <span class="keyword">of</span> unit <span class="keywordsign">-></span> int<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">String</span> <span class="keyword">of</span> int * std_string ]<br> <span class="keyword">type</span> input<br> <span class="keyword">val</span> make_input :<br> ?enc:encoding option <span class="keywordsign">-></span><br> ?strip:bool <span class="keywordsign">-></span><br> ?ns:(string <span class="keywordsign">-></span> string option) <span class="keywordsign">-></span><br> ?entity:(string <span class="keywordsign">-></span> string option) <span class="keywordsign">-></span> source <span class="keywordsign">-></span> input<br> <span class="keyword">val</span> input : input <span class="keywordsign">-></span> signal<br> <span class="keyword">val</span> input_tree :<br> el:(tag <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> data:(string <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> input <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> input_doc_tree :<br> el:(tag <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span><br> data:(string <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> input <span class="keywordsign">-></span> dtd * <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> peek : input <span class="keywordsign">-></span> signal<br> <span class="keyword">val</span> eoi : input <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> pos : input <span class="keywordsign">-></span> pos<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a frag = [ <span class="keywordsign">`</span><span class="constructor">Data</span> <span class="keyword">of</span> string <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">El</span> <span class="keyword">of</span> tag * <span class="keywordsign">'</span>a list ]<br> <span class="keyword">type</span> dest =<br> [ <span class="keywordsign">`</span><span class="constructor">Buffer</span> <span class="keyword">of</span> std_buffer<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Channel</span> <span class="keyword">of</span> out_channel<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Fun</span> <span class="keyword">of</span> int <span class="keywordsign">-></span> unit ]<br> <span class="keyword">type</span> output<br> <span class="keyword">val</span> make_output :<br> ?nl:bool <span class="keywordsign">-></span><br> ?indent:int option <span class="keywordsign">-></span><br> ?ns_prefix:(string <span class="keywordsign">-></span> string option) <span class="keywordsign">-></span> dest <span class="keywordsign">-></span> output<br> <span class="keyword">val</span> output : output <span class="keywordsign">-></span> signal <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> output_tree : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a frag) <span class="keywordsign">-></span> output <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> output_doc_tree : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a frag) <span class="keywordsign">-></span> output <span class="keywordsign">-></span> dtd * <span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">end</span></code></body></html>