Stefan Monnier writes: >> Attached. I had to go another route, though; turns out the `parse-ns' >> argument is already overloaded in `xml-parse-tag' (it can be used to >> provide a namespace->URI mapping), but that wasn't mentioned in the >> other parse functions. So I had to introduce an additional argument. > > I'd seen that, indeed, but I think that since this parse-ns arg is > mostly passed around and only finally used in one place, I'd rather not > add an argument but instead pass both values via the single > parse-ns argument. parse-ns could then be: > - nil as before. > - an alist of namespace->URI. > - a cons cell (symbol-qnames . ALIST) which does the same as the > previous one but uses symbols instead of cons cells for qnames. > - the symbol `symbol-qnames' to mean (symbol-qnames . STANDARD-ALIST). > - t to mean STANDARD-ALIST. > The last two are only allowed when entering xml-parse-region but not in > recursive calls (and not in calls to xml-maybe-do-ns). That's... uh... creative. ;-) Anyway, it's a very seldom used feature, so I just implemented what you suggested. Updated ChangeLog: lisp/xml.el: (xml-node-name): Mention `symbol-qnames' in doc-string. (xml-parse-file, xml-parse-region): Explain PARSE-NS argument in the doc-string. (xml-maybe-do-ns): Return expanded name as symbol instead of cons depending on new `simple-qnames' argument. (xml-parse-tag-1): Deal with new PARSE-NS argument definition. Add `symbol-qnames' to other function calls that need it. (xml-parse-attlist): Add `symbol-qnames' argument. url-dav.el: (url-dav-supported-p): Added doc-string and remove check for feature `xml' and function `xml-expand-namespace' which never existed in Emacs proper. (url-dav-process-response): Remove all indentation from XML before parsing. Change call to `xml-parse-region' to do namespace expansion with simple qualified names. (url-dav-request): Add autoload. (url-dav-directory-files): Properly deal with empty directories. Call hexify before generating relative URLs. (url-dav-file-directory-p): Fix bug when checking for 'DAV:collection (resources are returned as a list). -David