nXML in earnest

So, for various undisclosed reasons it’s time to start seriously hacking XML. Now, the end artifact of this will be one of the few situations where XML is actually justified and makes this process better.

Of course, Emacs is a must for this challenge. I wouldn’t even try doing it without a real editor. Now, the undisputed king of XML in Emacs is nXML-mode. I want it everywhere. So the first step is to bring out Trang and convert all DTD’s into RelaxNG. Then edit schemas.xml and we’re running. Well, except for the simple fact that Emacs refuses to load anything else than xml-mode automatically. That sucks.

So after lots of looking, it seems there is a new magic-mode-alist that can look at the beginning of a buffer and “magically” decide what kind of buffer we’re dealing with. For some reason this behavior overrides my carefully laid out auto-mode-alist. Well. The solution for all you people is simple. Just add this snippet late in your loading process:

(setq magic-mode-alist
(cons '("<\\?xml " . nxml-mode)
(fset 'xml-mode 'nxml-mode)