XML file format

Jim McCormick james_mccormick@yahoo.com
30 May 2002 10:39:33 -0600


I was reading through the April gnucash-user archives and came across a
long thread that started out as a discussion on the pros and cons of the
current XML file format.  I don't regularly read gnucash mailing lists,
but I do regularly use gnucash.  A number of issues were discussed in
this thread which are of great importance to me as a user.  This
discussion tended to contains arguments similar to "I want use technique
X, and here are the reasons why it is better."  Of course, different
techniques have different advantages and disadvantages.  I think the
discussion could be a little more productive with a little more
distinction between desired capabilities and possible ways to achieve
those capabilities.  In this e-mail, I will list some of the features
which which were suggested in this thread as important.  First, however,
I'd like to tell you how I use Gnucash.

Some of the previous discussion revolved around saving time (load time,
run time, save time, ...).  For me the most time consuming part of using
a piece of financial software such as Gnucash is the time required to
enter all of my financial data by hand.  Since most of my financial
informtion is available in some manner on the web (scary, huh), I have
written some PERL code to grab all this information and stuff it into
the Gnucash XML file.  I have been quite successful in this technique
using my already existing PERL skills.  I am even thinking about
releasing some of this code to the world after it gets a little better. 
While there are many other technically possible ways to achieve the
results I have achieved, the point is that the fact that the data was
stored in XML made it possible for me to do this in the language of my
choice with no other documentation than the XML file itself.  The whole
point of XML is ease of data interchange - which brings me to a list of
desired capabilities.

Desired capabilities 
--------------------
1) Ease of data interchange. (this is my biggie)

This is a VERY important requirement for me as a user or app writer. 
Easy data interchange allows me to read or modify my data with the
application of my choice.  An illustration of this issue with which we
are all too familiar is Microsoft Office documents.  If you replace all
of the references to Gnucash file formats with reference to Microsoft
Office file formats, the need for easy data interchange using native
file formats is painfully obvious.  In spite of the fact that Microsoft
Word users could export and exchange files in other more standard
formats, the fact is that such files are almost always passed around in
native file formats.  As Gnucash becomes more and more sucessful (at
least that is the goal, right), I can forsee the day when people are
passing around financial information in Gnucash files.  The ability to
access this data from a variety of tools, not just Gnucash, is very
desirable for users and developers alike.  As a user, I should be able
to use whatever tool I like.  Having a standard, easily accessible and
understandable data format will actually encourage tool development.

2) small disk space footprint (suggested by others)

3) small memory footprint (suggested by others)

4) fast load and save time (suggested by others)

5) add yours here


There are numerous ways to achieve these desired capabilities with
different tradeoffs.  In our discussion of how these capabilities might
be implemented, we shouldn't forget that the goal is to achieve these
capabilities.

Long time Gnucash User,

  -Jim McCormick