;ELC   
;;; Compiled by nelson@oikos.local on Sat Jul 23 20:32:10 2005
;;; from file /Users/nelson/Desktop/nxml-mode-20041004/rng-nxml.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 "`rng-nxml.el' was compiled for Emacs 19.29 or later"))

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


(byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\300\306!\210\300\307!\210\300\310!\210\300\311!\207" [require easymenu xmltok nxml-util nxml-ns rng-match rng-util rng-valid nxml-mode rng-loc] 2)
#@65 *Non-nil means automatically turn on validation with nxml-mode.
(custom-declare-variable 'rng-nxml-auto-validate-flag 't '(#$ . -815) :type 'boolean :group 'relax-ng)
#@58 Default value for variable `rng-preferred-prefix-alist'.
(defvar rng-preferred-prefix-alist-default nil (#$ . 988))
#@45 *Alist of namespaces vs preferred prefixes.
(custom-declare-variable 'rng-preferred-prefix-alist 'rng-preferred-prefix-alist-default '(#$ . -1110) :type '(repeat (cons :tag "With" (string :tag "this namespace URI") (string :tag "use this prefix"))) :group 'relax-ng)
#@103 *Non-nil means immediately after < complete on end-tag names.
Complete on start-tag names regardless.
(defvar rng-complete-end-tags-after-< t (#$ . -1384))
(byte-code "\301B\302\301!\204 \303\301\304\"\210\301\207" [current-load-list rng-nxml-easy-menu default-boundp set-default ("XML" ["Show Outline Only" nxml-hide-all-text-content] ["Show Everything" nxml-show-all] "---" ["Validation" rng-validate-mode :style toggle :selected rng-validate-mode] "---" ("Set Schema" ["Automatically" rng-auto-set-schema] ("For Document Type" :filter (lambda (menu) (mapcar (lambda (type-id) (vector type-id (list 'rng-set-document-type type-id))) (rng-possible-type-ids)))) ["Any Well-Formed XML" rng-set-vacuous-schema] ["File..." rng-set-schema-file]) ["Show Schema Location" rng-what-schema] ["Save Schema Location" rng-save-schema-location :help "Save the location of the schema currently being used for this buffer"] "---" ["First Error" rng-first-error :active rng-validate-mode] ["Next Error" rng-next-error :active rng-validate-mode] "---" ["Customize nXML" (customize-group 'nxml)] "---" ["Show nXML Version" nxml-version])] 3)
#@186 Initialize `nxml-mode' to take advantage of `rng-validate-mode'.
This is typically called from `nxml-mode-hook'.
Validation will be enabled if `rng-nxml-auto-validate-flag' is non-nil.
(defalias 'rng-nxml-mode-init #[nil "\304\305\306#\210\304\307\310#\210\304\311\312#\210\304\313\314#\210\304\315\316#\210\304\317\320#\210\304\321\322#\210\323\324\325\326#\210\327\324!\204; \330\324\331\"\210\332\324\326	$\210\333\203Z \306\334!\210\335\336\337\331\340$\210\335\341\342\331\340$\207\306\343!\210\344\336\337\340#\210\344\341\342\340#\207" [nxml-mode-map rng-nxml-easy-menu mode-line-process rng-nxml-auto-validate-flag define-key "" rng-validate-mode "" rng-what-schema "" rng-auto-set-schema-and-validate "" rng-set-schema-file-and-validate "\f" rng-save-schema-location "" rng-set-document-type-and-validate "" rng-next-error put rng-nxml-menu variable-documentation "Menu for nxml-mode used with rng-validate-mode." default-boundp set-default nil easy-menu-do-define (rng-validate-mode (:eval (rng-compute-mode-line-string))) 1 add-hook nxml-completion-hook rng-complete t nxml-in-mixed-content-hook rng-in-mixed-content-p 0 remove-hook] 5 (#$ . 2519) nil])
(byte-code "\301B\302\301!\204 \303\301\304\"\210\305B\302\305!\204 \303\305\304\"\210\306B\302\306!\204- \303\306\304\"\210\307B\302\307!\204< \303\307\304\"\210\310B\302\310!\204K \303\310\304\"\210\311B\302\311!\204Z \303\311\304\"\210\304\207" [current-load-list rng-tag-history default-boundp set-default nil rng-attribute-name-history rng-attribute-value-history rng-complete-target-names rng-complete-name-attribute-flag rng-complete-extra-strings] 3)
#@107 Complete the string before point using the current schema.
Return non-nil if in a context it understands.
(defalias 'rng-complete #[nil "\2050 \212\303\304\305\306#)\305\211\205/ \307\n!\nU\205/ \310\n!\206/ \311\n!\206/ \312\n!\206/ \313\n!*\207" [rng-validate-mode xmltok-dtd lt-pos search-backward "<" nil t rng-set-state-after rng-complete-tag rng-complete-end-tag rng-complete-attribute-name rng-complete-attribute-value] 5 (#$ . 4192) nil])
(byte-code "\302B\303\304\305	\306\307\211%!\207" [current-load-list xmltok-ncname-regexp rng-in-start-tag-name-regex (lambda (#1=#:defconst-tmp-var) (defconst rng-in-start-tag-name-regex #1#)) replace-regexp-in-string "w" "<\\(?:w\\(?::w?\\)?\\)?\\=" t] 7)
(defalias 'rng-complete-tag #[(lt-pos) "\306	`SU\203P \n\203P \203P @\307=\204P \f\204' \310\216\311 *\203P \312\211@@)\203E \211@@)\313\211@A)Q\202L \211@A)PB\212\314	\307#)\205\266 \f\203b \315 \210\316 \306\317	T\320\321\306\322%*\306\211 \203\264 \323 !\203\252 \324 \307\325#\211\203\264 \326!\203\264 \327 \203\244 @\203\264 \204\264 \330c\210\202\264  \235\203\264 \331c\210*\307)\207" [rng-complete-extra-strings lt-pos rng-complete-end-tags-after-< rng-open-elements rng-collecting-text rng-match-state nil t ((byte-code "\302\207" [#1=#:state rng-match-state nil] 1)) rng-match-end-tag "/" ":" re-search-backward rng-flush-text rng-match-possible-start-tag-names rng-complete-before-point rng-complete-qname-function "Tag: " rng-tag-history rng-qname-p rng-expand-qname rng-start-tag-expand-recover rng-match-start-tag-open rng-match-start-tag-close " " ">" #1# x rng-in-start-tag-name-regex rng-complete-name-attribute-flag rng-complete-target-names name completion] 7])
(byte-code "\302B\303\304\305	\306\307\211%!\207" [current-load-list xmltok-ncname-regexp rng-in-end-tag-name-regex (lambda (#1=#:defconst-tmp-var) (defconst rng-in-end-tag-name-regex #1#)) replace-regexp-in-string "w" "</\\(?:w\\(?::w?\\)?\\)?\\=" t] 7)
(defalias 'rng-complete-end-tag #[(lt-pos) "\212\306	\307#)\205\211 \n\203 \n@\307=\203 \310\311!\210\312 \210\202\210 \n\211@@)\2039 \n\211@@)\313\n\211@A)Q\202? \n\211@A)\314\315\224\316\\`\"\fGGV\204Z \315\fGO\f\230\204j \310\317\320\321\322Q!\"\210\312 \210\202\207 `\fGZ`|\210\323\261\210\204\207 \324 \204\207 \310\325\320!\"\210*\307\207" [rng-in-end-tag-name-regex lt-pos rng-open-elements x end-tag-name start-tag-name re-search-backward t message "No matching start-tag" ding ":" buffer-substring-no-properties 0 2 "Expected end-tag %s" rng-quote-string "</" ">" ">" rng-match-end-tag "Element %s is incomplete" rng-collecting-text] 7])
(byte-code "\302B\303\304\305	\306\307\211%!\210\310B\311\310!\204 \312\310\313\"\210\313\207" [current-load-list xmltok-ncname-regexp rng-in-attribute-regex (lambda (#1=#:defconst-tmp-var) (defconst rng-in-attribute-regex #1#)) replace-regexp-in-string "w" "<w\\(?::w\\)?\\(?:[ 	\n]+w\\(?::w\\)?[ 	\n]*=[ 	\n]*\\(?:\"[^\"]*\"\\|'[^']*'\\)\\)*[ 	\n]+\\(\\(?:w\\(?::w?\\)?\\)?\\)\\=" t rng-undeclared-prefixes default-boundp set-default nil] 7)
(defalias 'rng-complete-attribute-name #[(lt-pos) "\212\306	\307#)\2051 \310\224\311\312	\"\203/ \313 \314\315\n\"\307\316\317\320\311\321%+\203/ \322c\210*\307\207" [rng-in-attribute-regex lt-pos rng-undeclared-prefixes attribute-start rng-complete-name-attribute-flag rng-complete-extra-strings re-search-backward t 1 nil rng-adjust-state-for-attribute rng-match-possible-attribute-names mapcar #[(prefix) "\203 \301P\207\302\207" [prefix "xmlns:" "xmlns"] 2] rng-complete-before-point rng-complete-qname-function "Attribute: " rng-attribute-name-history "=\"" rng-complete-target-names] 6])
(byte-code "\302B\303\304\305	\306\307\211%!\207" [current-load-list xmltok-ncname-regexp rng-in-attribute-value-regex (lambda (#1=#:defconst-tmp-var) (defconst rng-in-attribute-value-regex #1#)) replace-regexp-in-string "w" "<w\\(?::w\\)?\\(?:[ 	\n]+w\\(?::w\\)?[ 	\n]*=[ 	\n]*\\(?:\"[^\"]*\"\\|'[^']*'\\)\\)*[ 	\n]+\\(w\\(:w\\)?\\)[ 	\n]*=[ 	\n]*\\(\"[^\"]*\\|'[^']*\\)\\=" t] 7)
(defalias 'rng-complete-attribute-value #[(lt-pos) "\212\306	\307#)\205[ \310\224\310\225\311\224\312\224T\313	\"\203Y \314\206% \f\"\315\230\203A \316\n\317\320\2058 \314T\f\"!!\321\322\323%\202Q \324\f#\210\316\n\317\325 !\326\322\327%\203Y \nSfc\210,\307\207" [rng-in-attribute-value-regex lt-pos value-start colon name-end name-start re-search-backward t 1 2 3 rng-adjust-state-for-attribute buffer-substring-no-properties "xmlns" rng-complete-before-point rng-strings-to-completion-alist rng-possible-namespace-uris "Namespace URI: " nil rng-namespace-uri-history rng-adjust-state-for-attribute-value rng-match-possible-value-strings "Value: " rng-attribute-value-history] 7])
(defalias 'rng-possible-namespace-uris #[(prefix) "\203\n \303!\202\f \304 \211\203 \305 >\203 \306	!C\202' \307\306\310\n\311 \"\")\207" [prefix ns nxml-xml-namespace-uri nxml-ns-get-prefix nxml-ns-get-default nxml-ns-changed-prefixes nxml-namespace-name mapcar delq rng-match-possible-namespace-uris] 6])
(byte-code "\302B\303\304	\305\306	\307\310\311\260!\207" [current-load-list xmltok-ncname-regexp rng-qname-regexp (lambda (#1=#:defconst-tmp-var) (defconst rng-qname-regexp #1#)) "\\`" "\\(?:" ":" "\\)" "?" "\\'"] 9)
(defalias 'rng-qname-p #[(string) "\302	\"\205 \303\207" [rng-qname-regexp string string-match t] 3])
(defalias 'rng-expand-qname #[(qname &optional defaultp recover-fun) "\305!\211@\211\203' \306!\211\203 \nAB\202# \205# 	A\")\2020 \f\205- \307 AB)\207" [qname prefix ns recover-fun defaultp rng-split-qname nxml-ns-get-prefix nxml-ns-get-default] 4])
(defalias 'rng-start-tag-expand-recover #[(prefix local-name) "\302!\211\205 	B)\207" [local-name ns rng-match-infer-start-tag-namespace] 3])
(defalias 'rng-split-qname #[(qname) "\301\302\"\203 \303\211\224O\303\225\304OB\207\304B\207" [qname string-match ":" 0 nil] 4])
#@134 Return non-nil if point is in mixed content.
Return nil only if point is definitely not in mixed content.
If unsure, return non-nil.
(defalias 'rng-in-mixed-content-p #[nil "	=\203 \302\207\303 \210\304 \207" [rng-current-schema rng-any-element t rng-set-state-after rng-match-mixed-text] 2 (#$ . 10178)])
#@201 Set the state for after parsing the first token with endpoint >= POS.
This does not change the xmltok state or point.  However, it does
set `xmltok-dtd'. Returns the position of the end of the token.
(defalias 'rng-set-state-after #[(&optional pos) "\204 `	W\203, \306\307!\210\310 \203( 	W\203( \311 \210\312\313\314!\210)\202 \306\315!\210\212\214~\210\316\317U\203> \320 \210\202n \321S\322\"\211\203R \323\f!\210b\210\202m \324\322\"\211\203i \323\321S\322\"!\210b\210\202l \320 \210))\312\211\211\211\211\211\211\211\211 !\"`\317U\203\225 \325 \210\202\231 #$`W\203\272 f\326=\203\272 `\212Tb\210\327\312w\210`)X\203\272 \202\320 `W\203\317 \330\316%&\331!\210*`\202\320 .\f\207" [pos rng-validate-up-to-date-end timer-idle-list inhibit-point-motion-hooks state start message "Parsing..." rng-do-some-validation force-mode-line-update nil sit-for 0 "Parsing...done" t 1 rng-set-initial-state get-text-property rng-state rng-restore-state previous-single-property-change xmltok-forward-prolog 60 " 	\n" (nxml-ns-get-context) rng-forward xmltok-errors xmltok-dependent-regions xmltok-namespace-attributes xmltok-attributes xmltok-replacement xmltok-name-end xmltok-name-colon xmltok-start xmltok-type rng-dtd xmltok-dtd rng-parsing-for-state rng-dt-namespace-context-getter] 10 (#$ . 10493)])
(defalias 'rng-adjust-state-for-attribute #[(lt-pos start) "\306\211\211\211\211\211\211\211\211\212b\210\307 \310>\205C `W\2034 \311\n\"\311\"\312\313\314\315!\210\316 \210*\312.\n\207" [xmltok-errors xmltok-dependent-regions xmltok-namespace-attributes xmltok-attributes xmltok-replacement xmltok-name-end nil xmltok-forward (start-tag partial-start-tag empty-element partial-empty-element) rng-prune-attribute-at t (nxml-ns-get-context) rng-process-start-tag stop rng-find-undeclared-prefixes xmltok-name-colon xmltok-start xmltok-type lt-pos start rng-dt-namespace-context-getter rng-parsing-for-state] 9])
(defalias 'rng-find-undeclared-prefixes #[nil "\306 	\n\307\310 \210\2037 @\311!\211\203/ \235\204/ \312!\204/ B)A\211\204 \f\211)\211\205\\ @\313\311!\205Q \314!\"A\211\204D \307+\207" [rng-undeclared-prefixes xmltok-attributes nxml-ns-state att ns-state iter nxml-ns-changed-prefixes nil nxml-ns-pop-state xmltok-attribute-prefix nxml-ns-get-prefix delete xmltok-attribute-local-name prefix state xmltok-namespace-attributes] 4])
(defalias 'rng-prune-attribute-at #[(start atts) "\205$ 	@\211\304H)=\203 \305	@\"\202\" 	A\211\204 )\207" [atts cur att start 0 delq] 4])
(defalias 'rng-adjust-state-for-attribute-value #[(name-start colon name-end) "\205 \306	\"\306\203 T\202 	\"\n\205 \307\n!\n\203' \205, \310\fB!+\207" [colon name-start prefix name-end local-name ns buffer-substring-no-properties nxml-ns-get-prefix rng-match-attribute-name] 3])
(defalias 'rng-complete-qname-function #[(string predicate flag) "\304\305\306!\"\n\204 \307	#\202/ \n\310=\203! \311	#\202/ \n\312=\205/ \313	\"\205/ \310)\207" [string alist flag predicate mapcar #[(name) "\301B\207" [name nil] 2] rng-generate-qname-list try-completion t all-completions lambda assoc] 4])
(defalias 'rng-generate-qname-list #[(&optional string) "\205 \306\307\"\205 \310\224\310V\205 \310\211\224O\311\312	\"\313\211\211\211\211\203O @\211\203C \314\"BB\315A\"\211\204/ \211\203\232 \f@\211@A\204\223 \203z \203\223 \316!\204\223 C\241\210\202\223 \317!\211\203\207 \nC\241\210\204\223 \313AB\241\210\fA\211\204V \320\321\322\323\311\324	\"B\"\325\"!.\207" [string rng-complete-target-names prefer ns iter ns-prefixes string-match ":" 0 mapcar car nil nxml-ns-prefixes-for delq nxml-ns-get-prefix rng-get-preferred-unused-prefix rng-uniquify-equal sort apply append #[(name) "@\203 \302\303\304@	\"A\"\207AC\207" [name ns-prefixes-alist mapcar #[(prefix) "\203\n \302	AQ\207	A\207" [prefix name ":"] 3] assoc] 5] string< ns-prefixes-alist namespaces forced-prefix rng-complete-name-attribute-flag rng-complete-extra-strings] 9])
(defalias 'rng-get-preferred-unused-prefix #[(ns) "\305\306!	\"\307\211\211\203> \fA\310\n!\203> \f	>\203> \305\"\211\203> \310\fA!\2038 \f>\211\202 \fA\202 \n+\207" [ns rng-preferred-prefix-alist prefix iter ns-prefix assoc symbol-name nil nxml-ns-get-prefix] 4])
(defalias 'rng-strings-to-completion-alist #[(strings) "\301\302\303\304\301\305\"\306\"!\"\207" [strings mapcar #[(s) "\211B\207" [s] 2] rng-uniquify-equal sort rng-escape-string string<] 7])
(provide 'rng-nxml)
