Re: RFP: CompoundStorage document



Hi Dom,
	I know you've been think about this a lot. I don't quite see the
benefits for a whole lot of extra pain.

On Wed, 10 Apr 2002, Dom Lachowicz wrote:

> KDE has something like this, and I'd think that it would be a good idea for 
> us to have something like it too. Feel free to disagree with me (or make my 
> argument better, for that matter).
> 
> What I'd like to see is an abstract baseclass/interface which sensibly 
> represents a compound document. Some requirements would be:
> 
> 1) Easy mime-type identification (possibly achieved through points 2,3)

In the case of abiword, this can be easily incorporated inside an XML
structure and stored along with the XML contents inside a data item in
our piecetable.

> 2) Creation of heirarchical structure (subfolders inside of the document)

Why do we want that? 

> 3) Creation of streams within the root folder (/) and subfolders

Likewise, why do we want this?

> 4) "Normal" file operations, such as reading, writing, seeking, ...
> 
> This storage interface could be then implemented by things such as:
> 
> * Zip/JAR (ala OpenOffice)
> * OLE2
> * TGZ (ala KOffice)
> 
> I think that having a nice base interface which can be implemented by 
> subclasses would be a great leap for us, especially as we try to achieve 
> greater compatibility with existing products on the market, such as MSFT and 
> OpenOffice.

Ok I can see this argument but I can easily imagine an abiword compound
document consisting of XML encoded data items with mime-type labelling
each item. So for example an embedded gnumeric spreadhsheet is just a
another image type with a data item that labels it as a gnumeric object
and the actual description of the spreadsheet in ordinary gnumeric XML
being the cone=tents of the data item. 

How do subfolders help us?

 > 
> Just a throught up for grabs - I'd be interested in working on something 
> like this. As a side bonus, other non-office applications could potentially 
> benefit from this too.

Cheers

Martin





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]