(***********************************************************************)
(*                                                                     *)
(*                                 GALAX                               *)
(*                           XML Query Engine                          *)
(*                                                                     *)
(*  Copyright 2000, Lucent Technologies.                               *)
(*  Distributed only by permission.                                    *)
(*                                                                     *)
(***********************************************************************)

(* $Id $ *)

open Namespace
open Sym

(*********************************************************)
(* This module implement namespace resolution for qnames *)
(*********************************************************)

(********************************************)
(* Functions to check consistency of qnames *)
(********************************************)

val is_group_defined : nsenv -> rgroup_symbol -> unit
val is_elem_defined  : nsenv -> relem_symbol  -> unit
val is_attr_defined  : nsenv -> rattr_symbol  -> unit

(**********************************************)
(* Resolving QNames to Expanded QNames        *)
(* Expanded QNames are represented by symbols *)
(**********************************************)

val resolve_element_qname   : nsenv -> uqname -> (prefix * rqname)
val resolve_attribute_qname : nsenv -> uqname -> (prefix * rqname)
val resolve_function_qname  : nsenv -> uqname -> (prefix * rqname)

val resolve_ugroup_qname    : nsenv -> ugroup_symbol -> rgroup_symbol
val resolve_uelem_qname     : nsenv -> uelem_symbol  -> relem_symbol
val resolve_uattr_qname     : nsenv -> uattr_symbol  -> rattr_symbol
   
val resolve_group_symbol    : nsenv -> group_symbol -> rgroup_symbol
val resolve_elem_symbol     : nsenv -> elem_symbol  -> relem_symbol
val resolve_attr_symbol     : nsenv -> attr_symbol  -> rattr_symbol

