sig
  type t_key = Primary_key | Key
  val xparse_t_key : IoXML.ast -> Dbf_types.V1.t_key
  val xprint_t_key : Format.formatter -> Dbf_types.V1.t_key -> unit
  type sql_code = string
  val xparse_sql_code : IoXML.ast -> string
  val xprint_sql_code : Format.formatter -> string -> unit
  type dbms = Odbc | Mysql | Postgres
  val xparse_dbms : IoXML.ast -> Dbf_types.V1.dbms
  val xprint_dbms : Format.formatter -> Dbf_types.V1.dbms -> unit
  type column_dbms = {
    mutable col_type_sql : string * string option * string option;
    mutable col_2ml : string;
    mutable col_ml2 : string;
    mutable col_key : Dbf_types.V1.t_key option;
    mutable col_default : Dbf_types.V1.sql_code option;
    mutable col_atts : (string * Dbf_types.V1.sql_code) list;
  }
  val xparse_column_dbms : IoXML.ast -> Dbf_types.V1.column_dbms
  val xprint_column_dbms :
    Format.formatter -> Dbf_types.V1.column_dbms -> unit
  type column = {
    mutable col_name : string;
    mutable col_comment : string;
    mutable col_type_ml : string;
    mutable col_nullable : bool;
    mutable col_index : bool;
    mutable col_dbms : (Dbf_types.V1.dbms * Dbf_types.V1.column_dbms) list;
  }
  val xparse_column : IoXML.ast -> Dbf_types.V1.column
  val xprint_column : Format.formatter -> Dbf_types.V1.column -> unit
  type table = {
    mutable ta_name : string;
    mutable ta_comment : string;
    mutable ta_columns : Dbf_types.V1.column list;
    mutable ta_atts : int list;
    mutable ta_indexes : int list;
  }
  val xparse_table : IoXML.ast -> Dbf_types.V1.table
  val xprint_table : Format.formatter -> Dbf_types.V1.table -> unit
  type schema = { mutable sch_tables : Dbf_types.V1.table list; }
  val xparse_schema : IoXML.ast -> Dbf_types.V1.schema
  val xprint_schema : Format.formatter -> Dbf_types.V1.schema -> unit
  type att_desc = Att_string
  val xparse_att_desc : IoXML.ast -> Dbf_types.V1.att_desc
  val xprint_att_desc : Format.formatter -> Dbf_types.V1.att_desc -> unit
  val default : unit -> Dbf_types.V1.schema
  val version : string
  val read : Pervasives.in_channel -> Dbf_types.V1.schema
  val write : Pervasives.out_channel -> Dbf_types.V1.schema -> unit
end