Spreading the XML paradigm around
Blogosphere has been full of speculations about when and if ever Microsoft will support ISO/IEC 29500 format in MS Office. Some people believe and wish that OpenOffice.org with ISO/IEC 29500 support will be released earlier then MS Office. But don't get fooled, the first application conforming to ISO/IEC 29500 is out, it is neither MS Office nor OpenOffice.org, it is coming from Free Software Foundation and you can see screenshots here.
OOXML is just bunch of XML files stored inside ZIP archive. Conforming OOXML document must be valid against schemas provided in ISO/IEC 29500 and must follow few other rules which can't be directly expressed in schema (like conforming to packaging rules defined in OPC).
Murata Makoto kindly provided me with RELAX NG schemas for ISO/IEC 29500. Having those schemas it was just matter of minutes to turn my good old Emacs into superb OOXML editor.
First I have to instruct Emacs to treat OOXML files with WordprocessingML as ZIP archives:
(setq auto-mode-alist (cons '("\\.docx\\'" . archive-mode) auto-mode-alist))
After this change, I was able to browse packaged file and open any part inside it.
There is a nice XML editing mode
nxml from James Clark for Emacs. I have associated OOXML
schemas with corresponding namespaces in nxml configuration
<namespace ns="http://schemas.openxmlformats.org/wordprocessingml/2006/main" typeId="WordML"/> <typeId id="WordML" uri="…/WordprocessingML_Main_Document.rnc"/>
From this point Emacs automatically validates each opened XML piece of package and provides me with autocompletition of element and attributes.
At least on this simple sample document Emacs is completely interoperable with MS Office as you can see on the following screenshot.
Now, when neither Microsoft nor OpenOffice.org team could be the first to provide ISO/IEC 29500 support I hope their focus will be on quality and conformance of their implementations.