New XML file format for QOF?

Josh Sled jsled at asynchronous.org
Fri Oct 29 12:15:14 EDT 2004


On Fri, 2004-10-29 at 04:48, Neil Williams wrote:

> The main difference is that I would like to use the XML for data interchange 
> between QOF applications and to make the format more like a simple bag than a 
> tree:

"bag vs. tree" isn't really the problem, is it?


What's wrong with your palm conduit just writing out gnucash's existing
format?  There's no requirement that the palm conduit use gnucash's data
model or object hierarchy...

> <?xml version="1.0"?>
> <qof-bag-v1>
> <qof:count-data cd:type="book">1</qof:count-data>
> <qof:book version="1.0.0">
>  <book:id type="guid">c0dd5ca1b11338f3ceae57f6e0106d75</book:id>
>  <qof:count-data cd:type="qof-expenses">1</qof:count-data>
>  <qof:object version="1.0.0" type="qof-expenses">
>   <obj:desc type="qof-expenses">Pilot-link QOF expenses</obj:desc>
>   <obj:id type="guid">c9c3c49db198b3b87e8d513e618f9078</obj:id>
>   <obj:date type="expense_date">1099016941</obj:date>
>   <obj:int32 type="type_of_expense">7</obj:int32>
>   <obj:int32 type="form_of_payment">2</obj:int32>
>   <obj:int32 type="currency_code">1</obj:int32>
>   <obj:int32 type="expense_amount">32</obj:int32>
>   <obj:int64/>
>   <obj:boolean/>
>   <obj:string type="expense_vendor">Company Name</obj:string>
>   <obj:string type="expense_city">City Name</obj:string>
>   <obj:string type="expense_attendees">Names</obj:string>
>   <obj:string type="expense_note">Any string content</obj:string>
>   <obj:gnc_numeric>
>    <obj:gnc_numeric_enum/>
>    <obj:gnc_numeric_denom/>
>   </obj:gnc_numeric>
>  </qof:object>
> </qof:book>
> </qof-bag-v1>

* do you really mean "bag", or just "collection"?

* the outer element isn't namespaced [<qof:bag>?]

* the "-v1" isn't really necessary -- that could very well be in the 
  namespace.

* the "version=x.y.z" is probably not necessary, either...

* is a "book" a first-order concept in QOF?  If not, how does the 
  serialization layer know about "book"s?  How does it get the 
  namespace declaration from the application layer?


> This way, the XML can hold any compatible QOF data.

I suggest you take a look at RDF, which attempts to do something
similar, but I think more effectively.  At least some of the things
they've addressed should be present in this.

...jsled

-- 
http://asynchronous.org/ - `a=jsled; b=asynchronous.org; echo ${a}@${b}`


More information about the gnucash-devel mailing list