MMCT TEAM
Server IP : 111.118.215.189  /  Your IP : 18.217.89.171
Web Server : Apache
System : Linux md-in-83.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64
User : a1673wkz ( 2475)
PHP Version : 8.2.25
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /usr/share/emacs/24.3/lisp/nxml/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : //usr/share/emacs/24.3/lisp/nxml/rng-valid.elc
;ELC
;;; Compiled by mockbuild@buildfarm06-new.corp.cloudlinux.com on Fri Oct 11 10:08:33 2024
;;; from file /builddir/build/BUILD/emacs-24.3/lisp/nxml/rng-valid.el
;;; in Emacs version 24.3.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.

;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.

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


(byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\300\306!\210\300\307!\210\310\311\312\313\314\315\314\316\314\317&	\210\320\321\322\323\314\311%\210\324\325\326\327\330\331\314\311&\210\324\332\333\334\330\331\314\311&\210\324\335\336\337\330\340\314\311&\210\324\341\342\343\330\340\314\311&\207" [require xmltok nxml-enc nxml-util nxml-ns rng-match rng-util rng-loc custom-declare-group relax-ng nil "Validation of XML using RELAX NG." :group wp nxml languages custom-declare-face rng-error ((t (:inherit font-lock-warning-face))) "Face for highlighting XML errors." custom-declare-variable rng-state-cache-distance 2000 "Distance in characters between each parsing and validation state cache." :type integer rng-validate-chunk-size 8000 "Number of characters in a RELAX NG validation chunk.\nA validation chunk will be the smallest chunk that is at least this\nsize and ends with a tag.  After validating a chunk, validation will\ncontinue only if Emacs is still idle." rng-validate-delay 1.5 "Time in seconds that Emacs must be idle before starting a full validation.\nA full validation continues until either validation is up to date\nor Emacs is no longer idle." number rng-validate-quick-delay 0.3 "Time in seconds that Emacs must be idle before starting a quick validation.\nA quick validation validates at most one chunk."] 10)
(defvar rng-validate-timer nil)
(byte-code "\300\301!\210\302\301\303\304#\207" [make-variable-buffer-local rng-validate-timer put permanent-local t] 4)
(defvar rng-validate-quick-timer nil)
(byte-code "\300\301!\210\302\301\303\304#\207" [make-variable-buffer-local rng-validate-quick-timer put permanent-local t] 4)
#@103 Number of errors in the current buffer.
Always equal to number of overlays with category `rng-error'.
(defvar rng-error-count nil (#$ . 2247))
(make-variable-buffer-local 'rng-error-count)
#@88 Overlay in this buffer whose `help-echo' property was last printed.
It is nil if none.
(defvar rng-message-overlay nil (#$ . 2442))
(make-variable-buffer-local 'rng-message-overlay)
#@237 Position at which message from overlay should be inhibited.
If point is equal to this and the error overlay around
point is `rng-message-overlay', then the `help-echo' property
of the error overlay should not be printed with `message'.
(defvar rng-message-overlay-inhibit-point nil (#$ . 2631))
(make-variable-buffer-local 'rng-message-overlay-inhibit-point)
#@64 Non-nil if `rng-message-overlay' is still the current message.
(defvar rng-message-overlay-current nil (#$ . 2996))
(make-variable-buffer-local 'rng-message-overlay-current)
#@212 Stack of names of open elements represented as a list.
Each member of the list is either t or a (PREFIX . LOCAL-NAME) pair.
(PREFIX . LOCAL-NAME) is pushed for a start-tag; t is pushed
for a mismatched end-tag.
(defvar rng-open-elements nil (#$ . 3177))
#@319 Text content of current element that has yet to be processed.
Value is a list of segments (VALUE START END) positions in reverse
order.  VALUE is a string or nil.  If VALUE is nil, then the value is
the string between START and END.  A segment can also be nil
indicating an unresolvable entity or character reference.
(defvar rng-pending-contents nil (#$ . 3438))
(defvar rng-collecting-text nil)
#@59 Last position where validation is known to be up to date.
(defvar rng-validate-up-to-date-end nil (#$ . 3841))
(make-variable-buffer-local 'rng-validate-up-to-date-end)
#@500 Marker for the start of the conditionally up-to-date region.
It is nil if there is no conditionally up-to-date region.  The
conditionally up-to-date region must be such that for any cached
state S with position P in the conditionally up-to-date region,
if at some point it is determined that S becomes correct for P,
then all states with position >= P in the conditionally up to
date region must also then be correct and all errors between P
and the end of the region must then be correctly marked.
(defvar rng-conditional-up-to-date-start nil (#$ . 4017))
(make-variable-buffer-local 'rng-conditional-up-to-date-start)
#@171 Marker for the end of the conditionally up-to-date region.
It is nil if there is no conditionally up-to-date region.
See the variable `rng-conditional-up-to-date-start'.
(defvar rng-conditional-up-to-date-end nil (#$ . 4644))
(make-variable-buffer-local 'rng-conditional-up-to-date-end)
#@96 Non-nil means we are currently parsing just to compute the state.
Should be dynamically bound.
(defvar rng-parsing-for-state nil (#$ . 4937))
(defvar rng-validate-mode nil)
(make-variable-buffer-local 'rng-validate-mode)
(defvar rng-dtd nil)
(make-variable-buffer-local 'rng-dtd)
#@1208 Minor mode performing continual validation against a RELAX NG schema.

Checks whether the buffer is a well-formed XML 1.0 document,
conforming to the XML Namespaces Recommendation and valid against a
RELAX NG schema.  The mode-line indicates whether it is or not.  Any
parts of the buffer that cause it not to be are considered errors and
are highlighted with face `rng-error'.  A description of each error is
available as a tooltip.  \[rng-next-error] goes to the next error
after point.  Clicking mouse-1 on the word `Invalid' in the mode-line
goes to the first error in the buffer.  If the buffer changes, then it
will be automatically rechecked when Emacs becomes idle; the
rechecking will be paused whenever there is input pending.

By default, uses a vacuous schema that allows any well-formed XML
document.  A schema can be specified explicitly using
\[rng-set-schema-file-and-validate], or implicitly based on the buffer's
file name or on the root element name.  In each case the schema must
be a RELAX NG schema using the compact schema (such schemas
conventionally have a suffix of `.rnc').  The variable
`rng-schema-locating-files' specifies files containing rules
to use for finding the schema.
(defalias 'rng-validate-mode #[(&optional arg no-change-schema) "\204		?\202\306!\307V\214~\210\310 \311\211\211\312\211\211\313\216\314ed\"\210.\315edT\"\210e )\316 \210\307!\317\320\321\311#\210	\203b\322\216\212\"\203]\"#=\205`$?\205`\323\311!*\207\324 \210\325 \210\317\326\324\311#\210\317\327\330\311#\210\317\331\332\311#\210\317\333\334\311#\207" [arg rng-validate-mode buffer-file-truename buffer-file-name deactivate-mark buffer-undo-list prefix-numeric-value 0 buffer-modified-p t nil ((byte-code "\204\301\302!\210\302\207" [#1=#:modified restore-buffer-modified-p nil] 2)) rng-clear-cached-state rng-clear-overlays rng-clear-conditional-region remove-hook rng-schema-change-hook rng-validate-clear ((byte-code "\204\301\302!\210\303\304\305\302\306$\210\303\307\310\302\306$\210\303\311\312\302\306$\210\303\313\314\302\306$\210\303\315\316\302\306$\210\317 \210\320 \210\321p\322\"\203<\323p!\210\302\207" [rng-current-schema rng-set-schema-file-1 nil add-hook rng-schema-change-hook rng-validate-clear t after-change-functions rng-after-change-function kill-buffer-hook rng-kill-timers echo-area-clear-hook rng-echo-area-clear-function post-command-hook rng-maybe-echo-error-at-point rng-match-init-buffer rng-activate-timers get-buffer-window visible rng-validate-while-idle] 5)) rng-auto-set-schema rng-cancel-timers force-mode-line-update kill-buffer-hook post-command-hook rng-maybe-echo-error-at-point echo-area-clear-hook rng-echo-area-clear-function after-change-functions rng-after-change-function inhibit-modification-hooks inhibit-read-only #1# rng-validate-up-to-date-end rng-error-count rng-current-schema rng-any-element no-change-schema] 7 (#$ . 5225) "P"])
#@110 Sets the schema and turns on `rng-validate-mode' if not already on.
The schema is set like `rng-set-schema'.
(defalias 'rng-set-schema-file-and-validate #[(filename) "\302!\210	\206\n\301 \207" [filename rng-validate-mode rng-set-schema-file] 2 (#$ . 8160) "fSchema file: "])
(defalias 'rng-set-document-type-and-validate #[(type-id) "\302!\205\f	\206\f\301 \207" [type-id rng-validate-mode rng-set-document-type] 2 nil (list (rng-read-type-id))])
#@125 Set the schema for this buffer automatically and turn on `rng-validate-mode'.
The schema is set like `rng-auto-set-schema'.
(defalias 'rng-auto-set-schema-and-validate #[nil "\301 \210\206	\300 \207" [rng-validate-mode rng-auto-set-schema] 1 (#$ . 8620) nil])
(defalias 'rng-after-change-function #[(start end pre-change-len) "\306\307 \310\211\211\306\211\211\311\216\312\"\210.W\203C\\X\203?\313#\\\202A\203hW\203~W\203b\306\223\210\202~\314 \210\202~W\203~\315\306\"\315\310\"W\203\212dY\203\246edW\203\234dS\202\244\214~\210edS])\316 \210\317 \207" [rng-message-overlay-inhibit-point buffer-file-truename buffer-file-name deactivate-mark buffer-undo-list inhibit-modification-hooks nil buffer-modified-p t ((byte-code "\204\301\302!\210\302\207" [#1=#:modified restore-buffer-modified-p nil] 2)) rng-clear-cached-state - rng-clear-conditional-region copy-marker rng-activate-timers force-mode-line-update inhibit-read-only #1# start end rng-validate-up-to-date-end pre-change-len rng-conditional-up-to-date-start rng-conditional-up-to-date-end] 7])
(defalias 'rng-compute-mode-line-string #[nil "\203 \303\304\305\306 \307=\203\310\202	eZ\311_deZ\245!!\312Q\207\n\307V\2033\313\314\315\316\317\320\321\322\323\"%P\207\324\207" [rng-validate-timer rng-validate-up-to-date-end rng-error-count " Validated:" number-to-string floor buffer-size 0 0.0 100.0 "%%" " " propertize "Invalid" help-echo "mouse-1: go to first error" local-map make-mode-line-mouse-map mouse-1 rng-mouse-first-error " Valid"] 9])
(defalias 'rng-cancel-timers #[nil "\303	\203\f\304	!\210\305\n\205\304\n!\210\305\211)\207" [inhibit-quit rng-validate-timer rng-validate-quick-timer t cancel-timer nil] 2])
(defalias 'rng-kill-timers #[nil "\302\300!\203\203\303!\210\304\300!\210\302\301!\205#	\203 \303	!\210\304\301!\207" [rng-validate-timer rng-validate-quick-timer local-variable-p cancel-timer kill-local-variable] 2])
(defalias 'rng-activate-timers #[nil "?\205\305\306\n\305\307p$\306\305\310p$\211)\207" [rng-validate-timer inhibit-quit rng-validate-delay rng-validate-quick-delay rng-validate-quick-timer t run-with-idle-timer rng-validate-while-idle rng-validate-quick-while-idle] 5])
(defalias 'rng-validate-clear #[nil "\300\301\302\"\207" [rng-validate-mode 1 t] 3])
(defvar rng-validate-display-point nil)
(defvar rng-validate-display-modified-p nil)
(defalias 'rng-validate-while-idle-continue-p #[nil "\305\306 ?\205!`\nb\210\204\307\305!\210\310 \210\311\312!	b\210\f*)\207" [timer-idle-list rng-validate-up-to-date-end rng-validate-display-point rng-validate-display-modified-p continue nil input-pending-p restore-buffer-modified-p force-mode-line-update sit-for 0] 2])
(defalias 'rng-validate-while-idle #[(buffer) "rq\210	\203`\304 \305\306!*\203\307 \202 \310 \202 \311 )\207" [buffer rng-validate-mode rng-validate-display-modified-p rng-validate-display-point buffer-modified-p rng-do-some-validation rng-validate-while-idle-continue-p force-mode-line-update rng-validate-done rng-kill-timers] 2])
(defalias 'rng-validate-quick-while-idle #[(buffer) "rq\210	\203\302 \203\303 \202\304 \202\305 )\207" [buffer rng-validate-mode rng-do-some-validation force-mode-line-update rng-validate-done rng-kill-timers] 1])
(defalias 'rng-validate-done #[nil "\300 \203\n\301 \203\302\303`!\206\303`S!!\210\304 \210\305 \207" [current-message rng-current-message-from-error-overlay-p rng-error-overlay-message rng-error-overlay-after rng-cancel-timers force-mode-line-update] 3])
#@66 Do some validation work.  Return t if more to do, nil otherwise.
(defalias 'rng-do-some-validation #[(&optional continue-p-function) "\212\214~\210\303\304\n\203	 \202\305\306\307\217,\207" [inhibit-point-motion-hooks #1=#:body debug-on-error t #[nil "\306 \205 \307\310 \311\211\211\312\211\211
\313\216\314!.	\207" [rng-dt-namespace-context-getter buffer-file-truename buffer-file-name deactivate-mark buffer-undo-list inhibit-modification-hooks rng-validate-prepare (nxml-ns-get-context) buffer-modified-p t nil ((byte-code "\204\301\302!\210\302\207" [#2=#:modified restore-buffer-modified-p nil] 2)) rng-do-some-validation-1 inhibit-read-only #2# continue-p-function] 7] err (funcall #1#) ((rng-compile-error (byte-code "\301\302A@\"\210\303\304!\210\305\207" [err message "Incorrect schema. %s" rng-validate-mode 0 nil] 3)) (error (byte-code "\301\302`\303!#\210\304\305!\210\306\207" [err message "Internal error in rng-validate-mode triggered at buffer position %d. %s" error-message-string rng-validate-mode 0 nil] 5)))] 3 (#$ . 12242)])
#@114 Prepare to do some validation, initializing point and the state.
Return t if there is work to do, nil otherwise.
(defalias 'rng-validate-prepare #[nil "eU\203\303 \210\304\207dU\203\305\207\306S\307\"\211\203&\310	!\210b\202E\311\307\"\211\203B\310\306\nS\307\"\206;\312\313!!\210\nb\202D\303 ))\207" [rng-validate-up-to-date-end state pos rng-set-initial-state t nil get-text-property rng-state rng-restore-state previous-single-property-change error "Internal error: state null"] 5 (#$ . 13319)])
#@70 Check whether the current dtd is different from the trivial default.
(defalias 'rng-dtd-trivial-p #[(dtd) "?\206	=\207" [dtd xmltok-predefined-entity-alist] 2 (#$ . 13840)])
(defalias 'rng-do-some-validation-1 #[(&optional continue-p-function) "	\\`\n\\\306\307\211\211\211\211\211\211\211\211\211 !\"#$%&'`\310U\203q\311 (\312\310`\"\210(\203c(@\313H\314=\203Z\315(@\310H(@\316H\"\210(A\211(\204C)#\232\204n\317 \210#$\203r\320 \"`)\"\205\240)'W\206\240*\205\240* \205\240'	\\\211'\205\240\306$+\203\354)+V\203\354),W\203\354\321\322)S\323\"!\203\354&)SW\203\323\324&)S\"\210\307$\325 \210\326 \210\327,!\317 \210dW\"\202n)%Y\204\371$\204n)\n\\%\324&)\"\210\"\203\330)S!\210)&$\204n\"\203;\331\307w\210`dU\203;\312)`\"\210\324)`\"\210\307\"`)\"\204C\332 \210\325 \210\326 \210),\203n,)X\203_\317 \210\202n+)W\203n+)\307\223\210)\202q\".\207" [rng-validate-up-to-date-end rng-validate-chunk-size rng-state-cache-distance rng-dtd xmltok-errors xmltok-dependent-regions t nil 1 xmltok-forward-prolog rng-clear-overlays 0 encoding-name rng-process-encoding-name 2 rng-clear-conditional-region rng-forward rng-state-matches-current get-text-property rng-state rng-clear-cached-state rng-mark-xmltok-errors rng-mark-xmltok-dependent-regions marker-position rng-cache-state " 	
\n" rng-process-end-document xmltok-namespace-attributes xmltok-attributes xmltok-replacement xmltok-name-end xmltok-name-colon xmltok-start xmltok-type have-remaining-chars xmltok-dtd continue next-cache-point remove-start limit regions pos continue-p-function rng-conditional-up-to-date-start rng-conditional-up-to-date-end] 16])
(defalias 'rng-clear-conditional-region #[nil "\203\302\211\223\210\302	\205	\302\211\223\210\302\211\207" [rng-conditional-up-to-date-start rng-conditional-up-to-date-end nil] 3])
#@43 Clear cached state between START and END.
(defalias 'rng-clear-cached-state #[(start end) "\302	\303#\207" [start end remove-text-properties (rng-state nil)] 4 (#$ . 15762)])
#@68 Save the current state in a text property on the character at pos.
(defalias 'rng-cache-state #[(pos) "\301\211T\302\303 $\207" [pos put-text-property rng-state rng-get-state] 5 (#$ . 15944)])
(defalias 'rng-state-matches-current #[(state) "\205@\211	)=\205A@\n\232)\205\3048\232\207" [state rng-match-state nxml-ns-state rng-open-elements 2] 3])
(defalias 'rng-get-state #[nil "	\nE\207" [rng-match-state nxml-ns-state rng-open-elements] 3])
(defalias 'rng-restore-state #[(state) "@\211\211)\210A\211@\211\211)\210\211A@)\306\307 \211\207" [state rng-match-state nxml-ns-state x rng-open-elements rng-pending-contents nil rng-match-text-typed-p rng-collecting-text] 3])
(defalias 'rng-set-initial-state #[nil "\302 \210\303 \210\304\211eb\207" [rng-open-elements rng-pending-contents nxml-ns-init rng-match-start-document nil] 2])
(defalias 'rng-clear-overlays #[(beg end) "?\205X\306	\n\"\211\205W@\307\f\305\"\211\310=\203<\311\f=\203*\312\313!\210\314\f!\210\2038S)\202N
\315=\203N	\316\f!X\203N\314\f!\210*A\211\204\313)\207" [rng-parsing-for-state beg end overlays overlay category overlays-in overlay-get rng-error t rng-error-overlay-message nil delete-overlay rng-dependent overlay-start inhibit-quit rng-message-overlay rng-error-count] 4])
(defalias 'rng-mark-xmltok-dependent-regions #[nil "\205\301\302@\"\210A\211\204\303\207" [xmltok-dependent-regions apply rng-mark-xmltok-dependent-region nil] 4])
(defalias 'rng-mark-xmltok-dependent-region #[(fun start end &rest args) "\305	\306\307\211%\310\n\311\312#\210\310\n\313\fB#)\207" [start end overlay fun args make-overlay nil t overlay-put category rng-dependent rng-funargs] 6])
(byte-code "\300\301\302\303#\210\300\301\304\305#\210\300\301\306\307#\207" [put rng-dependent evaporate t modification-hooks (rng-dependent-region-changed) insert-behind-hooks (rng-dependent-region-changed)] 4)
(defalias 'rng-dependent-region-changed #[(overlay after-p change-start change-end &optional pre-change-length) "\205B\306	!\205B\307	\310\"\311 \312\216\212\214~\210\313\n@\314\f
\306	!\315	!\257\nA\"\"-\205B\316\306	!
\306	!\fZ\\#\210\317	!\207" [after-p overlay funargs save-match-data-internal change-start change-end overlay-start overlay-get rng-funargs match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) apply append overlay-end rng-after-change-function delete-overlay pre-change-length] 9])
(defalias 'rng-mark-xmltok-errors #[nil "\205%@\302	\211\303H)	\211\304H)	\211\305H)#\210)A\211\204\306\207" [xmltok-errors err rng-mark-not-well-formed 0 1 2 nil] 6])
(defalias 'rng-mark-invalid #[(message beg end) "\303	\n#\207" [message beg end rng-mark-error] 4])
(defalias 'rng-mark-not-well-formed #[(message beg end) "\303	\n#\207" [message beg end rng-mark-error] 4])
(defalias 'rng-mark-error #[(message beg end) "?\205q\306	\n\"\211\203D\f\203D@\307
\310\"\311=\203<\312
!	U\203<\313
!\nU\203<\314
\315\307
\315\"\316\fQ#\210\317)A\211\204)\f\205q\320T\321	\n\317\320	\nU%\314\322	#\210\314\310\311#\210\314\315\f#*\207" [rng-parsing-for-state beg end overlays message o overlays-in overlay-get category rng-error overlay-start overlay-end overlay-put help-echo "\n" nil t make-overlay priority inhibit-quit rng-error-count overlay] 8])
(byte-code "\300\301\302\301#\210\300\301\303\304#\207" [put rng-error face modification-hooks (rng-error-modified)] 4)
(defalias 'rng-error-modified #[(overlay after-p beg end &optional pre-change-len) "\205\304	!\205\304	!\305	!Y\205\306\307	!\210S\211)\207" [after-p overlay inhibit-quit rng-error-count overlay-start overlay-end t delete-overlay] 3])
(defalias 'rng-echo-area-clear-function #[nil "\301\211\207" [rng-message-overlay-current nil] 2])
(defalias 'rng-maybe-echo-error-at-point #[nil "\300 \203\n\301 \205\302\303`!!\207" [current-message rng-current-message-from-error-overlay-p rng-error-overlay-message rng-error-overlay-after] 3])
(defalias 'rng-error-overlay-after #[(pos) "\304\211T\"\305\211\2030\n@\306\307\"\310=\203(	\203&\311	!\311!W\203()\nA\211\204\f	*\207" [pos best overlays overlay overlays-in nil overlay-get category rng-error overlay-start] 4])
#@88 Go to the first validation error.
Turn on `rng-validate-mode' if it is not already on.
(defalias 'rng-first-error #[nil "\204\300 \210\303 \210\304eS!\211\203\305	!\202)\212eb\210\306\307!)\211\205(\nb))\207" [rng-validate-mode err pos rng-do-some-validation rng-find-next-error-overlay rng-goto-error-overlay rng-next-error 1] 3 (#$ . 20235) nil])
#@54 Go to the first validation error from a mouse click.
(defalias 'rng-mouse-first-error #[(event) "\302\303!\211@)!\210\304 \207" [event position select-window event-start rng-first-error] 4 (#$ . 20599) "e"])
#@247 Go to the next validation error after point.
Turn on `rng-validate-mode' if it is not already on.
A prefix ARG specifies how many errors to move.
A negative ARG moves backwards.  Just \[universal-argument] as a prefix
means goto the first error.
(defalias 'rng-next-error #[(arg) ":\203\302 \207	\204\301 \210\303!\211\304W\203\305[!\207\306!\207" [arg rng-validate-mode rng-first-error prefix-numeric-value 0 rng-previous-error-1 rng-next-error-1] 3 (#$ . 20816) "P"])
#@251 Go to the previous validation error before point.
Turn on `rng-validate-mode' if it is not already on.
A prefix ARG specifies how many errors to move.
A negative ARG moves forwards.  Just \[universal-argument] as a prefix
means goto the first error.
(defalias 'rng-previous-error #[(arg) ":\203\302 \207	\204\301 \210\303!\211\304W\203\305[!\207\306!\207" [arg rng-validate-mode rng-first-error prefix-numeric-value 0 rng-next-error-1 rng-previous-error-1] 3 (#$ . 21304) "P"])
(defalias 'rng-next-error-1 #[(arg) "`\306\211\307V\203 \310!\211\203 S	\311	!\202\307V\203w\fS]\fdW\203w\312\313!\210\314 \307V\203R\310!\211\203RS	\311	!\2028\307V\205s
\205s\fdW\205s\315 \210\306\316\307!\210)\fS]\317)\2045\n\203\201\320\n!\202\206\312\321!\210\306+\207" [pos err last-err arg rng-validate-up-to-date-end more-to-do nil 0 rng-find-next-error-overlay overlay-start message "Parsing..." rng-do-some-validation force-mode-line-update sit-for t rng-goto-error-overlay "No more errors" timer-idle-list] 3])
(defalias 'rng-previous-error-1 #[(arg) "`\306\211\307V\203!\310!\211\203!\311	!	S\211\202\307V\203h\fd^W\203h\312\313!\210\314 \203M\fd^W\203M\315 \210\306\316\307!\210)\2023\307V\203h\310!\211\203h\311	!	S\211\202N\n\203r\317\n!\202w\312\320!\210\306+\207" [pos err last-err arg rng-validate-up-to-date-end timer-idle-list nil 0 rng-find-previous-error-overlay overlay-start message "Parsing..." rng-do-some-validation force-mode-line-update sit-for rng-goto-error-overlay "No previous errors"] 4])
#@60 Goto the start of error overlay ERR and print its message.
(defalias 'rng-goto-error-overlay #[(err) "\302!b\210\303\304!\207" [err rng-message-overlay-inhibit-point overlay-start nil rng-error-overlay-message] 2 (#$ . 22898)])
(defalias 'rng-error-overlay-message #[(err) "\203%	`=\203\n=\2040d\304U\2040\305\306\307\310\"\"\210\311`\2020\312 \203.\305\313!\210\313\211\207" [err rng-message-overlay-inhibit-point rng-message-overlay rng-message-overlay-current 1 message "%s" overlay-get help-echo t rng-current-message-from-error-overlay-p nil] 5])
(defalias 'rng-current-message-from-error-overlay-p #[nil "\205	\205\302	\303\"\304 \232\207" [rng-message-overlay-current rng-message-overlay overlay-get help-echo current-message] 3])
#@157 Return the overlay for the next error starting after POS.
Return nil if there is no such overlay or it is out of date.
Do not do any additional validation.
(defalias 'rng-find-next-error-overlay #[(pos) "\205\\\306\211\211\204Z	\203:	@	A\307\f\310\"\311=\2036\312\f!
U\2036\313\f!X\2036\314\f)\202\n
dU\204K\315
!\211V\203Q\314\211\202\316
\211T\"\202\n\n+\207" [rng-error-count overlays found done overlay pos nil overlay-get category rng-error overlay-start overlay-end t next-overlay-change overlays-in rng-validate-up-to-date-end] 4 (#$ . 23666)])
#@158 Return the overlay for the last error starting before POS.
Return nil if there is no such overlay or it is out of date.
Do not do any additional validation.
(defalias 'rng-find-previous-error-overlay #[(pos) "\205V	\nX\205V\306\211\211
\204T\203;@A\307\310\"\311=\2037\312!	U\2037\313)\202	eU\203G\313\211\202\314	!\315	\211T\"\202\f+\207" [rng-error-count pos rng-validate-up-to-date-end overlays found done nil overlay-get category rng-error overlay-start t previous-overlay-change overlays-in overlay] 4 (#$ . 24253)])
#@203 Move forward over one or more tokens updating the state.
If LIMIT is nil, stop after tags.
If LIMIT is non-nil, stop when end of last token parsed is >= LIMIT.
Return nil at end of buffer, t otherwise.
(defalias 'rng-forward #[(&optional limit) "\305\306 \307	`\"\210\310=\203\311\310!\210\305\202\271\312=\203%\313 \210\305\202\271\314=\2033\311\314!\210\305\202\271\315=\203C\316	\305\317#\210\317\202\271\320=\203S\316	\305\211#\210\317\202\271\321>\203z\n\203g\316	\305\322\n$\210\202v\323=\203s\324 \210\202v\325 \210\317\202\271\326=\203\216\316	\327\\`\330Z\322#\210\317\202\271\331=\203\234\311\331!\210\317\202\271\332=\203\252\311\314!\210\317\202\271\333=\203\270\313\334!\210\317\202\271\f\203\304`\fW\202\305)\204\205\316\317)\207" [type xmltok-start xmltok-replacement continue limit nil xmltok-forward rng-clear-overlays start-tag rng-process-start-tag end-tag rng-process-end-tag empty-element space rng-process-text t data (entity-ref char-ref) maybe char-ref rng-process-unknown-char rng-process-unknown-entity cdata-section 9 3 partial-start-tag partial-empty-element partial-end-tag partial] 5 (#$ . 24816)])
#@140 TAG-TYPE is `start-tag' for a start-tag, `empty-element' for
an empty element.  `partial-empty-element' should be passed
as empty-element.
(defalias 'rng-process-start-tag #[(tag-type) "\203\304 \210\305\211\306 \210\307 \310 \210\311=\203.\312 \210\313 \204)\314 \210\315\316!\210\317 \202N\320=\203@\312 \210\321 \322\n!\202N\323=\205N\312 \210\314 \210\317 )\207" [rng-collecting-text rng-pending-contents tag tag-type rng-flush-text nil rng-process-namespaces rng-process-tag-name rng-process-attributes empty-element rng-process-start-tag-close rng-match-empty-content rng-match-after rng-mark-start-tag-close "Empty content not allowed" nxml-ns-pop-state start-tag rng-match-text-typed-p rng-push-tag partial-start-tag] 3 (#$ . 25999)])
(defalias 'rng-process-namespaces #[nil "\306\307 \210\n\205x\n@\310!\211\203o\311\f!\312!\205\"\313!
	\235\203>\314\315\211\316H)\211\317H)#\210\202j
\204J\320!\210\202j\203X\321
\"\210\202j\314\322\211\323H)S\211\324H)T#\210
	B**\nA\211\204\306*\207" [xmltok-namespace-attributes prefixes nsatts att value prefix nil nxml-ns-push-state xmltok-attribute-value nxml-make-namespace xmltok-attribute-prefix xmltok-attribute-local-name rng-mark-invalid "Duplicate namespace declaration" 0 2 nxml-ns-set-default nxml-ns-set-prefix "Namespace prefix cannot be undeclared" 3 4 ns] 6])
(defalias 'rng-process-tag-name #[nil "\304 \305 \203A\306!\211\203\n	B\202=\307	!\211\2039\310\n	B!\2039\311\n\"\210\312\313\314\n!#\210\315\202=\316 \210\315)\202E\317 	B\211\203z\310!\204z@\204v\307A!\211\205r\310\n	B!\205r\320\n!\210\312\321\314\n!\"\210\322)\204z\323!\210	+B\207" [prefix local-name ns name xmltok-start-tag-prefix xmltok-start-tag-local-name nxml-ns-get-prefix rng-match-infer-start-tag-namespace rng-match-start-tag-open nxml-ns-set-prefix rng-mark-start-tag-close "Missing xmlns:%s=\"%s\"" nxml-namespace-name nil rng-recover-bad-element-prefix nxml-ns-get-default nxml-ns-set-default "Missing xmlns=\"%s\"" t rng-recover-start-tag-open] 6])
(defalias 'rng-process-attributes #[nil "\306\211\205\216\n@\307!\310!\f\203(\311\f!\211\205$
B)\202+\306
B\211\2048\312!\210\202\200	\235\203F\313!\210\202\200\314!\204T\315!\210\202\200\316 \203w\317!\211\203p\320!\204s\321!\210\202s\322 \210)\202\200\323 \204\200\324\325!\210	B,\nA\211\204\306*\207" [xmltok-attributes names atts att prefix local-name nil xmltok-attribute-prefix xmltok-attribute-local-name nxml-ns-get-prefix rng-recover-bad-attribute-prefix rng-recover-duplicate-attribute-name rng-match-attribute-name rng-recover-attribute-name rng-match-text-typed-p xmltok-attribute-value rng-match-attribute-value rng-recover-attribute-value rng-match-after rng-match-end-tag error "Internal error: invalid on untyped attribute value" ns name value] 3])
(defalias 'rng-process-start-tag-close #[nil "\300 ?\205
\301\302 !\210\303 \207" [rng-match-start-tag-close rng-mark-start-tag-close rng-missing-attributes-message rng-match-ignore-attributes] 2])
(defalias 'rng-mark-start-tag-close #[(&rest args) "\302=?\205\303\304\305	\"`\306=\203\307\202\310Z`#\207" [xmltok-type args partial-start-tag rng-mark-invalid apply format empty-element 2 1] 5])
(defalias 'rng-recover-bad-element-prefix #[nil "\302\303T	#\210\304 \207" [xmltok-start xmltok-name-colon rng-mark-invalid "Prefix not declared" rng-match-unknown-start-tag-open] 4])
(defalias 'rng-recover-bad-attribute-prefix #[(att) "\301\302\211\303H)\211\304H)#\207" [att rng-mark-invalid "Prefix not declared" 0 1] 6])
(defalias 'rng-recover-duplicate-attribute-name #[(att) "\301\302\211\303H)\211\304H)#\207" [att rng-mark-invalid "Duplicate attribute" 0 2] 6])
(defalias 'rng-recover-start-tag-open #[(name) "\304 \211\203'\305!\203'\306 \203'\305	!\203'\307\310\311\312!!P\n\211T#\202S\313 \203;\305	!\203;\307\314\n\211T#\202S\315	!\203J\307\316\nT#\202S\317 \210\307\320\nT#)\207" [required name xmltok-start xmltok-name-end rng-match-required-element-name rng-match-start-tag-open rng-match-after rng-mark-invalid "Missing element " rng-quote-string rng-name-to-string rng-match-optionalize-elements "Required elements missing" rng-match-out-of-context-start-tag-open "Element not allowed in this context" rng-match-unknown-start-tag-open "Unknown element"] 6])
(defalias 'rng-recover-attribute-value #[(att) "\211\303H)\211\304H)\211	U\203\305\306\n	T#\210\202$\305\307\n	#\210*\310 \207" [att end start 3 4 rng-mark-invalid "Empty attribute value invalid" "Attribute value invalid" rng-match-after] 5])
(defalias 'rng-recover-attribute-name #[(att) "\301\302\211\303H)\211\304H)#\207" [att rng-mark-invalid "Attribute not allowed" 0 2] 6])
(defalias 'rng-missing-attributes-message #[nil "\301 \211\204\302\202#A\204\303\304\305@\306\"!P\202#\307\310\311\312#P)\207" [required-attributes rng-match-required-attribute-names "Required attributes missing" "Missing attribute " rng-quote-string rng-name-to-string t "Missing attributes " mapconcat #[(nm) "\301\302\303\"!\207" [nm rng-quote-string rng-name-to-string t] 4] ", "] 6])
(defalias 'rng-process-end-tag #[(&optional partial) "\204\n\303\304	`#\207\n\204\305 \306 B@\232\203\307 \207\310 \207" [rng-open-elements xmltok-start partial rng-mark-not-well-formed "Extra end-tag" xmltok-end-tag-prefix xmltok-end-tag-local-name rng-end-element rng-recover-mismatched-end-tag] 4])
(defalias 'rng-end-element #[nil "\203=\306 \211\204\307 \210\2025\310	!\2045\311 \211\204)\312\313\211\314\\#\210\2021\312\315\n@\nA#\210)\307 \210\316\211)\202N\317 \204N\312\320 \211\314\\#\210\307 \210\321 \210
@\322=\203[\323 \210\323 \207" [rng-collecting-text contents region xmltok-start rng-pending-contents rng-open-elements rng-contents-string rng-match-after rng-match-element-value rng-contents-region rng-mark-invalid "Empty content not allowed" 2 "Invalid data" nil rng-match-end-tag rng-missing-element-message nxml-ns-pop-state t rng-pop-tag] 6])
(defalias 'rng-missing-element-message #[nil "\301 \211\203\302\303\304!!P\202\305)\207" [element rng-match-required-element-name "Missing element " rng-quote-string rng-name-to-string "Required child elements missing"] 5])
(defalias 'rng-recover-mismatched-end-tag #[nil "\305 \306 B\211	A\235\203?	@\307=\310\211	@\311 \210\f\307=\204,\fB\312 \210\313 \210\f\232\203\n?\205;\314A!+\202T\315 \203L\316 \210\317 \202T\316 \210\307	B\211)\207" [name rng-open-elements suppress-error missing top xmltok-end-tag-prefix xmltok-end-tag-local-name t nil rng-pop-tag nxml-ns-pop-state rng-match-after rng-mark-missing-end-tags rng-match-empty-before-p rng-mark-mismatched-end-tag rng-end-element] 3])
(defalias 'rng-mark-missing-end-tags #[(missing) "\302\303\304A\204\f\305\202
\306\307\310\311##	\211\312\\#\207" [missing xmltok-start rng-mark-not-well-formed format "Missing end-tag%s %s" "" "s" mapconcat #[(name) "\301@\203@\302AQ\202A!\207" [name rng-quote-string ":"] 4] ", " 2] 8])
(defalias 'rng-mark-mismatched-end-tag #[nil "\302\303\304\\	#\207" [xmltok-start xmltok-name-end rng-mark-not-well-formed "Mismatched end-tag" 2] 4])
(defalias 'rng-push-tag #[(prefix-local-name) "	B\211\207" [prefix-local-name rng-open-elements] 2])
(defalias 'rng-pop-tag #[nil "A\211\207" [rng-open-elements] 2])
(defalias 'rng-contents-string #[nil "\211\204\n\302\202(\303	>\203\303\202(	A\204 \304	@!\202(\305\306\307\304	\"\237\")\207" [rng-pending-contents contents "" nil rng-segment-string apply concat mapcar] 6])
(defalias 'rng-segment-string #[(segment) "@\206\n\301\302A\"\207" [segment apply buffer-substring-no-properties] 3])
(defalias 'rng-segment-blank-p #[(segment) "@\203\n\301@!\207\302\303A\"\207" [segment rng-blank-p apply rng-region-blank-p] 3])
(defalias 'rng-contents-region #[nil "\205-\211\211@A)\211@\211A@)	A\211\203)	\211@A)@\202\f
,B\207" [rng-pending-contents contents x head start end] 3])
#@356 Process characters between position START and END as text.
END nil means point.  WHITESPACE t means known to be whitespace, nil
means known not to be, anything else means unknown whether whitespace
or not.  END must not be nil if WHITESPACE is neither t nor nil.
VALUE is a string or nil; nil means the value is equal to the
string between START and END.
(defalias 'rng-process-text #[(start end whitespace &optional value) "\203	\n\206`E\fB\211\207
\203,
\306=\206.	\203%\307	!\202)\310\n\"\206.\311 ?\205;\312\313\n\206:`#\207" [rng-collecting-text value start end rng-pending-contents whitespace t rng-blank-p rng-region-blank-p rng-match-mixed-text rng-mark-invalid "Text not allowed"] 4 (#$ . 34061)])
(defalias 'rng-process-unknown-char #[nil "\205	\302	B\211\207" [rng-collecting-text rng-pending-contents nil] 2])
(defalias 'rng-process-unknown-entity #[nil "\300 \210\301 \207" [rng-process-unknown-char rng-match-optionalize-elements] 1])
(defalias 'rng-region-blank-p #[(beg end) "\212b\210\302	w	ZU)\207" [beg end " \n
	"] 3])
(defalias 'rng-flush-text #[nil "\205+@\304	!\204\"\305 \204\"	A\306\307\n@\n\211A@)#\210))A\211\204\310\207" [rng-pending-contents segment region x rng-segment-blank-p rng-match-mixed-text rng-mark-invalid "In this context text cannot be mixed with elements" nil] 5])
(defalias 'rng-process-end-document #[nil "\302``\"\210\212\303\304x\210`)	\203!	@\305=?\205,\306\307`#\202,\310 ?\205,\306\311`#)\207" [start rng-open-elements rng-clear-overlays " 	
\n" nil t rng-mark-not-well-formed "Missing end-tag" rng-match-nullable-p "No document element"] 4])
(defalias 'rng-process-encoding-name #[(beg end) "\303	\"\304\n!\206\n\227\305\230)?\205\306\307	#\207" [beg end charset buffer-substring-no-properties nxml-mime-charset-coding-system "utf-16" rng-mark-not-well-formed "Unsupported encoding"] 4])
(defalias 'rng-name-to-string #[(name &optional attributep) "@A\211\203\204\305 \n=\203	\2020\306\n!\211\203(\f\307	Q\202/\310\311\n!\312	R)*\207" [name local-name ns attributep prefix nxml-ns-get-default nxml-ns-prefix-for ":" "{" symbol-name "}"] 5])
(provide 'rng-valid)

MMCT - 2023