| Server IP : 217.160.0.212 / Your IP : 216.73.216.141 Web Server : Apache System : Linux www 6.18.51-i1-ampere #1196 SMP Fri Sep 11 20:43:55 CEST 2026 aarch64 User : sws1073854427 ( 1073854427) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /usr/share/emacs/28.2/lisp/ |
Upload File : |
;ELC
;;; Compiled
;;; in Emacs version 28.2
;;; with all optimizations.
#@44 What to substitute for undefined entities.
(defconst xml-undefined-entity "?" (#$ . 84))
#@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/")) (#$ . 179))
#@55 Alist mapping XML entities to their replacement text.
(defvar xml-entity-alist '(("lt" . "<") ("gt" . ">") ("apos" . "'") ("quot" . "\"") ("amp" . "&")) (#$ . 384))
#@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 (#$ . 564))
#@43 Alist of defined XML parametric entities.
(defvar xml-parameter-entity-alist nil (#$ . 915))
#@57 Non-nil when the XML parser is parsing an XML fragment.
(defvar xml-sub-parser nil (#$ . 1014))
#@42 Set to non-nil to get validity checking.
(defvar xml-validating-parser nil (#$ . 1116))
#@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 (#$ . 1211)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put xml-node-name speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@72 Return the list of attributes of NODE.
The list can be nil.
(fn NODE)
(defalias 'xml-node-attributes #[257 "\211A@\207" [] 2 (#$ . 1810)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put xml-node-attributes speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@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 (#$ . 2101)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put xml-node-children speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@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 (#$ . 2410)])
#@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 (#$ . 2724)])
#@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 (#$ . 2957)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put xml-get-attribute speed -1 put byte-optimizer byte-compile-inline-expand] 5)
(defconst xml-name-start-char-re "[[:word:]:_]")
(defconst xml-name-char-re "[[:word:]:_.0-9·̀-ͯ‿⁀-]")
(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[[:xdigit:]]+;\\)")
(defconst xml-entity-ref (concat "&" xml-name-re ";"))
(defconst xml-entity-or-char-ref-re (concat "&\\(?:#\\(x\\)?\\([[:xdigit:]]+\\)\\|\\(" 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 "\\|" 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\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) (#$ . 5265))
#@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\302\"r\211q\210\303\304\"\216\305!\210\306\"*\207" [generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205 \302\300!\207" [V0 buffer-name kill-buffer] 2] insert-file-contents xml--parse-buffer] 7 (#$ . 6064)])
#@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\302\"r\211q\210\303\304\"\216\305#\210\306\"*\207" [generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205 \302\300!\207" [V0 buffer-name kill-buffer] 2] insert-buffer-substring-no-properties xml--parse-buffer] 10 (#$ . 7024)])
#@27
(fn PARSE-DTD PARSE-NS)
(defalias 'xml--parse-buffer #[514 "\305 p\306\307#\216\310!\210\311 \n\311\211\211eb\210m\204{ \312\313\311\314#\203u \315u\210\316\n\n\"\262\204A m\204 \317u\210\202 \203P \f\204P \320\321!\210\202 @<\203m \203m @\262A\203 AB\262\202 B\262\202 db\210\202 \203\207 \211\237B\202\211 \237+\266\206)\207" [xml-syntax-table xml-entity-alist xml-parameter-entity-alist case-fold-search xml-sub-parser syntax-table make-closure #[0 "r\301q\210\302\300!)\207" [V0 V1 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 (#$ . 8250)])
#@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:\203l \211\242\300=\301\302\"\211\203 \303\225\304O\202 \203&