QSF XML file backend for gnucash-gnome2-dev branch
Derek Atkins
warlord at MIT.EDU
Tue Jan 25 16:18:58 EST 2005
Neil,
First, I'd like to say Nice Job! I know you've put a lot of hard work
into this, so I hope my comments below don't discourage you... Also,
I should note that I haven't looked at the patch -- I'm basing my
comments below on your particular statements.
Neil Williams <linux at codehelp.co.uk> writes:
> The patch includes the QSF schema for object and map files, it includes code
> to install the schema in a qsf sub-directory of $prefix/share/ and it also
> includes a test QSF map that will be the next phase of development to map
> pilot-link QOF objects into GnuCash objects.
I'm wondering if these shouldn't go into $prefix/share/xml/gnucash/...
(or .../share/xml/qof). You don't say specifically where under
$prefix/share you're putting them.
> Importing data will be done via a second QofSession, loading the QSF XML using
> qof_session_load which will automatically call qof_book_merge to control the
> merge into the existing QofBook in the original QofSession. I'll add File
> menu options for this in due course.
What happens if I just run File -> Open and select of QSF file? Will
it "automatically call qof_book_merge"? I think the "load" and
"merge" apis should definitely be separable.
> QSF source files are included in src/backend/file and create their own
> library, gnucash/libqsf-backend-file.so
I think the code should probably go into src/backend/qsf instead of
backend/file. Also, the library should probably be called
libgnc-backend-qsf (or libqof-backend-qsf).
> The patch also includes error codes and error messages related to QSF
> validation and parsing.
Where?
> QSF increases the libxml2 requirement to 2.6.0 for the gnome2 branch to
> support the schema validation which identifies QSF files relative to existing
> files.
This is a major issue. Our target platform has libxml2-2.5.10, not
2.6. We cannot depend on 2.6.
> QSF uses UTC time throughout and uses this time format string:
> #define QSF_XSD_TIME "%Y-%m-%dT%H:%M:%SZ"
Is there any particular reason you didn't use the existing Timespec
XML encoding?
> QOF_TYPE_INT32 is not a problem, QOF_TYPE_KVP is a little more of a challenge.
Why is QOF_TYPE_KVP a challenge? KVPs are used a lot in gnucash (and
in particular in the business feature integration with the rest of
gnucash).
Nice work so far,
-derek
--
Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
Member, MIT Student Information Processing Board (SIPB)
URL: http://web.mit.edu/warlord/ PP-ASEL-IA N1NWH
warlord at MIT.EDU PGP key available
More information about the gnucash-devel
mailing list