A.5. XML GnuCashファイルの変換

XSLTになじみ深いなら、GnuCash XMLデータファイルを他のほとんどいかなるデータフォーマット (例: QIFCSV等) にでも、かなり容易に変換することができます。 GnuCashデータファイルは整形式のXMLです。したがって、XSLTパーサを関連スタイルシートと併せて使用することで変換できます。 よって、適切に書かれたスタイルシートがあれば、設計されたほとんどどんな形式にもファイルを変換することができます。

いくつかの手順を次に示します。 スタイルシートを書くことは異なる時間がかかる仕事です。一つを書くとしたら、必要な作業は次のようになります。

  1. GnuCashファイルを作業ファイルとしてコピーします。 作業ファイルの<gnc-v2>タグ部分を次のように変更します。 ="..."部分に何でも非常に多くの項目を置くことができることに注意してください。 伝統的なのでURLを使用しています (そのような若い技術と言われるかもしれないですが!)。


    <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:entry="http://www.gnucash.org/XML/entry"
            xmlns:lot="http://www.gnucash.org/XML/lot"
            xmlns:invoice="http://www.gnucash.org/XML/invoice"
            xmlns:owner="http://www.gnucash.org/XML/owner"
            xmlns:job="http://www.gnucash.org/XML/job"
            xmlns:billterm="http://www.gnucash.org/XML/billterm"
            xmlns:bt-days="http://www.gnucash.org/XML/bt-days"
            xmlns:sx="http://www.gnucash.org/XML/sx"
            xmlns:fs="http://www.gnucash.org/XML/fs"
            xmlns:addr="http://www.gnucash.org/XML/custaddr">
     

  2. 希望する変換を行うXSLTスタイルシートを作成するか、または既に書かれたものを取得します(知っている限り一つもありませんが、CSVへの変換は作成中です)。

  3. Saxon (http://saxon.sourceforge.net/) またはXalan-J (http://xml.apache.org/) などのXSLT処理系をインストールします。 実際には規格に適合していればどんな処理系でも行うことができます。

  4. 処理系の手順に従って作業ファイルとスタイルシートを実行します。

  5. これにより、希望の出力形式のファイルを得られます。 または、積極的な個人がいたとしたらGnuCashデータファイルをOpenOffice.orgスプレッドシートに変えるスタイルシートを書くかもしれません (さらに言えば逆もまた同様です) 。 QIFではそのようなことはもっと少ない作業で行うことができます。

利点は、この変換を行うSchemeモジュールまたは新規Cルーティンを書く必要はないということです。 XMLおよびXSLTを知っているか学習すれば誰でもこの作業を行うことができます。 ウェブページを書くことに比べたらそんなに大変ではありません。

Anyhow, I just wanted this tidbit to be captured somewhere permanently. The process works on 2.6.14 datafiles, and ought to work on earlier versions, too.