Your IP : 216.73.216.48
;ELC
;;; Compiled
;;; in Emacs version 24.5.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 "?" (#$ . 410))
#@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/")) (#$ . 505))
#@55 Alist mapping XML entities to their replacement text.
(defvar xml-entity-alist '(("lt" . "<") ("gt" . ">") ("apos" . "'") ("quot" . "\"") ("amp" . "&")) (#$ . 710))
#@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 (#$ . 890))
#@43 Alist of defined XML parametric entities.
(defvar xml-parameter-entity-alist nil (#$ . 1241))
#@57 Non-nil when the XML parser is parsing an XML fragment.
(defvar xml-sub-parser nil (#$ . 1341))
#@42 Set to non-nil to get validity checking.
(defvar xml-validating-parser nil (#$ . 1443))
#@382 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.
(defalias 'xml-node-name #[(node) "@\207" [node] 1 (#$ . 1538)])
(byte-code "\300\301\302\303#\207" [put xml-node-name byte-optimizer byte-compile-inline-expand] 4)
#@61 Return the list of attributes of NODE.
The list can be nil.
(defalias 'xml-node-attributes #[(node) "A@\207" [node] 1 (#$ . 2091)])
(byte-code "\300\301\302\303#\207" [put xml-node-attributes byte-optimizer byte-compile-inline-expand] 4)
#@82 Return the list of children of NODE.
This is a list of nodes, and it can be nil.
(defalias 'xml-node-children #[(node) "\211AA\207" [node] 2 (#$ . 2336)])
(byte-code "\300\301\302\303#\207" [put xml-node-children byte-optimizer byte-compile-inline-expand] 4)
#@117 Return the children of NODE whose tag is CHILD-NAME.
CHILD-NAME should match the value returned by `xml-node-name'.
(defalias 'xml-get-children #[(node child-name) "\305 \211\211AA\262)\305\211\203/ @\211<\203( \n\211@)\f\232\203( \nBA\211\204 *\237)\207" [match node child --dolist-tail-- child-name nil] 3 (#$ . 2603)])
#@113 Get from NODE the value of ATTRIBUTE.
Return nil if the attribute was not found.
See also `xml-get-attribute'.
(defalias 'xml-get-attribute-or-nil #[(node attribute) "\302 \211A@)\"A\207" [attribute node assoc] 4 (#$ . 2946)])
#@137 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'.
(defalias 'xml-get-attribute #[(node attribute) "\302 \"\206 \303\207" [node attribute xml-get-attribute-or-nil ""] 3 (#$ . 3183)])
(byte-code "\300\301\302\303#\210\300\304\305\306#\210\300\304\307\306#\210\300\310\311\303#\210\300\312\313\314#\210\300\315\316\317#\210\300\320\321\314#\210\300\304\322\306#\210\300\323\324\303#\210\300\323\325\303#\210\300\323\326\303#\210\300\327\330\331#\210\300\332\333\334#\210\300\304\335\306#\210\300\336\337\331#\210\300\336\340\331#\210\300\327\341\331#\210\300\342\343\344#\210\300\345\346\314#\210\300\342\347\344#\210\300\350\351\352#\207" [byte-code "\300\301\302\303#\207" [put xml-get-attribute byte-optimizer byte-compile-inline-expand] 4 "\300\301!\207" [(lambda (#1=#:def-tmp-var) (defconst xml-name-start-char-re #1#)) "[[:word:]:_]"] 2 [(lambda (#1#) (defconst xml-name-char-re #1#)) "[-0-9.[:word:]:_·̀-ͯ‿-⁀]"] "\302 \303Q!\207" [xml-name-start-char-re xml-name-char-re (lambda (#1#) (defconst xml-name-re #1#)) "*"] "\301\302\303R!\207" [xml-name-re (lambda (#1#) (defconst xml-names-re #1#)) "\\(?: " "\\)*"] 5 "\301\302P!\207" [xml-name-char-re (lambda (#1#) (defconst xml-nmtoken-re #1#)) "+"] 3 "\302\303 \304R!\207" [xml-nmtoken-re xml-name-re (lambda (#1#) (defconst xml-nmtokens-re #1#)) "\\(?: " "\\)*"] [(lambda (#1#) (defconst xml-char-ref-re #1#)) "\\(?:&#[0-9]+;\\|&#x[0-9a-fA-F]+;\\)"] "\301\302\303Q!\207" [xml-name-re (lambda (#1#) (defconst xml-entity-ref #1#)) "&" ";"] [xml-name-re (lambda (#1#) (defconst xml-entity-or-char-ref-re #1#)) "&\\(?:#\\(x\\)?\\([0-9a-fA-F]+\\)\\|\\(" "\\)\\);"] [xml-name-re (lambda (#1#) (defconst xml-pe-reference-re #1#)) "%\\(" "\\);"] "\302\303\304 \305\260!\207" [xml-entity-ref xml-char-ref-re (lambda (#1#) (defconst xml-reference-re #1#)) "\\(?:" "\\|" "\\)"] 6 "\301\302\303\304\305\260!\207" [xml-reference-re (lambda (#1#) (defconst xml-att-value-re #1#)) "\\(?:\"\\(?:[^&\"]\\|" "\\)*\"\\|" "'\\(?:[^&']\\|" "\\)*'\\)"] 7 [(lambda (#1#) (defconst xml-tokenized-type-re #1#)) "\\(?:ID\\|IDREF\\|IDREFS\\|ENTITY\\|ENTITIES\\|NMTOKEN\\|NMTOKENS\\)"] "\301\302\303\304\260!\207" [xml-name-re (lambda (#1#) (defconst xml-notation-type-re #1#)) "\\(?:NOTATION\\s-+(\\s-*" "\\(?:\\s-*|\\s-*" "\\)*\\s-*)\\)"] [xml-nmtoken-re (lambda (#1#) (defconst xml-enumeration-re #1#)) "\\(?:(\\s-*" "\\(?:\\s-*|\\s-*" "\\)*\\s-+)\\)"] [xml-notation-type-re xml-enumeration-re (lambda (#1#) (defconst xml-enumerated-type-re #1#)) "\\(?:" "\\|" "\\)"] "\303\304\305 \305\n\306\260!\207" [xml-tokenized-type-re xml-notation-type-re xml-enumerated-type-re (lambda (#1#) (defconst xml-att-type-re #1#)) "\\(?:CDATA\\|" "\\|" "\\)"] 8 "\301\302\303\304R!\207" [xml-att-value-re (lambda (#1#) (defconst xml-default-decl-re #1#)) "\\(?:#REQUIRED\\|#IMPLIED\\|" "\\(?:#FIXED\\s-+\\)*" "\\)"] [xml-name-re xml-att-type-re xml-default-decl-re (lambda (#1#) (defconst xml-att-def-re #1#)) "\\(?:\\s-*" "\\s-*" "\\)"] "\302\303\304 \305\304 \306\260 !\207" [xml-pe-reference-re xml-reference-re (lambda (#1#) (defconst xml-entity-value-re #1#)) "\\(?:\"\\(?:[^%&\"]\\|" "\\|" "\\)*\"\\|'\\(?:[^%&']\\|" "\\)*'\\)"] 10] 4)
#@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 "\303\304\305\"\306\307\211\203 \n@\310 \311#\210\nA\211\204
*\310\312\313#\210\310\314\313#\210\310\315\313#\210\310\316\313#\210\310\317\313#\210\310\320\313#\210\310\321\313#\210\310\322\313#\210\310\323\313#\210\310\324\313#\210\310\325\313#\210\310\326\313#\210\310\327\313#\210\310\330\313#\210)\207" [table c --dolist-tail-- make-char-table syntax-table (3) (32 9 13 10) nil 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)] 5) (#$ . 6462))
#@646 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).
(defalias 'xml-parse-file #[(file &optional parse-dtd parse-ns) "\304\305!rq\210\306\216\307 !\210\310\n\"+\207" [#1=#:temp-buffer file parse-dtd parse-ns generate-new-buffer " *temp*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) insert-file-contents xml--parse-buffer] 3 (#$ . 7292)])
#@865 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).
(defalias 'xml-parse-region #[(&optional beg end buffer parse-dtd parse-ns) "\204 p\306\307!r q\210\310\216\311\n#\210\312\f
\"+\207" [buffer #1=#:temp-buffer beg end parse-dtd parse-ns generate-new-buffer " *temp*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) insert-buffer-substring-no-properties xml--parse-buffer] 4 (#$ . 8268)])
(defalias 'xml--parse-buffer #[(parse-dtd parse-ns) "\306 p\307\216\310\n!\210\311\f\311\211\211eb\210m\204\244 \312\313\311\314#\203\236 \315u\210\316\"\211\204B m\204 \317u\210\202 \203S \204S \320\321!\210\202 @<\203\206 \203\206 @A\203 A\211\235\203{ \210\202\202 B)\202 \235\203\224 \210\202 B\202 db\210\202 \203\261
\237B\202\264 \237. \207" [#1=#:buffer #2=#:table xml-syntax-table xml-entity-alist xml-parameter-entity-alist dtd syntax-table ((byte-code "rq\210\302 !\210)\302\207" [#1# #2# 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" result xml case-fold-search parse-dtd parse-ns xml-sub-parser #3=#:x] 7])
#@574 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.
(defalias 'xml-maybe-do-ns #[(name default xml-ns) ":\203y \242\301=\306\307\n\"\211\203 \n\310\225\311O\202 \n\203) \n\310\211\224O\202*
\f\312\230\2055 ?\313\203A \312\202C \203L A\202M \"A\206S \314 \203i \312\230\204i \315\fP!\202v \203t \314\202u \fB.\207\315\n!\207" [xml-ns symbol-qnames name nsp lname default string-match ":" 0 nil "xmlns" assoc "" intern prefix special ns] 4 (#$ . 10303)])
#@383 Parse the tag at point.
If PARSE-DTD is non-nil, the DTD of the document, if any, is parsed and
returned as the first element in the list.
If PARSE-NS is non-nil, expand QNAMES; for further details, see
`xml-parse-region'.
Return one of:
- a list : the matching node
- nil : the point is not looking at a tag.
- a pair : the first element is the DTD, the second is the node.
(defalias 'xml-parse-tag #[(&optional parse-dtd parse-ns) "\306 \np`\307\310!r
q\210\311\216\312 p\313\216\314!\210\315\f\"\210eb\210\316\".\207" [case-fold-search xml-entity-alist xml-parameter-entity-alist buf pos #1=#:temp-buffer nil generate-new-buffer " *temp*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) syntax-table ((byte-code "rq\210\302 !\210)\302\207" [#2=#:buffer #3=#:table set-syntax-table] 2)) set-syntax-table insert-buffer-substring-no-properties xml-parse-tag-1 #2# #3# xml-syntax-table parse-dtd parse-ns] 3 (#$ . 11317)])
#@69 Like `xml-parse-tag', but possibly modify the buffer while working.
(defalias 'xml-parse-tag-1 #[(&optional parse-dtd parse-ns) "\206 \n\306=\203 \306B\202. \n\242:\204% \n\242\306=\203) \nA<\203) \n\202. \n\205. \307\310\311!)\262\203J \312\313!\210\314\315!\210\316\f\"\202\311\317!\203m \320\225.\312\321\322\310#\204` \323\324!\210\325.\320\224\"\326 P)\202\327\310\311!)\262\203\230 \330\n!/\314\315!\210 \203\220 /\316\322\f\"B\202\224 \316\322\f\")\202\331\310\311!)\262\203\274 \312\332!\210\314\315!\210m?\205\3100\316\f\")\202\333\310\311!)\262\203\314 \322\202\311\334!\203\335\225b\210\336\335!1\337\f!2\3223\f:\203=2\3224\2115\203<5@\2114@:\20334\211@@\262\340\232\20334\211@A\2624AB6\f@9\203-\f\211767AB\241\210)\20226\fB)5A\2115\204\363 *2\3411\342\f#D3\343\310\311!)\262\203]\344u\2103\237\202\322f\345=\203\370\335u\210\3331\346Q8\3118!\204\355m\203\202\323\3471\"\210\202n\333\310\311!)\262\203\256\344u\210\323\350`\211.\351\346\322\310#\203\244\320\224\202\245d{)1#\210\202n\322f\352U\203\312\316\322\f\"\2119\203\30693B3)\202n\326 :3@;\203\3423\211A3\242:P\202\344:3B3)\202n\320\225b\2103\237)\202\323\353\325`\354Z`T\"\"+\2020\204\323\355!\210\326 *\207" [parse-dtd xml-validating-parser parse-ns xml-default-ns xml-ns inhibit-changing-match-data symbol-qnames "<\\?" t looking-at search-forward "?>" skip-syntax-forward " " xml-parse-tag-1 "<!\\[CDATA\\[" 0 "]]>" nil error "XML: (Not Well Formed) CDATA section does not end anywhere in the document" buffer-substring-no-properties xml-parse-string "<!DOCTYPE[ \n
]" xml-parse-dtd "<!--" "-->" "</" "<\\([[:word:]:_][-0-9.[:word:]:_·̀-ͯ‿-⁀]*\\)" 1 match-string-no-properties xml-parse-attlist "http://www.w3.org/2000/xmlns/" xml-maybe-do-ns "" "/>" 2 62 "\\s-*>" "XML: (Not Well-Formed) End of document while reading element `%s'" "XML: (Not Well-Formed) Invalid end tag `%s' (expecting `%s')" re-search-forward 60 "XML: (Well-Formed) Couldn't parse tag: %s" 10 "XML: (Well-Formed) Invalid character" pos dtd xml-sub-parser node-name attrs children attr --dolist-tail-- #1=#:v #2=#:v end tag expansion] 8 (#$ . 12303)])
#@195 Parse character data at point, and return it as a string.
Leave point at the start of the next thing to parse. This
function can modify the buffer by expanding entity and character
references.
(defalias 'xml-parse-string #[nil "`\306 `Z\307\211m\204\261 \310\311\312!)\262\204\261 \313\307w\210\307f\314=\203 \312
!\2040 \315\316!\210\317\320!\211\203q \321 $\322\216\323\324\325 \317\326!\205I \327\"\"*\211\204] %\203] \315\330\317\331!\"\210\332\203h \333!\202j &\311\211#\210\202\231 \317\334!\335 '\"\211\204\211 %\203\211 \315\336 \"\210\332A\206\221 &\311\211#\210\331\224b\210(\203 \306 `Z\n(\\V\203 \315\337!\210\202 \340 )b\210\341\342)\311#\203\312 \332\343\311\211#\210\202\270 )b\210`{-\207" [val ref old-remaining-size start inhibit-changing-match-data xml-entity-or-char-ref-re buffer-size nil "<" t looking-at "^<&" 38 error "XML: (Not Well-Formed) Invalid entity reference" match-string 2 match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) decode-char ucs string-to-number 1 16 "XML: (Validity) Invalid character reference `%s'" 0 replace-match string 3 assoc "XML: (Validity) Undefined entity `%s'" "XML: Entity reference expansion surpassed `xml-entity-expansion-limit'" point-marker re-search-forward "
\n?" "\n" save-match-data-internal xml-validating-parser xml-undefined-entity xml-entity-alist xml-entity-expansion-limit end-marker] 7 (#$ . 14532)])
#@100 Return the attribute-list after point.
Leave point at the first non-blank character after the tag.
(defalias 'xml-parse-attlist #[(&optional xml-ns) "\306\211\211\307\310!\210\311\312!\203m \313\225\314\315\316!\306# b\210\311\317!\203* \313\225\202: \311\320!\2036 \313\225\202: \321\322!\210\323\n\"\203E \321\324!\210\315\316!\325\326\310\f#\210\327\f!\211;\204\\ \321\330!\210
B\nB* b\210\307\310!\210\202\n \n\237+\207" [name end-pos attlist xml-ns string expansion nil skip-syntax-forward " " looking-at "\\([[:word:]:_][-0-9.[:word:]:_·̀-ͯ‿-⁀]*\\)\\s-*=\\s-*" 0 xml-maybe-do-ns match-string-no-properties 1 "\"\\([^\"]*\\)\"" "'\\([^']*\\)'" error "XML: (Not Well-Formed) Attribute values must be given between quotes" assoc "XML: (Not Well-Formed) Each attribute must be unique within an element" replace-regexp-in-string "\\s-\\{2,\\}" xml-substitute-special "XML: (Not Well-Formed) Entities in attributes cannot expand into elements"] 5 (#$ . 15991)])
#@78 Skip the DTD at point.
This follows the rule [28] in the XML specifications.
(defalias 'xml-skip-dtd #[nil "\301\302 )\207" [xml-validating-parser nil xml-parse-dtd] 1 (#$ . 16979)])
#@25 Parse the DTD at point.
(defalias 'xml-parse-dtd #[(&optional _parse-ns) "\306u\210\307\310!\210\311\312\313!)\262\203 \203 \314\315!\210\313\n!\210\316\317!\305D\320\317\225b\210\307\310!\210\313\321!\203z \317\225b\210\322\323\320\312#\204O \322\324\320\312#\204O \314\325!\210\316\326!@\307\310!\210\322\327\320\312#\204l \322\330\320\312#\204l \314\331!\210@\316\326!\332E
B)\202\240 \313\333!\203\240 \317\225b\210\322\327\320\312#\204\230 \322\330\320\312#\204\230 \314\331!\210\316\326!\334D
B\307\310!\210\320f\335=\203\261 \320u\210\202\223\320f\336=\204\274 \314\337!\210\320u\210\212\322A\320\312#\205\313 \317\224)\340\312\313!)\262\204\211\307\310!\210m\203\350 \314\341!\210\202\315 \313\342!\203\204\f\203\371 \317\225\fX\203\204\316\326!\316\343!\317\225BCD\344C\320\312\345#)\266\203\203\346C\202b\347C\320\312\345#)\266\203\2035\350C\202b\345\351C\"\203I\352\316\326C\"!C\202b\353C\320\312\345#)\266\203\204b \203b\314\354!\210\355D
\"\203t \203t\314\356D\"\210DCD
BBb\210+\202\315 \313\357!\203\234\f\203\225\317\225\fX\203\234\317\225b\210\202\315 \360\312\313!)\262\203\307\361\362!\210\f\203\315 `\fV\203\315 \212\322A\320\312#\205\302\317\224)\202\315 \313\363!\203\f\203\330\317\225\fX\203\316\343!\317\225b\210E\364\326!\203\353\303\202\354\365F\366\316\367!\326\370O!G\355EFJ\"\204FEGBFJBL\210+\202\315 \313\371!\204\313\372!\2031\f\203*\317\225\fX\2031\317\225b\210\202\315 \f\203w\212\fb\210\313A!\204D\314\373!\210\364\326!H\355H\"\211I\203b\374IA\312\211#\210\fb\210\202f\317\225b\210*\322A\320\312#\205r\317\224)\202\315 \203\202\314\375!\210\202\315 \376\320w\210\202\315 \313\377!\203\223\317\225b\210
\237+\207" [inhibit-changing-match-data xml-validating-parser xml-name-re xml-parameter-entity-alist next-parameter-entity dtd 9 skip-syntax-forward " " ">" t looking-at error "XML: (Validity) Invalid DTD (expecting name of the document)" match-string-no-properties 0 nil "PUBLIC\\s-+" re-search-forward "\\=\"\\([[:space:][:alnum:]-'()+,./:=?;!*#@$_%]*\\)\"" "\\='\\([[:space:][:alnum:]-()+,./:=?;!*#@$_%]*\\)'" "XML: Missing Public ID" 1 "\\='\\([^']*\\)'" "\\=\"\\([^\"]*\\)\"" "XML: Missing System ID" public "SYSTEM\\s-+" system 62 91 "XML: Bad DTD" "\\s-*\\]" "XML: (Well-Formed) End of document while reading DTD" "<!ELEMENT\\s-+\\([[:word:]:_][-0-9.[:word:]:_·̀-ͯ‿-⁀]*\\)\\s-+\\([^>]+\\)>" 2 "\\`EMPTY\\s-*\\'" string-match empty "\\`ANY\\s-*$" any "\\`(\\(.*\\))\\s-*\\'" xml-parse-elem-type "^%[^;]+;[ \n
]*\\'" "XML: (Validity) Invalid element type in the DTD" assoc "XML: (Validity) DTD element declarations must be unique (<%s>)" "<!ATTLIST[ \n
]*\\([[:word:]:_][-0-9.[:word:]:_·̀-ͯ‿-⁀]*\\)[ \n
]*\\(\\(?:\\s-*[[:word:]:_][-0-9.[:word:]:_·̀-ͯ‿-⁀]*\\s-*\\(?:CDATA\\|\\(?:ID\\|IDREF\\|IDREFS\\|ENTITY\\|ENTITIES\\|NMTOKEN\\|NMTOKENS\\)\\|\\(?:NOTATION\\s-+(\\s-*[[:word:]:_][-0-9.[:word:]:_·̀-ͯ‿-⁀]*\\(?:\\s-*|\\s-*[[:word:]:_][-0-9.[:word:]:_·̀-ͯ‿-⁀]*\\)*\\s-*)\\)\\|\\(?:\\(?:NOTATION\\s-+(\\s-*[[:word:]:_][-0-9.[:word:]:_·̀-ͯ‿-⁀]*\\(?:\\s-*|\\s-*[[:word:]:_][-0-9.[:word:]:_·̀-ͯ‿-⁀]*\\)*\\s-*)\\)\\|\\(?:(\\s-*[-0-9.[:word:]:_·̀-ͯ‿-⁀]+\\(?:\\s-*|\\s-*[-0-9.[:word:]:_·̀-ͯ‿-⁀]+\\)*\\s-+)\\)\\)\\)\\s-*\\(?:#REQUIRED\\|#IMPLIED\\|\\(?:#FIXED\\s-+\\)*\\(?:\"\\(?:[^&\"]\\|\\(?:&[[:word:]:_][-0-9.[:word:]:_·̀-ͯ‿-⁀]*;\\|\\(?:&#[0-9]+;\\|&#x[0-9a-fA-F]+;\\)\\)\\)*\"\\|'\\(?:[^&']\\|\\(?:&[[:word:]:_][-0-9.[:word:]:_·̀-ͯ‿-⁀]*;\\|\\(?:&#[0-9]+;\\|&#x[0-9a-fA-F]+;\\)\\)\\)*'\\)\\)\\)\\)*[ \n
]*>" "<!--" search-forward "-->" "<!ENTITY[ \n
]+\\(%[ \n
]+\\)?\\([[:word:]:_][-0-9.[:word:]:_·̀-ͯ‿-⁀]*\\)[ \n
]*\\(\\(?:\"\\(?:[^%&\"]\\|%\\([[:word:]:_][-0-9.[:word:]:_·̀-ͯ‿-⁀]*\\);\\|\\(?:&[[:word:]:_][-0-9.[:word:]:_·̀-ͯ‿-⁀]*;\\|\\(?:&#[0-9]+;\\|&#x[0-9a-fA-F]+;\\)\\)\\)*\"\\|'\\(?:[^%&']\\|%\\([[:word:]:_][-0-9.[:word:]:_·̀-ͯ‿-⁀]*\\);\\|\\(?:&[[:word:]:_][-0-9.[:word:]:_·̀-ͯ‿-⁀]*;\\|\\(?:&#[0-9]+;\\|&#x[0-9a-fA-F]+;\\)\\)\\)*'\\)\\)[ \n
]*>" match-string xml-entity-alist xml--entity-replacement-text 3 -1 "<!ENTITY[ \n
]+\\(%[ \n
]+\\)?\\([[:word:]:_][-0-9.[:word:]:_·̀-ͯ‿-⁀]*\\)[ \n
]+SYSTEM[ \n
]+\\(\"[^\"]*\"\\|'[^']*'\\)[ \n
]*>" "<!ENTITY[ \n
]+\\(%[ \n
]+\\)?\\([[:word:]:_][-0-9.[:word:]:_·̀-ͯ‿-⁀]*\\)[ \n
]+PUBLIC[ \n
]+\"[-
\na-zA-Z0-9'()+,./:=?;!*#@$_%]*\"\\|'[-
\na-zA-Z0-9()+,./:=?;!*#@$_%]*'[ \n
]+\\(\"[^\"]*\"\\|'[^']*'\\)[ \n
]*>" "XML: Internal error" replace-match "XML: (Validity) Invalid DTD item" "^]" "\\s-*]>" pubid xml-pe-reference-re end-pos type element name alist value entity elt] 8 (#$ . 17169)])
#@158 Return the replacement text for the entity value STRING.
The replacement text is obtained by replacing character
references and parameter-entity references.
(defalias 'xml--entity-replacement-text #[(string) "\306\307\310 \n\"\203\205 \n\311\211\224OB\n\311\225\307O\307\211\312\313\n\"\211\203: \314\315\316\f!\"\211\203 \302!B\202 \312\317\n\"\211\203X \314\315\316\f\320\"\"\211\203 \302!B\202 \312\321\n\"\211\203 \322\f\"\211\204u \203u \323\324\f\"\210A\206| B
+\202 \325\326\nB\237\327#*\207" [children ref-re string val ref remainder "\\(?:&#\\([0-9]+\\)\\|&#x\\([0-9a-fA-F]+\\)\\|%\\([[:word:]:_][-0-9.[:word:]:_·̀-ͯ‿-⁀]*\\)\\);" nil string-match 0 match-string 1 decode-char ucs string-to-number 2 16 3 assoc error "XML: (Validity) Undefined parameter entity `%s'" mapconcat identity "" xml-parameter-entity-alist xml-validating-parser xml-undefined-entity] 6 (#$ . 21910)])
#@52 Convert element type STRING into a Lisp structure.
(defalias 'xml-parse-elem-type #[(string) "\304\211\305\306\n\"\203O \307\310\n\"\307\311\n\"\312 \304\313\305#)\266\203\2032 \314\315\316\317 \312\"\"B\202` \320 \304\313\305#)\266\203\203` \321\315\316\317 \320\"\"B\202` \305\322\n\"\203` \307\310\n\"\307\311\n\" ;\203m \323\230\203m \324\325\230\203y \326 D\202\222 \327\230\203\205 \330 D\202\222 \331\230\203\221 \332 D\202\222 *\207" [modifier elem string inhibit-changing-match-data nil string-match "(\\([^)]+\\))\\([+*?]?\\)" match-string-no-properties 1 2 "|" t choice mapcar xml-parse-elem-type split-string "," seq "[ \n
]*\\([^+*?]+\\)\\([+*?]?\\)" "#PCDATA" pcdata "+" + "*" * "?" \?] 7 (#$ . 22844)])
#@122 Return STRING, after substituting entity and character references.
STRING is assumed to occur in an XML attribute value.
(defalias 'xml-substitute-special #[(string) "G\306\307\"\203\234 \310\211\224O B\310\225\306O\311\312\"\311\313\"\211\203] \314\315\316
\2053 \317\"\"\211\203B \300!\202Q \203O \320\321\"\202Q B\f\211G)\202\230 \311\322\"\323\"A\206| \203z \320\324\"\202| \211\fP)\203\230 G\n\\V\203\230 \320\325\"\210+\202 \326\327 B\237\330#*\207" [string children strlen xml-entity-or-char-ref-re remainder is-hex nil string-match 0 match-string 1 2 decode-char ucs string-to-number 16 error "XML: (Validity) Undefined character `x%s'" 3 assoc "XML: (Validity) Undefined entity `%s'" "XML: Passed `xml-entity-expansion-limit' while expanding `&%s;'" mapconcat identity "" ref val xml-validating-parser xml-undefined-entity xml-entity-alist xml-entity-expansion-limit] 6 (#$ . 23592)])
#@206 Substitute SGML numeric entities by their respective utf characters.
This function replaces numeric entities in the input STRING and
returns the modified string. For example "*" gets replaced
by "*".
(defalias 'xml-substitute-numeric-entities #[(string) "\205! ;\205! \302\303\304 #\203 \305\306\307\217\210\302\224T\202 )\207" [string start 0 string-match "&#\\([0-9]+\\);" nil (byte-code "\301\300\302\303\224\303\225O!!\304\211$\304\207" [string replace-match read 1 nil] 6) ((error))] 4 (#$ . 24548)])
#@138 Outputs the XML in the current buffer.
XML can be a tree or a list of nodes.
The first line is indented with the optional INDENT-STRING.
(defalias 'xml-debug-print #[(xml &optional indent-string) "\206 \304 \305\211\205 @\306\n\"\210A\211\204 \305*\207" [indent-string xml node --dolist-tail-- "" nil xml-debug-print-internal] 4 (#$ . 25077)])
(defalias 'xml-print 'xml-debug-print)
#@404 Convert STRING into a string containing valid XML character data.
Replace occurrences of &<>'" in STRING with their default XML
entity references (e.g. replace each & with &).
XML character data must not contain & or < characters, nor the >
character under some circumstances. The XML spec does not impose
restriction on " or ', but we just substitute for these too
(as is permitted by the spec).
(defalias 'xml-escape-string #[(string) "\304\305!rq\210\306\216 c\210\307\310\211\2036 @eb\210\311\n@\310\312#\203/ \313\nA\312\211\310$\210\202 A\211\204 *\314 +\207" [#1=#:temp-buffer string substitution --dolist-tail-- generate-new-buffer " *temp*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) (("&" . "&") ("<" . "<") (">" . ">") ("'" . "'") ("\"" . """)) nil search-forward t replace-match buffer-string] 6 (#$ . 25479)])
#@92 Outputs the XML tree in the current buffer.
The first line is indented with INDENT-STRING.
(defalias 'xml-debug-print-internal #[(xml indent-string) "\306\307\310\n\211@)!\261\210\n\211A@)\211\2038 \311\310 \211@@\262!\312\313 \211@A\262!\314\261\210 A\211\204 \n\211\211AA\262)\211\204M \315\316\261\202\242 \316c\210\n\306\211\203\205
@\211<\203m \317c\210\320\f\321P\"\210\202~ \f;\203z \313\f!c\210\202~ \322\323!\210
A\211\204X *\nA\204\221 \n@;\204\226 \317\261\210\307\315\310\211@)!\316\261*\207" [xml attlist tree indent-string node --dolist-tail-- nil 60 symbol-name 32 "=\"" xml-escape-string 34 47 62 10 xml-debug-print-internal " " error "Invalid XML tree"] 7 (#$ . 26381)])
(provide 'xml)