A Document Object Model serves more than one goal. Apart from storing the document’s data, it also supports scripting and serialization. It’s also the backbone for talking about compatibility, extensibility and testing.
In this talk I’ll propose to use Relax NG for describing a new Scribus file format that also serves as DOM. With some tools, design patterns and Qt’s metaobject framework it will be possible to generate a DOM that maps 1:1 to the new file format and is accessible to scripts.