(57)【要約】  変換装置１は、変換前ファイル２１に含まれる複数のデータの形式を変換する際に、形式変換前のデータにｉｄが対応付けられている場合、形式変換後のデータに該ｉｄを対応付け、該ｉｄが対応付けられていない場合、形式変換後のデータに、新たに生成したｉｄを対応付け、形式変換後の複数のデータを含む変換後ファイル２２を生成し（Ｓ３００）、変換後ファイル２２に含まれる複数のデータそれぞれに対応付けられたｉｄと変換後ファイル２２内の位置との変換情報リスト２３を参照して、何れかのｉｄが変換後ファイル２２内の複数の位置に対応付けられているか否かを判定し（Ｓ３１０）、何れかのｉｄが変換後ファイル２２内の複数の位置に対応付けられている場合、複数の位置の何れかのデータに対応付けられたｉｄを変更する（Ｓ３２０）ことで、形式変換後のデータに対応付けられるｉｄの重複チェックに要するメモリ容量を抑制することができる。
2020075282.tif 000002
【特許請求の範囲】
【請求項１】
ファイルに含まれる複数のデータの形式を変換する変換方法において、
形式変換前のデータに該データの識別情報が対応付けられている場合、形式変換後のデータに該識別情報を対応付け、該識別情報が対応付けられていない場合、前記形式変換後のデータに、新たに生成した識別情報を対応付けるアルゴリズムを、前記ファイルに含まれる複数のデータに適用して、前記複数のデータに対応した形式変換後の複数のデータを含む他のファイルを生成し、
前記他のファイルに含まれる複数のデータそれぞれに対応付けられた識別情報と、該複数のデータそれぞれの前記他のファイル内の位置との関係情報を参照して、何れかの識別情報が前記他のファイル内の複数の位置に対応付けられているか否かを判定し、
前記何れかの識別情報が前記他のファイル内の複数の位置に対応付けられている場合、前記他のファイルに含まれる複数のデータの内、前記複数の位置の何れかのデータに対応付けられた識別情報を変更する、
処理をコンピュータが実行することを特徴とする変換方法。
【請求項２】
前記変更する処理は、前記複数の位置に記述された複数のデータにそれぞれ対応付けられた識別情報の内、新たに生成された前記識別情報を変更する、
ことを特徴とする請求項１に記載の変換方法。
【請求項３】
前記生成する処理は、前記ファイルに含まれる複数のデータをそれぞれ読み出したタイミングで前記アルゴリズムを適用して、前記形式変換後のデータを前記他のファイルに追加し、前記形式変換後のデータに対応付けられた識別情報と、該データの前記他のファイル内の位置との関係を、前記関係情報に追加する
ことを特徴とする請求項１に記載の変換方法。
【請求項４】
前記ファイルはＸＢＲＬ形式であり、前記他のファイルはＪＳＯＮ形式である、
ことを特徴とする請求項１に記載の変換方法。
【請求項５】
ファイルに含まれる複数のデータの形式を変換する変換装置において、
形式変換前のデータに該データの識別情報が対応付けられている場合、形式変換後のデータに該識別情報を対応付け、該識別情報が対応付けられていない場合、前記形式変換後のデータに、新たに生成した識別情報を対応付けるアルゴリズムを、前記ファイルに含まれる複数のデータに適用して、前記複数のデータに対応した形式変換後の複数のデータを含む他のファイルを生成する生成部と、
前記他のファイルに含まれる複数のデータそれぞれに対応付けられた識別情報と、該複数のデータそれぞれの前記他のファイル内の位置との関係情報を参照して、何れかの識別情報が前記他のファイル内の複数の位置に対応付けられているか否かを判定する判定部と、
前記何れかの識別情報が前記他のファイル内の複数の位置に対応付けられている場合、前記他のファイルに含まれる複数のデータの内、前記複数の位置の何れかのデータに対応付けられた識別情報を変更する変更部と、
を有することを特徴とする変換装置。
【請求項６】
ファイルに含まれる複数のデータの形式を変換する際に、形式変換前のデータに該データの識別情報が対応付けられている場合、形式変換後のデータに該識別情報を対応付け、該識別情報が対応付けられていない場合、前記形式変換後のデータに、新たに生成した識別情報を対応付けるアルゴリズムを、前記ファイルに含まれる複数のデータに適用して、前記複数のデータに対応した形式変換後の複数のデータを含む他のファイルを生成し、
前記他のファイルに含まれる複数のデータそれぞれに対応付けられた識別情報と、該複数のデータそれぞれの前記他のファイル内の位置との関係情報を参照して、何れかの識別情報が前記他のファイル内の複数の位置に対応付けられているか否かを判定し、
前記何れかの識別情報が前記他のファイル内の複数の位置に対応付けられている場合、前記他のファイルに含まれる複数のデータの内、前記複数の位置の何れかのデータに対応付けられた識別情報を変更する、
処理をコンピュータに実行させることを特徴とする変換プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、変換方法等に関する。
【背景技術】
【０００２】
ＸＢＲＬ（eXtensible  Business  Reporting  Language）による財務諸表を金融庁へ提出することが義務付けられている。ＸＢＲＬとは、ビジネス報告の作成、流通および利用を容易にするためのデータ記述言語として、ＸＭＬ（eXtensible  Markup  Language）をベースに開発された言語である。【０００３】
ＸＢＲＬのデータ形式の財務諸表のデータを他のデータ形式のデータに変換することが行われている。他のデータ形式には、例えば、ＪＳＯＮ（JavaScript（登録商標）  Object  Notation）データ形式、ＸＭＬデータ形式やＣＳＶ（Comma-Separated  Values）データ形式が挙げられる。【０００４】
ＸＢＲＬからＪＳＯＮへのデータ形式の変換の標準仕様では、ＪＳＯＮ形式のデータのファクトは、必ずｉｄ（identifier）を持つことが義務付けられている。したがって、ＸＢＲＬ形式のデータのファクトにｉｄが省略されていた場合には、新規のｉｄが、ＪＳＯＮ形式のデータのファクトに、ｉｄの生成規則に基づいて振られる。新規のｉｄは、既存のｉｄに重複しないように振られる。【０００５】
ＸＢＲＬからＪＳＯＮへのデータ形式の変換では、変換する情報処理装置は、ＸＢＲＬ形式のデータを全てモデルツリーとしてメモリ上に展開する。そして、情報処理装置は、メモリ上に展開したモデルツリーをルートから子孫へ順番に辿りながら、ファクトを検索し、ファクトを見つけたら、ｉｄの有無を判定する。そして、情報処理装置は、ｉｄが存在すれば、ファクトをＪＳＯＮ形式に変換する。一方、情報処理装置は、ｉｄが存在しなければ、新規のｉｄを生成し、メモリ上に展開したモデルツリーをルートから子孫へ順番に辿りながら、新規のｉｄの重複を判定する。そして、情報処理装置は、新規のｉｄが重複していれば、新規のｉｄを修正し、修正後の新規のｉｄの重複を判定する。そして、情報処理装置は、新規のｉｄが重複していなければ、ファクトをＪＳＯＮ形式に変換する。情報処理装置は、全てのファクトの変換が終わるまで、ファクトの検索から変換までの処理を繰り返す。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開第２０１１／０８９６８３号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来のＸＢＲＬからＪＳＯＮへのデータ形式の変換では、新規のｉｄの重複チェックにメモリ容量を要するという問題がある。例えば、ＸＢＲＬからＪＳＯＮへのデータ形式の変換では、情報処理装置が、ＸＢＲＬ形式のデータを全てモデルツリーとしてメモリ上に展開し、ルートから順番にファクトを検索し、ファクトのｉｄの重複チェックをして、ファクトをＪＳＯＮ形式に変換する。かかるｉｄの重複チェックには、ＸＢＲＬ形式のデータサイズの約５倍弱のメモリ容量が必要となる。したがって、ＸＢＲＬからＪＳＯＮへのデータ形式の変換では、新規のｉｄの重複チェックにメモリ容量を要してしまう。【０００８】
なお、上記課題は、ＸＢＲＬからＪＳＯＮへのデータ形式の変換の場合だけではなく、ＸＢＲＬからＸＭＬへのデータ形式の変換やＸＢＲＬからＣＳＶへのデータ形式の変換等の電子データのフォーマット変換の場合等にも同様に生じる課題である。【０００９】
１つの側面では、本発明は、データの形式変換において、形式変換後のデータに対応付けられる識別情報の重複チェックに要するメモリ容量を抑制することを目的とする。
【課題を解決するための手段】
【００１０】
一態様の、ファイルに含まれる複数のデータの形式を変換する変換方法において、形式変換前のデータに該データの識別情報が対応付けられている場合、形式変換後のデータに該識別情報を対応付け、該識別情報が対応付けられていない場合、前記形式変換後のデータに、新たに生成した識別情報を対応付けるアルゴリズムを、前記ファイルに含まれる複数のデータに適用して、前記複数のデータに対応した形式変換後の複数のデータを含む他のファイルを生成し、前記他のファイルに含まれる複数のデータそれぞれに対応付けられた識別情報と、該複数のデータそれぞれの前記他のファイル内の位置との関係情報を参照して、何れかの識別情報が前記他のファイル内の複数の位置に対応付けられているか否かを判定し、前記何れかの識別情報が前記他のファイル内の複数の位置に対応付けられている場合、前記他のファイルに含まれる複数のデータの内、前記複数の位置の何れかのデータに対応付けられた識別情報を変更する、処理をコンピュータが実行する。
【発明の効果】
【００１１】
一つの態様によれば、形式変換後のデータに対応付けられる識別情報の重複チェックに要するメモリ容量を抑制することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施例に係る変換装置の構成を示す機能ブロック図である。
【図２】図２は、変換前ファイルの一例を示す図である。
【図３】図３は、変換後ファイルの一例を示す図である。
【図４】図４は、実施例に係る変換情報リストのデータ構造の一例を示す図である。
【図５】図５は、実施例に係る形式変換処理の流れの一例を示す図である。
【図６】図６は、実施例に係るｉｄ重複判定処理およびｉｄ変換処理の流れの一例を示す図である。
【図７】図７は、実施例に係る形式変換処理のフローチャートの一例を示す図である。
【図８】図８は、実施例に係るｉｄ重複判定処理およびｉｄ変更処理のフローチャートの一例を示す図である。
【図９】図９は、実施例に係る変換処理の効果を説明する図である。
【図１０】図１０は、変換プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１３】
以下に、本願の開示する変換方法、変換装置および変換プログラムの実施例を図面に基づいて詳細に説明する。なお、実施例によりこの発明が限定されるものではない。
【実施例】
【００１４】
［実施例に係る変換装置の構成］
図１は、実施例に係る変換装置の構成を示す機能ブロック図である。図１に示すように、変換装置１は、ＸＢＲＬ形式データのファイルに含まれる複数のデータの形式を変換する。例えば、変換装置１は、ＸＢＲＬ形式データのファイルに含まれる各データを形式変換し、変換後の各データにデータのｉｄ（identifier）を対応付けた他のファイルを生成する。変換後のデータのｉｄは、ＸＢＲＬ形式データに対応付けられている場合には、このｉｄを変換後のデータに対応付ける。変換後のデータのｉｄは、ＸＢＲＬ形式データに対応付けられていない場合には、新たに生成したｉｄを変換後のデータに対応付ける。そして、変換装置１は、他のファイルに含まれる複数のデータそれぞれに対応付けられたｉｄと、該複数のデータそれぞれの他のファイル内の位置との関係情報を参照し、他のファイルに含まれる複数のデータのｉｄを重複判定する。変換装置１は、ｉｄが重複している場合には、重複しているｉｄを変更する。ＸＢＲＬ形式データのファイルは、例えば、財務諸表のファイルを示す。他のファイルは、例えば、ＪＳＯＮ形式データのファイル、ＸＭＬ形式データのファイルやＣＳＶ形式データのファイルを含む。なお、以降では、財務諸表のＸＢＲＬ形式データのファイルを、他のファイルとしてのＪＳＯＮ形式データのファイルに変換する場合を一例として説明する。【００１５】
変換装置１は、制御部１０と、記憶部２０とを有する。【００１６】
制御部１０は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。そして、制御部１０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路またはＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等の電子回路に対応する。さらに、制御部１０は、形式変換部１１と、ｉｄ重複判定部１２と、ｉｄ変更部１３とを有する。なお、形式変換部１１は、生成部の一例である。ｉｄ重複判定部１２は、判定部の一例である。ｉｄ変更部１３は、変更部の一例である。【００１７】
記憶部２０は、例えばフラッシュメモリ（Flash  Memory）やＦＲＡＭ（登録商標）（Ferroelectric  Random  Access  Memory）等の不揮発性の半導体メモリ素子等の記憶装置に対応する。そして、記憶部２０は、変換前ファイル２１と、変換後ファイル２２と、変換情報リスト２３とを有する。【００１８】
変換前ファイル２１は、財務諸表のファイルであり、実施例では、ＸＢＲＬ形式データのファイルである。ここで、変換前ファイル２１の一例を、図２を参照して説明する。図２は、変換前ファイルの一例である。図２に示すように、変換前ファイル２１は、ＸＢＲＬフォーマットで記述されているファイルである。変換前ファイル２１には、複数のデータが記述されている。かかるデータは、「ファクト」と同義である。ファクトは、変換前ファイル２１から読み込んだり後述する変換後ファイル２２に書き込んだりするデータの単位である。【００１９】
一例として、符号Ｆ１で示されるファクトには、要素名として「ｅ１」、要素の値として「ｔｅｓｔ１」が記述されている。このファクトには、ｉｄが存在し、ｉｄとして“ｉ１”が記述されている。符号Ｆ２で示されるファクトには、要素名として「ｅ２」、要素の値として「ｔｅｓｔ２」が記述されている。このファクトには、ｉｄが省略されている。【００２０】
図１に戻って、変換後ファイル２２は、変換前ファイル２１の形式（フォーマット）を変換した後のファイルであり、実施例では、ＪＳＯＮ形式データのファイルである。ＸＢＲＬ形式からＪＳＯＮ形式への変換の標準仕様では、ＪＳＯＮ形式のファクトは、必ずｉｄを持つことが義務付けられている。したがって、ＸＢＲＬ形式のファクトにｉｄが省略されている場合には、ＪＳＯＮ形式のファクトに、新規のｉｄが、生成規則に基づいて生成される。ＪＳＯＮ形式のファクトのｉｄは、ＪＳＯＮ形式のファクトに対応するＸＢＲＬ形式のファクトをトレースするために使用される。言い換えれば、ＪＳＯＮ形式のファクトのｉｄは、ＪＳＯＮ形式データのファイルに、ファクトの欠損がないか、正しく変換されているか等をチェックするために使用される。【００２１】
ここでいうｉｄの生成規則は、以下の＜１＞および＜２＞のように、定義されている。＜１＞新規のｉｄは、「ｆｎｎ_ｍｍ」とする。“ｆ”は、接頭辞である。ｎｎは、ファクトの通し番号であり、ｍｍは、ファクトの通し番号が重複する場合に用いられる補助の通し番号である。＜２＞新規のｉｄは、既存のｉｄに重複しない。既存のｉｄとは、変換前ファイル２１に既に記述されているｉｄのことをいう。なお、変換後ファイル２２は、例えば、形式変換部１１によって生成される。【００２２】
ここで、変換後ファイル２２の一例を、図３を参照して説明する。図３は、変換後ファイルの一例である。図３に示すように、変換後ファイル２２は、ＪＳＯＮフォーマットで記述されているファイルである。変換後ファイル２２には、複数のファクトが記述されている。例えば、符号Ｆ１´で示されるファクトは、図２の符号Ｆ１で示したファクトに対応する。すなわち、符号Ｆ１´で示したファクトは、符号Ｆ１で示したＸＢＲＬ形式のファクトをＪＳＯＮ形式に変換して得られたファクトである。ｉｄには、ＸＢＲＬ形式のファクトのｉｄが反映されている。符号Ｆ２´で示されるファクトは、図２の符号Ｆ２で示したファクトに対応する。すなわち、符号Ｆ２´で示したファクトは、符号Ｆ２で示したＸＢＲＬ形式のファクトをＪＳＯＮ形式に変換して得られたファクトである。ｉｄには、新規のｉｄが生成されている。【００２３】
図１に戻って、変換情報リスト２３は、変換後ファイル２２に含まれる複数のデータそれぞれに対応付けられたｉｄと、該複数のデータそれぞれの変換後ファイル２２内の位置との関係情報である。なお、変換情報リスト２３は、例えば、形式変換部１１によって生成される。【００２４】
ここで、変換情報リスト２３のデータ構造の一例を、図４を参照して説明する。図４は、実施例に係る変換情報リストのデータ構造の一例を示す図である。図４に示すように、変換情報リスト２３は、ｉｄ２３ａ、オフセット２３ｂおよびフラグ２３ｃを対応付けたリストである。ｉｄ２３ａは、変換後ファイル２２内のデータごとに対応付けられた識別情報である。オフセット２３ｂは、変換後ファイル２２の先頭からｉｄまでの相対位置を示す。オフセット２３ｂは、変換後ファイル２２の先頭からｉｄまでの相対位置を示すと説明したが、これに限定されず、変換後ファイル２２の先頭以外の特定の位置からｉｄまでの相対位置であっても良い。オフセット２３ｂは、変換後ファイル２２内のｉｄの位置を見つけるために用いられる。フラグ２３ｃは、ｉｄ２３ａが変換前ファイル２１に記述された既存のｉｄであるか、ｉｄ２３ａが変換前ファイル２１に存在しておらず、新規に生成されたｉｄであるかを識別するフラグである。既存のｉｄである場合には、フラグ２３ｃに、例えば「０」が設定される。新規に生成されたｉｄである場合には、フラグ２３ｃに、例えば「１」が設定される。【００２５】
一例として、ｉｄ２３ａが「ｉ１」である場合には、オフセット２３ｂとして「１０」、フラグ２３ｃとして「０」が設定されている。ｉｄ２３ａが「ｆ２」である場合には、オフセット２３ｂとして「２０」、フラグ２３ｃとして「１」が設定されている。【００２６】
図１に戻って、形式変換部１１は、変換前ファイル２１のデータを形式変換して変換後ファイル２２を生成する。例えば、形式変換部１１は、変換前ファイル２１からデータ（ファクト）を取得する。形式変換部１１は、取得したデータに該データのｉｄが対応付けられている場合、形式変換後のデータに該ｉｄを対応付ける。形式変換部１１は、取得したデータに該データのｉｄが対応付けられていない場合、新規のｉｄを生成し、形式変換後のデータに、新規に生成したｉｄを対応付ける。新規のｉｄは、前述したｉｄの生成規則＜１＞に基づいて生成される。すなわち、形式変換部１１は、直前のデータのｉｄに割り振られている通し番号の次の通し番号を含む「ｆｎｎ」（“ｆ”は接頭辞，“ｎｎ”はファクトの通し番号）を新規のｉｄとして生成する。形式変換部１１は、ｉｄ付きのデータを変換後ファイル２２に追加する。そして、形式変換部１１は、ｉｄと、変換後ファイル２２の先頭から形式変換後のデータのｉｄまでのオフセットと、ｉｄに対応するフラグとを対応付けて変換情報リスト２３に登録する。形式変換部１１は、変換前ファイル２１から次のデータを取得すると、取得したデータに対する形式変換処理を実行し、次のデータが取得できなくなるまで繰り返す。【００２７】
ｉｄ重複判定部１２は、変換情報リスト２３を参照して、ｉｄの重複を判定する。例えば、ｉｄ重複判定部１２は、変換情報リスト２３から新規のｉｄとオフセットとを取得する。一例として、ｉｄ重複判定部１２は、変換情報リスト２３の先頭から終端に向かって、フラグ２３ｃが新規のｉｄであることを示す「１」に対応するｉｄおよびオフセットを取得する。ｉｄ重複判定部１２は、変換情報リスト２３を参照して、取得した新規のｉｄに重複する既存のｉｄがあるか否かを判定する。また、ｉｄ重複判定部１２は、後述するｉｄ変更部１３によって新規のｉｄが変更された場合、さらに、変換情報リスト２３を参照して、変更された新規のｉｄに重複する既存のｉｄがあるか否かを判定する。【００２８】
ｉｄ変更部１３は、ｉｄの重複がある場合には、当該ｉｄを重複しないｉｄに変更する。例えば、ｉｄ変更部１３は、ｉｄ重複判定部１２によって新規のｉｄに重複する既存のｉｄがあると判定された場合には、新規のｉｄを既存のｉｄと重複しないｉｄに変更する。ｉｄは、前述したｉｄの生成規則＜１＞に基づいて変更される。すなわち、ｉｄ変更部１３は、新規のｉｄに補助の通し番号「_ｍｍ」（ｍｍは補助の通し番号）をつけて、新規のｉｄを変更する。【００２９】
また、ｉｄ変更部１３は、変更したｉｄを変換後ファイル２２および変換情報リスト２３に反映する。例えば、ｉｄ変更部１３は、ｉｄ重複判定部１２によって変更された新規のｉｄに重複する既存のｉｄがないと判定された場合には、変換後ファイル２２内の、変換情報リスト２３から取得されたオフセットの位置にある新規のｉｄを、変更された新規のｉｄに修正する。加えて、ｉｄ変更部１３は、変換情報リスト２３について、取得した対象のｉｄを、変更した新規のｉｄに修正するとともに、取得した対象のｉｄ以降のｉｄに対応付けられたオフセットを、変更された新規のｉｄの文字数に合わせて修正する。一例として、新規のｉｄが「ｆ３」であった場合に、新規のｉｄが「ｆ３_１」に変更されると、ｉｄ変更部１３は、新規のｉｄ以降のｉｄ２３ａに対応付けられたオフセット２３ｂを、つけ加えられた「_１」の２文字数分加算して得られる値に修正すれば良い。【００３０】
［形式変換処理の流れの一例］
図５は、実施例に係る形式変換処理の流れの一例を示す図である。なお、図５では、変換前ファイル２１は、ＸＢＲＬフォーマットのファイルであり、変換後ファイル２２は、ＪＳＯＮフォーマットのファイルである。【００３１】
形式変換部１１は、変換前ファイル２１からファクトを取得し、取得したファクトにｉｄが対応付けられているか否かを判定する。形式変換部１１は、取得したファクトにｉｄが対応付けられている場合には、形式変換後のファクトに該ｉｄを対応付ける。形式変換部１１は、取得したファクトにｉｄが対応付けられていない場合、新規のｉｄを生成し、形式変換後のファクトに、生成した新規のｉｄを対応付ける。そして、形式変換部１１は、ｉｄと、変換後ファイル２２の先頭からｉｄまでのオフセットと、フラグとを対応付けて変換情報リスト２３に登録する。【００３２】
ここでは、形式変換部１１は、変換前ファイル２１から、先頭の要素名が「ｅ１」を示すファクトを読み込む。かかるファクトには、「ｉｄ＝“ｉ１”」が記述されているので、ｉｄが対応付けられている。したがって、形式変換部１１は、形式変換後のファクトにｉｄとして“ｉ１”を対応付ける。形式変換部１１は、変換後ファイル２２にｉｄ付きのファクトを書き込む（Ｓ１００）。そして、形式変換部１１は、変換情報リスト２３に対して、ｉｄ２３ａとして“ｉ１”、オフセット２３ｂとして「１０」、フラグ２３ｃとして「０」を対応付けて登録する（Ｓ１０５）。なお、オフセット２３ｂの値は、一例である。【００３３】
次に、形式変換部１１は、変換前ファイル２１から、先頭の要素名が「ｅ２」を示すファクトを読み込む。かかるファクトには、ｉｄが記述されていない。したがって、形式変換部１１は、ｉｄの生成規則に従って新規のｉｄ“ｆ２”を生成する。すなわち、形式変換部１１は、直前のｉｄ“ｉ１”に割り振られている通し番号「１」の次の通し番号「２」を含む「ｆ２」を新規のｉｄとして生成する。そして、形式変換部１１は、形式変換後のファクトに、生成したｉｄ“ｆ２”を対応付ける。形式変換部１１は、変換後ファイル２２にｉｄ付きのファクトを書き込む（Ｓ１１０）。そして、形式変換部１１は、変換情報リスト２３に対して、ｉｄ２３ａとして“ｆ２”、オフセット２３ｂとして「２０」、フラグ２３ｃとして新規のｉｄであることを示す「１」を対応付けて登録する（Ｓ１１５）。なお、オフセット２３ｂの値は、一例である。【００３４】
次に、形式変換部１１は、変換前ファイル２１から、先頭の要素名が「ｅ３」を示すファクトを読み込む。かかるファクトには、ｉｄが記述されていない。したがって、形式変換部１１は、ｉｄの生成規則に従って新規のｉｄ“ｆ３”を生成する。すなわち、形式変換部１１は、直前のｉｄ“ｆ２”に割り振られている通し番号「２」の次の通し番号「３」を含む「ｆ３」を新規のｉｄとして生成する。そして、形式変換部１１は、形式変換後のファクトに、生成したｉｄ“ｆ３”を対応付ける。形式変換部１１は、変換後ファイル２２にｉｄ付きのファクトを書き込む（Ｓ１２０）。そして、形式変換部１１は、変換情報リスト２３に対して、ｉｄ２３ａとして“ｆ３”、オフセット２３ｂとして「３５」、フラグ２３ｃとして新規のｉｄであることを示す「１」を対応付けて登録する（Ｓ１２５）。なお、オフセット２３ｂの値は、一例である。【００３５】
次に、形式変換部１１は、変換前ファイル２１から、先頭の要素名が「ｅ１０」を示すファクトを読み込む。かかるファクトには、「ｉｄ＝“ｆ３”」が記述されているので、ｉｄが対応付けられている。したがって、形式変換部１１は、形式変換後のファクトにｉｄとして“ｆ３”を対応付ける。形式変換部１１は、変換後ファイル２２にｉｄ付きのファクトを書き込む（Ｓ１３０）。そして、形式変換部１１は、変換情報リスト２３に対して、ｉｄ２３ａとして“ｆ３”、オフセット２３ｂとして「４５」、フラグ２３ｃとして「０」を対応付けて登録する（Ｓ１３５）。なお、オフセット２３ｂの値は、一例である。【００３６】
次に、形式変換部１１は、変換前ファイル２１から、先頭の要素名が「ｅ２０」を示すファクトを読み込む。かかるファクトには、「ｉｄ＝“ｆ３_１”」が記述されているので、ｉｄが対応付けられている。したがって、形式変換部１１は、形式変換後のファクトにｉｄとして“ｆ３_１”を対応付ける。形式変換部１１は、変換後ファイル２２にｉｄ付きのファクトを書き込む（Ｓ１４０）。そして、形式変換部１１は、変換情報リスト２３に対して、ｉｄ２３ａとして“ｆ３_１”、オフセット２３ｂとして「６０」、フラグ２３ｃとして「０」を対応付けて登録する（Ｓ１４５）。なお、オフセット２３ｂの値は、一例である。【００３７】
［ｉｄ重複判定処理およびｉｄ変更処理の流れの一例］
図６は、実施例に係るｉｄ重複判定処理およびｉｄ変更処理の流れの一例を示す図である。なお、図６では、図５で示した変換後ファイル２２のｉｄ重複判定処理およびｉｄ変換処理について説明する。【００３８】
ｉｄ重複判定部１２は、変換情報リスト２３の先頭から終端に向かって、フラグ２３ｃが新規のｉｄであることを示す「１」に対応するｉｄおよびオフセットを取得する。ｉｄ重複判定部１２は、変換情報リスト２３を参照して、取得した新規のｉｄの重複を判定する。そして、ｉｄ変更部１３は、新規のｉｄの重複がある場合には、当該ｉｄを重複しないｉｄに変更する。そして、ｉｄ変更部１３は、変更したｉｄを変換後ファイル２２および変換情報リスト２３に反映する。【００３９】
ここでは、ｉｄ重複判定部１２は、変換情報リスト２３の先頭から終端に向かって、フラグ２３ｃが「１」に対応する新規のｉｄ「ｆ２」およびオフセット「２０」を取得する。ｉｄ重複判定部１２は、変換情報リスト２３を参照して、新規のｉｄ「ｆ２」に重複する既存のｉｄがあるか否かを判定する（Ｓ２００）。変換情報リスト２３には、新規のｉｄ「ｆ２」に重複する既存のｉｄが存在しない。【００４０】
次に、ｉｄ重複判定部１２は、変換情報リスト２３の新規のｉｄ「ｆ２」から終端に向かって、フラグ２３ｃが「１」に対応する新規のｉｄ「ｆ３」およびオフセット「３５」を取得する。ｉｄ重複判定部１２は、変換情報リスト２３を参照して、新規のｉｄ「ｆ３」に重複する既存のｉｄがあるか否かを判定する（Ｓ２１０）。変換情報リスト２３には、新規のｉｄ「ｆ３」に重複する既存のｉｄが他のレコードに存在する。そこで、ｉｄ変更部１３は、新規のｉｄ「ｆ３」の重複があるので、ｉｄの生成規則に従って新規のｉｄ“ｆ３”を“ｆ３_１”に変更する。すなわち、ｉｄ変更部１３は、新規のｉｄ“ｆ３”に補助の通し番号「_１」をつけた“ｆ３_１”にｉｄを変更する。【００４１】
そして、ｉｄ重複判定部１２は、変換情報リスト２３を参照して、変更された新規のｉｄ「ｆ３_１」に重複する既存のｉｄがあるか否かを判定する（Ｓ２２０）。変換情報リスト２３には、変更された新規のｉｄ「ｆ３_１」に重複する既存のｉｄが他のレコードに存在する。そこで、ｉｄ変更部１３は、新規のｉｄ「ｆ３_１」の重複があるので、ｉｄの生成規則に従って変更された新規のｉｄ“ｆ３_１”を“ｆ３_２”に変更する。すなわち、ｉｄ変更部１３は、新規のｉｄ“ｆ３_１”に補助の通し番号「_２」を変えた“ｆ３_２”にｉｄを変更する。【００４２】
そして、ｉｄ重複判定部１２は、変換情報リスト２３を参照して、変更された新規のｉｄ「ｆ３_２」に重複する既存のｉｄがあるか否かを判定する（Ｓ２３０）。変換情報リスト２３には、変更された新規のｉｄ「ｆ３_２」に重複する既存のｉｄが他のレコードに存在しない。【００４３】
そして、ｉｄ変更部１３は、変換後ファイル２２内の、変換情報リスト２３から取得されたオフセット「３５」の位置にある新規のｉｄ「ｆ３」を、変更された新規のｉｄ「ｆ３_２」に修正する（Ｓ２４０）。加えて、ｉｄ変更部１３は、変換情報リスト２３について、ｉｄ２３ａを、「ｆ３」から「ｆ３_２」に修正する（Ｓ２５０）。ｉｄ２３ａが「ｆ３」から「ｆ３_２」に修正されたので、ｉｄ変更部１３は、新規のｉｄ「ｆ３_２」以降のｉｄ２３ａに対応付けられたオフセット２３ｂを、２文字数分加算して得られる値に修正する（Ｓ２６０）。ｉｄ２３ａとしての「ｆ３」に対応付けられたオフセット２３ｂは、「４５」から「４７」に修正される。ｉｄ２３ａとしての「ｆ３_１」に対応付けられたオフセット２３ｂは、「６０」から「６２」に修正される。そして、引き続き、ｉｄ重複判定部１２は、変更された新規のｉｄ「ｆ３_２」以降の新規のｉｄの重複判定を繰り返せば良い。【００４４】
これにより、変換装置１は、形式変換後のファクトに対応付けられるｉｄの重複チェックに要するメモリ容量を抑制できる。すなわち、変換装置１は、メモリ上にＸＢＲＬフォーマットの全てのファクトを展開しないで、変換情報リスト２３を利用してｉｄの重複を判定することで、形式変換後のファクトに対応付けられるｉｄの重複チェックに要するメモリ容量を抑制できる。【００４５】
なお、ｉｄ重複判定部１２は、変換情報リスト２３の先頭から終端に向かってｉｄの重複判定を行うと説明した。しかしながら、ｉｄ重複判定部１２は、これに限定されず、変換情報リスト２３の終端から先頭に向かってｉｄの重複判定を行っても良い。かかる場合には、ｉｄ重複判定部１２は、変換情報リスト２３を参照して、新規のｉｄに重複する既存のｉｄがあるか否かを判定する。ｉｄ変更部１３は、ｉｄの重複がある場合には、当該ｉｄを重複しないｉｄに変更し、変更したｉｄを変換後ファイル２２および変換情報リスト２３に反映する。この際、ｉｄ変更部１３は、変換情報リスト２３の、変更されるｉｄ以降のｉｄに対応するオフセット２３ｂを修正しなくても良い。これは、変更されるｉｄ以降のｉｄは重複判定済みであり、オフセットが使用されないからである。これにより、ｉｄ変更部１３は、ｉｄを変更する場合であっても、オフセットを修正しないことで、ｉｄ変更処理を高速に行うことができる。【００４６】
［形式変換処理のフローチャート］
ここで、形式変換部１１が実施する形式変換処理のフローチャートの一例を、図７を参照して説明する。図７は、実施例に係る形式変換処理のフローチャートの一例を示す図である。なお、図７では、変換前ファイル２１をＸＢＲＬ形式データのファイルとし、変換後ファイル２２をＪＳＯＮ形式データのファイルとする。まず、形式変換部１１は、ＸＢＲＬ形式データのファイルからファクトを取得する（ステップＳ１０）。【００４７】
形式変換部１１は、ファクトがあるか否かを判定する（ステップＳ１１）。ファクトがあると判定した場合には（ステップＳ１１；Ｙｅｓ）、形式変換部１１は、ファクトに該ファクトのｉｄがあるか否かを判定する（ステップＳ１２）。ファクトに該ファクトのｉｄがあると判定した場合には（ステップＳ１２；Ｙｅｓ）、形式変換部１１は、ステップＳ１４に移行する。【００４８】
一方、ファクトに該ファクトのｉｄがないと判定した場合には（ステップＳ１２；Ｎｏ）、形式変換部１１は、ｉｄの生成規則に従って、新規のｉｄを生成する（ステップＳ１３）。すなわち、形式変換部１１は、“ｆ”に出現番号（通し番号）を付加した新規のｉｄを生成する。通し番号は、直前のｉｄに割り振られている通し番号の次の通し番号を示す。そして、形式変換部１１は、ステップＳ１４に移行する。ステップＳ１４において、形式変換部１１は、ＪＳＯＮ形式データにｉｄ付きのファクトをＪＳＯＮ形式データのファイルにセットする（ステップＳ１４）。【００４９】
そして、形式変換部１１は、変換情報リスト２３に、ｉｄとオフセットとフラグを登録する（ステップＳ１５）。例えば、オフセットには、ＪＳＯＮ形式データのファイルの先頭から対象のファクトのｉｄまでの相対位置が設定される。フラグには、新規に生成されたｉｄである場合には、新規に生成されたことを示すフラグ値（例えば「１」）が設定され、既存のｉｄである場合には、既存であることを示すフラグ値（例えば「０」）が設定される。そして、形式変換部１１は、次のファクトの処理をすべく、ステップＳ１１に移行する。ステップＳ１１において、ファクトがないと判定した場合には（ステップＳ１１；Ｎｏ）、形式変換部１１は、形式変換処理を終了する。【００５０】
［形式変換処理のフローチャート］
ここで、ｉｄ重複判定部１２が実施するｉｄ重複判定処理およびｉｄ変更部１３が実施するｉｄ変更処理のフローチャートの一例を、図８を参照して説明する。図８は、実施例に係るｉｄ重複判定処理およびｉｄ変更処理のフローチャートの一例を示す図である。なお、図８では、変換前ファイル２１をＸＢＲＬ形式データのファイルとし、変換後ファイル２２をＪＳＯＮ形式データのファイルとする。【００５１】
まず、ｉｄ重複判定部１２は、変換情報リスト２３から新規のｉｄとオフセットを取得する（ステップＳ２０）。例えば、ｉｄ重複判定部１２は、変換情報リスト２３の先頭から終端に向かって、フラグ２３ｃが新規のｉｄであることを示すフラグ値（例えば「１」）に対応するｉｄおよびオフセットを取得する。【００５２】
ｉｄ重複判定部１２は、未処理の新規のｉｄがあるか否かを判定する（ステップＳ２１）。未処理の新規のｉｄがあると判定した場合には（ステップＳ２１；Ｙｅｓ）、ｉｄ重複判定部１２は、変換情報リスト２３を参照して、新規のｉｄに完全一致の既存ｉｄがあるか否かを判定する（ステップＳ２２）。新規のｉｄに完全一致の既存ｉｄがないと判定した場合には（ステップＳ２２；Ｎｏ）、ｉｄ重複判定部１２は、次の新規のｉｄを判定すべく、ステップＳ２１に移行する。【００５３】
一方、新規のｉｄに完全一致の既存ｉｄがあると判定した場合には（ステップＳ２２；Ｙｅｓ）、ｉｄ変更部１３は、このｉｄに対する補助の通し番号（初期値「１」）をカウントアップする（ステップＳ２３）。そして、ｉｄ変更部１３は、ｉｄの生成規則に従って、新規のｉｄに“_補助の通し番号”をつけて、新規のｉｄを変更する（ステップＳ２４）。【００５４】
さらに、ｉｄ重複判定部１２は、変換情報リスト２３を参照して、変更された新規のｉｄに完全一致の既存ｉｄがあるか否かを判定する（ステップＳ２５）。変更された新規のｉｄに完全一致の既存ｉｄがあると判定した場合には（ステップＳ２５；Ｙｅｓ）、ｉｄ重複判定部１２は、ｉｄ変更部１３に新規のｉｄを変更させるべく、ステップＳ２３に移行する。【００５５】
一方、変更された新規のｉｄに完全一致の既存ｉｄがないと判定した場合には（ステップＳ２５；Ｎｏ）、ｉｄ変更部１３は、ＪＳＯＮ形式データのファイルのファクトのｉｄを修正する（ステップＳ２６）。例えば、ｉｄ変更部１３は、ＪＳＯＮ形式データのファイル内の、変換情報リスト２３から取得されたオフセットの位置にあるｉｄを、変更した新規のｉｄに修正する。【００５６】
そして、ｉｄ変更部１３は、変換情報リスト２３のｉｄとオフセットを修正する（ステップＳ２７）。例えば、ｉｄ変更部１３は、変換情報リスト２３について、対象の新規のｉｄを、変更した新規のｉｄに修正するとともに、対象の新規のｉｄ以降のｉｄに対応付けられたオフセットを、変更した新規のｉｄの文字数に合わせて修正する。そして、ｉｄ変更部１３は、ｉｄ重複判定部１２に次の新規のｉｄを判定させるべく、ステップＳ２１に移行する。ステップＳ２１において、未処理の新規のｉｄがないと判定した場合には（ステップＳ２１；Ｎｏ）、ｉｄ重複判定部１２は、ｉｄ重複判定処理を終了する。【００５７】
［実施例の効果］
上記実施例によれば、変換装置１は、ファイルに含まれる複数のデータの形式を変換する。変換装置１は、変換前ファイル２１のデータに該データの識別情報が対応付けられている場合、形式変換後のデータに該識別情報を対応付け、該識別情報が対応付けられていない場合、形式変換後のデータに、新たに生成した識別情報を対応付けるアルゴリズムを、変換前ファイル２１に含まれる複数のデータに適用する。変換装置１は、適用した複数のデータに対応する形式変換後の複数のデータを含む他のファイル（変換後ファイル２２）を生成する。変換装置１は、他のファイルに含まれる複数のデータそれぞれに対応付けられた識別情報と、該複数のデータそれぞれの他のファイル内の位置との関係情報（変換情報リスト２３）を参照して、何れかの識別情報が他のファイル内の複数の位置に対応付けられているか否かを判定する。そして、変換装置１は、何れかの識別情報が他のファイル内の複数の位置に対応付けられている場合、他のファイルに含まれる複数のデータの内、複数の位置の何れかのデータに対応付けられた識別情報を変更する。かかる構成によれば、変換装置１は、形式変換後のデータに対応付けられる識別情報の重複チェックに要するメモリ容量を抑制できる。【００５８】
ここで、変換装置１が実施する変換処理の効果を、図９を参照して説明する。図９は、実施例に係る変換処理の効果を説明する図である。図９に示すように、変換装置１は、変換前ファイル２１のデータに該データの識別情報（ｉｄ）が対応付けられている場合、形式変換後のデータに該ｉｄを対応付け、該ｉｄが対応付けられていない場合、形式変換後のデータに、新たに生成したｉｄを対応付ける。変換装置は、かかるアルゴリズムを変換前ファイル２１に含まれる複数のデータに適用して、複数のデータに対応した形式変換後の複数のデータを含む変換後ファイル２２を生成する（Ｓ３００）。そして、変換装置１は、変換後ファイル２２に含まれる複数のデータそれぞれに対応付けられたｉｄと、該複数のデータそれぞれの変換後ファイル２２内の位置（オフセット）との関係情報（変換情報リスト２３）を参照して、何れかのｉｄが変換後ファイル２２内の複数のオフセットに対応付けられているか否かを判定する（Ｓ３１０）。そして、変換装置１は、何れかのｉｄが変換後ファイル２２内の複数のオフセットに対応付けられている場合、変換後ファイル２２に含まれる複数のデータの内、複数のオフセットの何れかのデータに対応付けられたｉｄを変更する（Ｓ３２０）。【００５９】
すなわち、変換装置１は、変換前ファイル２１から変換後ファイル２２を生成してから、変換情報リスト２３を参照して、変換後ファイル２２内のｉｄの重複チェックを行い、重複している場合に変換後ファイル２２内の重複しているｉｄを更新する。これにより、変換装置１は、メモリ上に変換前ファイル２１の全てのデータを展開しないで、変換情報リスト２３を利用してｉｄの重複を判定することで、変換後ファイル２２内のデータに対応付けられるｉｄの重複チェックに要するメモリ容量を抑制できる。【００６０】
また、上記実施例によれば、変換装置１は、複数の位置に記述された複数のデータにそれぞれ対応付けられた識別情報の内、新たに生成された識別情報を変更する。かかる構成によれば、変換装置１は、新たに生成された識別情報を変更することで、変換後ファイル２２から変換前ファイル２１に対してデータをトレースする際に、識別情報を用いて正しくトレースすることができる。すなわち、変換装置１は、変換後ファイル２２から変換前ファイル２１に対して、データの欠損がないか、正しく変換されているか等を、識別情報を用いて正しくトレースすることができる。【００６１】
また、上記実施例によれば、変換装置１は、変換前ファイル２１に含まれる複数のデータをそれぞれ読み出したタイミングでアルゴリズムを適用して、形式変換後のデータを変換後ファイル２２に追加する。そして、変換装置１は、形式変換後のデータに対応付けられた識別情報と、該データの変換後ファイル２２内の位置との関係を、関係情報（変換情報リスト２３）に追加する。かかる構成によれば、変換装置１は、変換前ファイル２１からデータを読み出したタイミングで、形式変換後のデータに対応付けられた識別情報と、該データの変換後ファイル２２内の位置との関係を変換情報リスト２３に追加する。この結果、変換装置１は、変換前ファイル２１に代えて変換情報リスト２３をメモリに展開することで、変換後ファイル２２内のデータに対応付けられた識別情報の重複チェックを正しく行うことができる。また、変換装置１は、変換後ファイル２２内のデータに対応付けられた識別情報の重複チェックに要するメモリ容量を抑制できる。【００６２】
［プログラム等］
なお、実施例では、変換装置１が、財務諸表のＸＢＲＬ形式データのファイルをＪＳＯＮ形式データのファイルに変換する際に、ＪＳＯＮ形式データのｉｄの重複チェックをする場合について説明した。しかしながら、変換装置１は、これに限定されず、財務諸表のＸＢＲＬ形式データのファイルをＣＳＶ形式データのファイルに変換する際に、ＣＳＶ形式データのｉｄの重複チェックをする場合であっても良い。また、変換装置１は、財務諸表のＸＢＲＬ形式データのファイルをＸＭＬ形式データのファイルに変換する際に、ＸＭＬ形式データのｉｄの重複チェックをする場合であっても良い。【００６３】
また、実施例では、変換装置１が、財務諸表の変換前ファイル２１を変換後ファイル２２に変換する際に、変換後ファイル２２内のデータのｉｄの重複チェックをする場合について説明した。しかしながら、変換装置１は、財務諸表に限定されず、電子データのｉｄつきの形式変換をする際に、形式変換後のファイル内のデータのｉｄの重複チェックをする場合であっても良い。【００６４】
また、変換装置１は、既知のパーソナルコンピュータ、ワークステーション等の情報処理装置に、上記した制御部１０と、記憶部２０等の各機能を搭載することによって実現することができる。【００６５】
また、図示した変換装置１の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、変換装置１の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、ｉｄ重複判定部１２とｉｄ変更部１３とを１個の部として統合しても良い。一方、形式変換部１１を、データを形式変換する変換部と、変換情報リスト２３を作成する作成部とに分散しても良い。また、変換前ファイル２１、変換後ファイル２２および変換情報リスト２３等の記憶部２０を変換装置１の外部装置としてネットワーク経由で接続するようにしても良い。【００６６】
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することによって実現することができる。そこで、以下では、図１に示した変換装置１と同様の機能を実現する特定プログラムを実行するコンピュータの一例を説明する。図１０は、変換プログラムを実行するコンピュータの一例を示す図である。【００６７】
図１０に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ（Central  Processing  Unit）２０３と、ユーザからのデータの入力を受け付ける入力装置２１５と、表示装置２０９を制御する表示制御部２０７を有する。また、コンピュータ２００は、記憶媒体からプログラム等を読取るドライブ装置２１３と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部２１７とを有する。また、コンピュータ２００は、各種情報を一時記憶するメモリ２０１と、ＨＤＤ（Hard  Disk  Drive）２０５を有する。そして、メモリ２０１、ＣＰＵ２０３、ＨＤＤ２０５、表示制御部２０７、ドライブ装置２１３、入力装置２１５、通信制御部２１７は、バス２１９で接続されている。【００６８】
ドライブ装置２１３は、例えばリムーバブルディスク２１１用の装置である。ＨＤＤ２０５は、変換プログラム２０５ａおよび変換処理関連情報２０５ｂを記憶する。ＣＰＵ２０３は、変換プログラム２０５ａを読み出して、メモリ２０１に展開する。変換プログラム２０５ａは、変換プロセスとして機能する。【００６９】
例えば、変換プロセスは、制御部１０の各機能部に対応する。変換処理関連情報２０５ｂは、変換前ファイル２１、変換後ファイル２２および変換情報リスト２３に対応する。【００７０】
なお、変換プログラム２０５ａについては、必ずしも最初からＨＤＤ２０５に記憶させておかなくても良い。例えば、コンピュータ２００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ（Compact  Disk  Read  Only  Memory）、ＤＶＤ（Digital  Versatile  Disk）、光磁気ディスク、ＩＣ（Integrated  Circuit）カード等の「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ２００がこれらから変換プログラム２０５ａを読み出して実行するようにしても良い。
【符号の説明】
【００７１】
１  変換装置
１０  制御部
１１  形式変換部
１２  ｉｄ重複判定部
１３  ｉｄ変更部
２０  記憶部
２１  変換前ファイル
２２  変換後ファイル
２３  変換情報リスト
【図１】
2020075282.tif 000003
【図２】
2020075282.tif 000004
【図３】
2020075282.tif 000005
【図４】
2020075282.tif 000006
【図５】
2020075282.tif 000007
【図６】
2020075282.tif 000008
【図７】
2020075282.tif 000009
【図８】
2020075282.tif 000010
【図９】
2020075282.tif 000011
【図１０】
2020075282.tif 000012
【国際調査報告】
2020075282.tif 000013
2020075282.tif 000014