Spreading the XML paradigm around

Screenshots of The First Application That Supports ISO/IEC 29500


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.

Figure 1. Browsing OPC package in Emacs

Browsing OPC package in Emacs

There is a nice XML editing mode nxml from James Clark for Emacs. I have associated OOXML schemas with corresponding namespaces in nxml configuration (schemas.xml):



From this point Emacs automatically validates each opened XML piece of package and provides me with autocompletition of element and attributes.

Figure 2. Editing WordprocessingML inside Emacs

Editing WordprocessingML inside Emacs

At least on this simple sample document Emacs is completely interoperable with MS Office as you can see on the following screenshot.

Figure 3. Roundtripping of document between MS Office 2007 and Emacs

Roundtripping of document between MS Office 2007 and Emacs

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.

blog comments powered by Disqus
Copyright © Jiří Kosek, 2006–2018