Function: xml-parse-elem-type
xml-parse-elem-type is a byte-compiled function defined in xml.el.gz.
Signature
(xml-parse-elem-type STRING)
Documentation
Convert element type STRING into a Lisp structure.
Source Code
;; Defined in /usr/src/emacs/lisp/xml.el.gz
(defun xml-parse-elem-type (string)
"Convert element type STRING into a Lisp structure."
(let (elem modifier)
(if (string-match "(\\([^)]+\\))\\([+*?]?\\)" string)
(progn
(setq elem (match-string-no-properties 1 string)
modifier (match-string-no-properties 2 string))
(if (string-search "|" elem)
(setq elem (cons 'choice
(mapcar 'xml-parse-elem-type
(split-string elem "|"))))
(if (string-search "," elem)
(setq elem (cons 'seq
(mapcar 'xml-parse-elem-type
(split-string elem ",")))))))
(if (string-match "[ \t\n\r]*\\([^+*?]+\\)\\([+*?]?\\)" string)
(setq elem (match-string-no-properties 1 string)
modifier (match-string-no-properties 2 string))))
(if (and (stringp elem) (string= elem "#PCDATA"))
(setq elem 'pcdata))
(cond
((string= modifier "+")
(list '+ elem))
((string= modifier "*")
(list '* elem))
((string= modifier "?")
(list '\? elem))
(t
elem))))