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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
|
(**************************************************************************)
(* The CDuce compiler *)
(* Alain Frisch <Alain.Frisch@inria.fr> and the CDuce team *)
(* Copyright CNRS,INRIA, 2003,2004,2005,2006,2007 (see LICENSE for details) *)
(**************************************************************************)
open Encodings
module Uri : Upool.S with type value = Utf8.t
(* Namespaces URIs *)
module QName : sig
include Custom.T with type t = Uri.t * Utf8.t
val to_string: t -> string
val print: Format.formatter -> t -> unit
(*
val mk_ascii: string -> t
val get_ascii: t -> string
*)
end
module Label : sig
(* Qualified names of the form (nsuri:localname). Used
as labels in records *)
include Upool.S with type value = QName.t
val print_tag: Format.formatter -> t -> unit
val print_attr: Format.formatter -> t -> unit
val print_quote: Format.formatter -> t -> unit
val mk_ascii: string -> t
val get_ascii: t -> string
val string_of_attr: t -> string
val string_of_tag: t -> string
(*
val to_string: t -> string
val print: Format.formatter -> t -> unit
val of_qname: Uri.t -> Utf8.t -> t
val split: t -> Utf8.t * Utf8.t
*)
end
exception UnknownPrefix of Utf8.t
val empty : Uri.t
val xml_ns: Uri.t
type table (* prefix => namespace *)
val empty_table: table (* Contains only xml *)
val def_table: table (* Contains xml,xsd,xsi *)
val add_prefix: Utf8.t -> Uri.t -> table -> table
val merge_tables: table -> table -> table
val dump_table: Format.formatter -> table -> unit
val get_table: table -> (Utf8.t * Uri.t) list
val mk_table: (Utf8.t * Uri.t) list -> table
val process_start_tag:
table -> string -> (string * string) list ->
table * QName.t * (Label.t * Utf8.t) list
val map_tag: table -> Utf8.t -> QName.t
val map_attr: table -> Utf8.t -> QName.t
val map_prefix: table -> Utf8.t -> Uri.t
(* Support for printing XML documents *)
module Printer : sig
type printer
val printer: table -> printer
val register_ns: printer -> Uri.t -> unit
val register_qname: printer -> QName.t -> unit
val prefixes: printer -> (Utf8.t * Uri.t) list
val tag: printer -> QName.t -> string
val attr: printer -> QName.t -> string
end
(***)
module InternalPrinter : sig
val set_table: table -> unit
val any_ns: Uri.t -> string
val tag: QName.t -> string
val attr: QName.t -> string
val print_tag: Format.formatter -> QName.t -> unit
val print_any_ns: Format.formatter -> Uri.t -> unit
val dump: Format.formatter -> unit
end
|