;ELC   
;;; Compiled by nelson@oikos.local on Sat Jul 23 20:32:09 2005
;;; from file /Users/nelson/Desktop/nxml-mode-20041004/nxml-ns.el
;;; in Emacs version 22.0.50.6
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.
(if (and (boundp 'emacs-version)
	 (< (aref emacs-version (1- (length emacs-version))) ?A)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`nxml-ns.el' was compiled for Emacs 19.29 or later"))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(require 'nxml-util)
#@539 Contains the state of namespace processing.  The state
is never modified destructively and so can be saved and restored
without copying.

The value is a stack represented by a list. The list has length N + 1
where N is the number of open elements.  Each member of the list
represents the bindings in effect for a particular element.  Each
member is itself a list whose car is the default namespace
(a symbol or nil) and whose cdr is an alist of (PREFIX . NS) pairs
where PREFIX is a string (never nil) and NS is the namespace URI
symbol.
(defvar nxml-ns-state nil (#$ . 610))
#@201 A list to be used as the initial value of nxml-ns-state.  This
represents the state with no open elements and with the default
namespace bindings (no default namespace and only the xml prefix bound).
(defconst nxml-ns-initial-state (byte-code "\301\302BDC\207" [nxml-xml-namespace-uri nil "xml"] 3) (#$ . 1193))
(defalias 'nxml-ns-state #[nil "\207" [nxml-ns-state] 1])
(put 'nxml-ns-state 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'nxml-ns-set-state #[(state) "\211\207" [state nxml-ns-state] 2])
(put 'nxml-ns-set-state 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'nxml-ns-state-equal #[(state) "	\232\207" [nxml-ns-state state] 2])
(put 'nxml-ns-state-equal 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'nxml-ns-save '(macro . #[(&rest body) "\301\302BB\207" [body let ((nxml-ns-state nxml-ns-initial-state))] 3]))
(byte-code "\300\301\302\303#\210\300\301\304\305#\207" [put nxml-ns-save lisp-indent-function 0 edebug-form-spec t] 4)
(defalias 'nxml-ns-init #[nil "\211\207" [nxml-ns-initial-state nxml-ns-state] 2])
#@105 Change the state by starting a new element. Namespace declarations
are inherited from the parent state.
(defalias 'nxml-ns-push-state #[nil "@B\211\207" [nxml-ns-state] 2 (#$ . 2263)])
#@97 Change the state by ending an element.  The behaviour is undefined
if there is no open element.
(defalias 'nxml-ns-pop-state #[nil "A\211\207" [nxml-ns-state] 2 (#$ . 2457)])
#@110 Return the symbol for namespace bound to PREFIX, or nil if PREFIX
is unbound. PREFIX is a string, never nil.
(defalias 'nxml-ns-get-prefix #[(prefix) "\304	\211@A)\"\211\205 A)\207" [prefix nxml-ns-state x binding assoc] 4 (#$ . 2641)])
#@159 Change the binding of PREFIX. PREFIX is a string (never nil).  NS
is a symbol (never nil). The change will be in effect until the end of
the current element.
(defalias 'nxml-ns-set-prefix #[(prefix ns) "@\211@\nB	ABBA)B\211\207" [nxml-ns-state bindings prefix ns] 4 (#$ . 2890)])
#@92 Return the current default namespace as a symbol, or nil
if there is no default namespace.
(defalias 'nxml-ns-get-default #[nil "\211@@)\207" [nxml-ns-state x] 2 (#$ . 3181)])
#@131 Changes the current default namespace.  The change
will be in effect until the end of the current element.
NS is a symbol or nil.
(defalias 'nxml-ns-set-default #[(ns) "	\211@A)B	AB\211\207" [ns nxml-ns-state x] 3 (#$ . 3366)])
(defalias 'nxml-ns-get-context #[nil "@\207" [nxml-ns-state] 1])
(defalias 'nxml-ns-prefixes-for #[(ns &optional attributep) "@\306\203 \f?\202 \n@\f=\203 \307\nA\310\f\n\"\211\2058 \311@!\f=\2032 \312\301@\"\210\n\235A\211)\204 	*\207" [nxml-ns-state prefixes current attributep ns binding nil (nil) rassq nxml-ns-get-prefix add-to-list] 4])
(defalias 'nxml-ns-prefix-for #[(ns) "\303	\211@A)\"@\207" [ns nxml-ns-state x rassq] 4])
(defalias 'nxml-ns-changed-prefixes #[nil "\211A@)@\305\211=\2048 @\f@=\204 \306A\fA\f=\2048 \211@@)\nBA\211\202# \n+\207" [nxml-ns-state x changed new old nil (nil)] 4])
(provide 'nxml-ns)
