Gnucash XML Data File XSLT Transformation steps

Matthew Vanecek mevanecek at yahoo.com
Mon Aug 11 00:45:17 CDT 2003


On Sun, 2003-08-10 at 23:18, Derek Atkins wrote:
> Matthew Vanecek <mevanecek at yahoo.com> writes:
> 
> > <gnc-v2 xmlns:cd="http://www.gnucash.org/XML/cd"
> >         xmlns:book="http://www.gnucash.org/XML/book"
> >         xmlns:gnc="http://www.gnucash.org/XML/gnc"
> >         xmlns:cmdty="http://www.gnucash.org/XML/cmdty"
> >         xmlns:trn="http://www.gnucash.org/XML/trn"
> >         xmlns:split="http://www.gnucash.org/XML/split"
> >         xmlns:act="http://www.gnucash.org/XML/act"
> >         xmlns:price="http://www.gnucash.org/XML/price"
> >         xmlns:ts="http://www.gnucash.org/XML/ts"
> >         xmlns:slot="http://www.gnucash.org/XML/kvpslot"
> >         xmlns:cust="http://www.gnucash.org/XML/cust"
> >         xmlns:addr="http://www.gnucash.org/XML/custaddr">
> 
> This is not sufficient -- there are a BUNCH of other namespaces
> that need to be added (at least one for each business object type).
> 
> See the patch in bug #88078.
> 

Good Lord!! Namespaces EVERYWHERRRREEE!!!! Not a problem, really,
because the XSLT processor will bark at you about undeclared namespaces,
and you can just add them to the above declaration list.  That is, if
you're running the processor on the command line.

What's the purpose for the prodigious number of namespaces we use? 
Can't we find a way to simplify and reduce the number of namespaces?

I realized that the write_namespaces...() function would probably be
inadequate.  What would be handy is a dynamic list (or hash) that is
processed at file save time.  If you add an object, you add the object's
namespace to the hash.  Being a hash, duplicates are prevented, although
the same namespace could be added many times.  Trade-offs, I guess.  I
just came up with this while poking through some XSLT stuff I'm doing
for other stuff.

Also, I think we should maintain the XML output format, because it is
WAY handy for transforming data to other formats (e.g., HTML for
reports, etc.), and easier to write than, say, Scheme (for
non-developers to write reports, etc.).

> -derek
-- 
Matthew Vanecek
perl -e 'print $i=pack(c5,(41*2),sqrt(7056),(unpack(c,H)-2),oct(115),10);'
********************************************************************************
For 93 million miles, there is nothing between the sun and my shadow except me.
I'm always getting in the way of something...



More information about the gnucash-devel mailing list