;ELC
;;; Compiled
;;; in Emacs version 26.1
;;; with all optimizations.
;;; This file contains utf-8 non-ASCII characters,
;;; and so cannot be loaded into Emacs 22 or earlier.
(and (boundp 'emacs-version)
(< (aref emacs-version (1- (length emacs-version))) ?A)
(string-lessp emacs-version "23")
(error "`%s' was compiled for Emacs 23 or later" #$))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
#@43 What to substitute for undefined entities
(defconst xml-undefined-entity "?" (#$ . 408))
#@53 Alist mapping default XML namespaces to their URIs.
(defconst xml-default-ns '((#1="" . #1#) ("xml" . "http://www.w3.org/XML/1998/namespace") ("xmlns" . "http://www.w3.org/2000/xmlns/")) (#$ . 503))
#@55 Alist mapping XML entities to their replacement text.
(defvar xml-entity-alist '(("lt" . "<") ("gt" . ">") ("apos" . "'") ("quot" . "\"") ("amp" . "&")) (#$ . 708))
#@293 The maximum size of entity reference expansions.
If the size of the buffer increases by this many characters while
expanding entity references in a segment of character data, the
XML parser signals an error. Setting this to nil removes the
limit (making the parser vulnerable to XML bombs).
(defvar xml-entity-expansion-limit 20000 (#$ . 888))
#@43 Alist of defined XML parametric entities.
(defvar xml-parameter-entity-alist nil (#$ . 1239))
#@57 Non-nil when the XML parser is parsing an XML fragment.
(defvar xml-sub-parser nil (#$ . 1339))
#@42 Set to non-nil to get validity checking.
(defvar xml-validating-parser nil (#$ . 1441))
#@393 Return the tag associated with NODE.
Without namespace-aware parsing, the tag is a symbol.
With namespace-aware parsing, the tag is a cons of a string
representing the uri of the namespace with the local name of the
tag. For example,
<foo>
would be represented by
("" . "foo").
If you'd just like a plain symbol instead, use `symbol-qnames' in
the PARSE-NS argument.
(fn NODE)
(defalias 'xml-node-name #[257 "\211@\207" [] 2 (#$ . 1536)])
(put 'xml-node-name 'byte-optimizer 'byte-compile-inline-expand)
#@72 Return the list of attributes of NODE.
The list can be nil.
(fn NODE)
(defalias 'xml-node-attributes #[257 "\211A@\207" [] 2 (#$ . 2061)])
(put 'xml-node-attributes 'byte-optimizer 'byte-compile-inline-expand)
#@93 Return the list of children of NODE.
This is a list of nodes, and it can be nil.
(fn NODE)
(defalias 'xml-node-children #[257 "\211AA\207" [] 2 (#$ . 2278)])
(put 'xml-node-children 'byte-optimizer 'byte-compile-inline-expand)
#@139 Return the children of NODE whose tag is CHILD-NAME.
CHILD-NAME should match the value returned by `xml-node-name'.
(fn NODE CHILD-NAME)
(defalias 'xml-get-children #[514 "\300\211AA\262\211\203( \211@\211<\203! \211\211@\262\232\203! \211B\262A\266\202\202 \210\211\237\207" [nil] 7 (#$ . 2513)])
#@134 Get from NODE the value of ATTRIBUTE.
Return nil if the attribute was not found.
See also `xml-get-attribute'.
(fn NODE ATTRIBUTE)
(defalias 'xml-get-attribute-or-nil #[514 "\300\211A@\262\"A\207" [assoc] 6 (#$ . 2827)])
#@158 Get from NODE the value of ATTRIBUTE.
An empty string is returned if the attribute was not found.
See also `xml-get-attribute-or-nil'.
(fn NODE ATTRIBUTE)
(defalias 'xml-get-attribute #[514 "\300\"\206 \301\207" [xml-get-attribute-or-nil ""] 5 (#$ . 3060)])
(put 'xml-get-attribute 'byte-optimizer 'byte-compile-inline-expand)
(defconst xml-name-start-char-re "[[:word:]:_]")
(defconst xml-name-char-re "[-0-9.[:word:]:_·̀-ͯ‿-⁀]")
(defconst xml-name-re (concat xml-name-start-char-re xml-name-char-re "*"))
(defconst xml-names-re (concat xml-name-re "\\(?: " xml-name-re "\\)*"))
(defconst xml-nmtoken-re (concat xml-name-char-re "+"))
(defconst xml-nmtokens-re (concat xml-nmtoken-re "\\(?: " xml-name-re "\\)*"))
(defconst xml-char-ref-re "\\(?:&#[0-9]+;\\|&#x[0-9a-fA-F]+;\\)")
(defconst xml-entity-ref (concat "&" xml-name-re ";"))
(defconst xml-entity-or-char-ref-re (concat "&\\(?:#\\(x\\)?\\([0-9a-fA-F]+\\)\\|\\(" xml-name-re "\\)\\);"))
(defconst xml-pe-reference-re (concat "%\\(" xml-name-re "\\);"))
(defconst xml-reference-re (concat "\\(?:" xml-entity-ref "\\|" xml-char-ref-re "\\)"))
(defconst xml-att-value-re (concat "\\(?:\"\\(?:[^&\"]\\|" xml-reference-re "\\)*\"\\|" "'\\(?:[^&']\\|" xml-reference-re "\\)*'\\)"))
(defconst xml-tokenized-type-re "\\(?:ID\\|IDREF\\|IDREFS\\|ENTITY\\|ENTITIES\\|NMTOKEN\\|NMTOKENS\\)")
(defconst xml-notation-type-re (concat "\\(?:NOTATION\\s-+(\\s-*" xml-name-re "\\(?:\\s-*|\\s-*" xml-name-re "\\)*\\s-*)\\)"))
(defconst xml-enumeration-re (concat "\\(?:(\\s-*" xml-nmtoken-re "\\(?:\\s-*|\\s-*" xml-nmtoken-re "\\)*\\s-+)\\)"))
(defconst xml-enumerated-type-re (concat "\\(?:" xml-notation-type-re "\\|" xml-enumeration-re "\\)"))
(defconst xml-att-type-re (concat "\\(?:CDATA\\|" xml-tokenized-type-re #1="\\|" xml-notation-type-re #1# xml-enumerated-type-re "\\)"))
(defconst xml-default-decl-re (concat "\\(?:#REQUIRED\\|#IMPLIED\\|" "\\(?:#FIXED\\s-+\\)*" xml-att-value-re "\\)"))
(defconst xml-att-def-re (concat "\\(?:\\s-*" xml-name-re #1="\\s-*" xml-att-type-re #1# xml-default-decl-re "\\)"))
(defconst xml-entity-value-re (concat "\\(?:\"\\(?:[^%&\"]\\|" xml-pe-reference-re #1="\\|" xml-reference-re "\\)*\"\\|'\\(?:[^%&']\\|" xml-pe-reference-re #1# xml-reference-re "\\)*'\\)"))
#@147 Syntax table used by the XML parser.
In this syntax table, the XML space characters [ \t\r\n], and
only those characters, have whitespace syntax.
(defvar xml-syntax-table (byte-code "\300\301\302\"\303\211\203 \211@\304\305#\210A\266\202\202 \210\304\306\307#\210\304\310\307#\210\304\311\307#\210\304\312\307#\210\304\313\307#\210\304\314\307#\210\304\315\307#\210\304\316\307#\210\304\317\307#\210\304\320\307#\210\304\321\307#\210\304\322\307#\210\304\323\307#\210\304\324\307#\210\211\207" [make-char-table syntax-table (3) (32 9 13 10) modify-syntax-entry " " (65 . 90) "w" (97 . 122) (192 . 214) (216 . 246) (248 . 767) (880 . 893) (895 . 8191) (8204 . 8205) (8304 . 8591) (11264 . 12271) (12289 . 55295) (63744 . 64975) (65008 . 65533) (65536 . 983039)] 7) (#$ . 5327))
#@688 Parse the well-formed XML file FILE.
Return the top node with all its children.
If PARSE-DTD is non-nil, the DTD is parsed rather than skipped.
If PARSE-NS is non-nil, then QNAMES are expanded. By default,
the variable `xml-default-ns' is the mapping from namespaces to
URIs, and expanded names will be returned as a cons
("namespace:" . "foo").
If PARSE-NS is an alist, it will be used as the mapping from
namespace to URIs instead.
If it is the symbol `symbol-qnames', expanded names will be
returned as a plain symbol `namespace:foo' instead of a cons.
Both features can be combined by providing a cons cell
(symbol-qnames . ALIST).
(fn FILE &optional PARSE-DTD PARSE-NS)
(defalias 'xml-parse-file #[769 "\300\301!r\211q\210\302\303\304\305\306!\307\"\310$\216\311!\210\312\"*\207" [generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 insert-file-contents xml--parse-buffer] 10 (#$ . 6130)])
#@917 Parse the region from BEG to END in BUFFER.
Return the XML parse tree, or raise an error if the region does
not contain well-formed XML.
If BEG is nil, it defaults to `point-min'.
If END is nil, it defaults to `point-max'.
If BUFFER is nil, it defaults to the current buffer.
If PARSE-DTD is non-nil, parse the DTD and return it as the first
element of the list.
If PARSE-NS is non-nil, then QNAMES are expanded. By default,
the variable `xml-default-ns' is the mapping from namespaces to
URIs, and expanded names will be returned as a cons
("namespace:" . "foo").
If PARSE-NS is an alist, it will be used as the mapping from
namespace to URIs instead.
If it is the symbol `symbol-qnames', expanded names will be
returned as a plain symbol `namespace:foo' instead of a cons.
Both features can be combined by providing a cons cell
(symbol-qnames . ALIST).
(fn &optional BEG END BUFFER PARSE-DTD PARSE-NS)
(defalias 'xml-parse-region #[1280 "\204 p\262\300\301!r\211q\210\302\303\304\305\306!\307\"\310$\216\311#\210\312\"*\207" [generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 insert-buffer-substring-no-properties xml--parse-buffer] 12 (#$ . 7117)])
#@27
(fn PARSE-DTD PARSE-NS)
(defalias 'xml--parse-buffer #[514 "\305 p\306\307\310\311\312\"\313\"\314$\216\315!\210\316 \n\316\211\211eb\210m\204\204 \317\320\316\321#\203~ \322u\210\323\n\n\"\262\204J m\204% \324u\210\202% \203Y \f\204Y \325\326!\210\202% @<\203v \203v @\262A\203% AB\262\202% B\262\202% db\210\202% \203\220 \211\237B\202\222 \237+\266\206)\207" [xml-syntax-table xml-entity-alist xml-parameter-entity-alist case-fold-search xml-sub-parser syntax-table make-byte-code 0 "r\301q\210\302\300!)\207" vconcat vector [set-syntax-table] 2 set-syntax-table nil search-forward "<" t -1 xml-parse-tag-1 1 error "XML: (Not Well-Formed) Only one root tag allowed"] 14 (#$ . 8369)])
#@600 Perform any namespace expansion.
NAME is the name to perform the expansion on.
DEFAULT is the default namespace. XML-NS is a cons of namespace
names to uris. When namespace-aware parsing is off, then XML-NS
is nil.
During namespace-aware parsing, any name without a namespace is
put into the namespace identified by DEFAULT. nil is used to
specify that the name shouldn't be given a namespace.
Expanded names will by default be returned as a cons. If you
would like to get plain symbols instead, provide a cons cell
(symbol-qnames . ALIST)
in the XML-NS argument.
(fn NAME DEFAULT XML-NS)
(defalias 'xml-maybe-do-ns #[771 "\211:\203n \211\242\300=\301\302\"\211\203 \303\225\304O\202 \203& |