--- /dev/null
+(* $Id$
+ * ----------------------------------------------------------------------
+ * PXP: The polymorphic XML parser for Objective Caml.
+ * Copyright 1999 by Gerd Stolpmann. See LICENSE for details.
+ *)
+
+type ext_id =
+ System of string
+ | Public of (string * string)
+ | Anonymous
+
+
+type dtd_id =
+ External of ext_id
+ | Derived of ext_id
+ | Internal
+;;
+
+type content_model_type =
+ Unspecified
+ | Empty
+ | Any
+ | Mixed of mixed_spec list
+ | Regexp of regexp_spec
+
+and mixed_spec =
+ MPCDATA
+ | MChild of string
+
+and regexp_spec =
+ Optional of regexp_spec
+ | Repeated of regexp_spec
+ | Repeated1 of regexp_spec
+ | Alt of regexp_spec list
+ | Seq of regexp_spec list
+ | Child of string
+;;
+
+
+type att_type =
+ A_cdata
+ | A_id
+ | A_idref
+ | A_idrefs
+ | A_entity
+ | A_entities
+ | A_nmtoken
+ | A_nmtokens
+ | A_notation of string list
+ | A_enum of string list
+;;
+
+
+type att_default =
+ D_required
+ | D_implied
+ | D_default of string (* The default value is already expanded *)
+ | D_fixed of string (* The default value is already expanded *)
+;;
+
+
+type att_value =
+ Value of string
+ | Valuelist of string list
+ | Implied_value
+;;
+
+
+class type collect_warnings =
+ object
+ method warn : string -> unit
+ end
+;;
+
+
+class drop_warnings =
+ object
+ method warn (w:string) = ()
+ end
+;;
+
+
+type encoding = Netconversion.encoding;;
+
+type rep_encoding =
+ (* The subset of 'encoding' that may be used for internal representation
+ * of strings.
+ *)
+ [ `Enc_utf8 (* UTF-8 *)
+ | `Enc_iso88591 (* ISO-8859-1 *)
+ ]
+;;
+
+
+exception Validation_error of string
+
+exception WF_error of string
+
+exception Error of string
+
+exception Character_not_supported
+
+exception At of (string * exn)
+
+exception Undeclared
+
+
+let rec string_of_exn x0 =
+ match x0 with
+ At (s, x) ->
+ s ^ string_of_exn x
+ | Validation_error s ->
+ "ERROR (Validity constraint): " ^ s
+ | WF_error s ->
+ "ERROR (Well-formedness constraint): " ^ s
+ | Error s ->
+ "ERROR: " ^ s
+ | Character_not_supported ->
+ "RESTRICTION: Character not supported"
+ | Netconversion.Malformed_code ->
+ "ERROR: Bad character stream"
+ | Undeclared ->
+ "INFORMATION: Undeclared"
+ | Parsing.Parse_error ->
+ "SYNTAX ERROR"
+ | _ ->
+ "Other exception: " ^ Printexc.to_string x0
+;;
+
+
+type output_stream =
+ Out_buffer of Buffer.t
+ | Out_channel of out_channel
+ | Out_function of (string -> int -> int -> unit)
+;;
+
+
+let write os str pos len =
+ match os with
+ Out_buffer b -> Buffer.add_substring b str pos len
+ | Out_channel ch -> output ch str pos len
+ | Out_function f -> f str pos len
+;;
+
+(* ======================================================================
+ * History:
+ *
+ * $Log$
+ * Revision 1.1 2000/11/17 09:57:29 lpadovan
+ * Initial revision
+ *
+ * Revision 1.7 2000/08/14 22:24:55 gerd
+ * Moved the module Pxp_encoding to the netstring package under
+ * the new name Netconversion.
+ *
+ * Revision 1.6 2000/07/27 00:41:15 gerd
+ * new 8 bit codes
+ *
+ * Revision 1.5 2000/07/16 18:31:09 gerd
+ * The exception Illegal_character has been dropped.
+ *
+ * Revision 1.4 2000/07/14 21:25:27 gerd
+ * Simplified the type 'collect_warnings'.
+ *
+ * Revision 1.3 2000/07/08 16:23:50 gerd
+ * Added the exception 'Error'.
+ *
+ * Revision 1.2 2000/07/04 22:14:05 gerd
+ * Implemented the changes of rev. 1.2 of pxp_types.mli.
+ *
+ * Revision 1.1 2000/05/29 23:48:38 gerd
+ * Changed module names:
+ * Markup_aux into Pxp_aux
+ * Markup_codewriter into Pxp_codewriter
+ * Markup_document into Pxp_document
+ * Markup_dtd into Pxp_dtd
+ * Markup_entity into Pxp_entity
+ * Markup_lexer_types into Pxp_lexer_types
+ * Markup_reader into Pxp_reader
+ * Markup_types into Pxp_types
+ * Markup_yacc into Pxp_yacc
+ * See directory "compatibility" for (almost) compatible wrappers emulating
+ * Markup_document, Markup_dtd, Markup_reader, Markup_types, and Markup_yacc.
+ *
+ * ======================================================================
+ * Old logs from markup_types.ml:
+ *
+ * Revision 1.7 2000/05/29 21:14:57 gerd
+ * Changed the type 'encoding' into a polymorphic variant.
+ *
+ * Revision 1.6 2000/05/20 20:31:40 gerd
+ * Big change: Added support for various encodings of the
+ * internal representation.
+ *
+ * Revision 1.5 2000/05/01 20:43:19 gerd
+ * New type output_stream; new function 'write'.
+ *
+ * Revision 1.4 1999/09/01 16:25:35 gerd
+ * Dropped Illegal_token and Content_not_allowed_here. WF_error can
+ * be used instead.
+ *
+ * Revision 1.3 1999/08/15 02:22:33 gerd
+ * Added exception Undeclared.
+ *
+ * Revision 1.2 1999/08/14 22:14:58 gerd
+ * New class "collect_warnings".
+ *
+ * Revision 1.1 1999/08/10 00:35:52 gerd
+ * Initial revision.
+ *
+ *
+ *)