(57)【要約】  文書変換装置（１）は、ＸＢＲＬ文書（４１）の項目間の階層関係を含む表示ツリー（２２１）に基づいて、財務報告書（２１）に含まれる項目のうちＸＢＲＬ文書（４１）において子を有する項目に対応する項目を検出し、検出した項目である検出項目の内容を分割し、分割された内容を、検出項目に対応するＸＢＲＬ文書（４１）における項目の子項目に対応付け、対応付けられた内容と子項目とを用いて、財務報告書（２１）をＸＢＲＬ文書（４１）に変換する。これにより、文書変換装置（１）は、財務報告書（２１）の科目を表示ツリー（２２１）の要素に適切にマッピングできる。
2014010068.tif 000002
【特許請求の範囲】
【請求項１】
第１の文書から第２の文書に変換するプログラムにおいて、
前記第２の文書の項目間の階層関係を含む階層化文書に基づいて、前記第１の文書に含まれる項目のうち前記第２の文書において子を有する項目に対応する項目を検出し、前記検出した項目である検出項目の内容を分割し、
前記分割された内容を、前記検出項目に対応する前記第２の文書における項目の子項目に対応付け、
前記対応付けられた内容と前記子項目とを用いて、前記第１の文書を前記第２の文書に変換する
処理をコンピュータに実行させることを特徴とするプログラム。
【請求項２】
前記分割する処理は、前記検出項目の内容を、前記検出項目に対応する前記第２の文書における項目の子項目のデータ型に応じて分割する
処理をコンピュータに実行させることを特徴とする請求項１に記載のプログラム。
【請求項３】
前記分割する処理は、前記検出項目の内容に、子項目に対応付ける内容として不要な文字列がある場合には、前記検出項目の内容から不要な文字列を削除する
処理をコンピュータに実行させることを特徴とする請求項１または請求項２に記載のプログラム。
【請求項４】
前記分割する処理は、前記検出項目に対応する前記第２の文書における項目の子項目のデータ型が文字列型である場合、前記検出項目の内容に、予め定義された、子項目に紐付く特定の文字列と一致する文字列が含まれていれば、前記検出項目の内容から一致する文字列を抽出し、抽出した文字列を分割された内容とする
処理をコンピュータに実行させることを特徴とする請求項２に記載のプログラム。
【請求項５】
前記分割する処理は、前記検出項目の内容に、予め定義された、子項目に紐付く特定の文字列と一致する文字列が含まれていなければ、前記検出項目の内容に区切り文字または空白文字がある場合には、前記検出項目の内容の先頭から区切り文字または空白文字の前までの文字列を分割された内容とする
処理をコンピュータに実行させることを特徴とする請求項４に記載のプログラム。
【請求項６】
第１の文書から第２の文書に変換する文書変換装置において、
前記第２の文書の項目間の階層関係を含む階層化文書に基づいて、前記第１の文書に含まれる項目のうち前記第２の文書において子を有する項目に対応する項目を検出し、前記検出した項目である検出項目の内容を分割する分割部と、
前記分割部によって分割された内容を、前記検出項目に対応する前記第２の文書における項目の子項目に対応付ける対応付け部と、
前記対応付け部によって対応付けられた内容と前記子項目とを用いて、前記第１の文書を前記第２の文書に変換する変換部と
を有することを特徴とする文書変換装置。
【請求項７】
第１の文書から第２の文書に変換するコンピュータが、
前記第２の文書の項目間の階層関係を含む階層化文書に基づいて、前記第１の文書に含まれる項目のうち前記第２の文書において子を有する項目に対応する項目を検出し、前記検出した項目である検出項目の内容を分割し、
前記分割された内容を、前記検出項目に対応する前記第２の文書における項目の子項目に対応付け、
前記対応付けられた内容と前記子項目とを用いて、前記第１の文書を前記第２の文書に変換する
各処理を実行することを特徴とする文書変換方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、文書変換装置および文書変換方法に関する。
【背景技術】
【０００２】
ＸＢＲＬ（eXtensible  Business  Reporting  Language）文書による財務諸表を金融庁へ提出することが義務付けられている。ＸＢＲＬ文書とは、例えば財務会計報告に関して、ＸＭＬ（eXtensible  Markup  Language）をベースにした報告書記述言語であるＸＢＲＬで記述された文書である。ＸＢＲＬ文書で用いられる要素（ＸＢＲＬ要素）には階層関係があり、階層関係は階層化文書によって示される。ＸＢＲＬ文書による財務諸表を提出すべき企業は、提出前に、ワープロ文書の財務諸表に含まれる各科目を、ＸＢＲＬ文書で用いられる各要素に対応付けて、ＸＢＲＬ文書を作成する。【０００３】
また、テキスト文書の各科目を階層化文書の各要素に対応付けるマッピングエンジンの技術が開示されている。かかる技術では、マッピングエンジンが、テキスト文書の各科目について、予め定められた関係に従った順序での入力を受け付け、入力を受け付けた科目に対応する階層化文書の要素を検索する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−３１６７６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した技術では、テキスト文書の財務諸表からＸＢＲＬ文書を作成する際、テキスト文書の科目を階層化文書の要素に適切にマッピングすることができない場合があるという問題があった。すなわち、テキスト文書の科目と階層化文書の要素とが１対１に対応していることを前提としているので、１対Ｎの場合に対応できない。つまり、テキスト文書の１個の科目が階層化文書のＮ個の要素に対応している場合、マッピングエンジンは、当該科目を階層化文書の該当する要素に適切にマッピングすることができない。【０００６】
図１２〜図１４は、テキスト文書の科目を階層化文書の要素に適切にマッピングすることができない例を示す図である。図１２は、財務報告書の各科目と科目値の一例を示す図である。図１３および図１４は、階層化文書の各ＸＢＲＬ要素の関係の一例を示す図である。マッピングエンジンは、図１２に示す１個の科目である「報告期間」を、図１３に示す階層化文書の「報告期間」にマッピングすることができる。しかしながら、図１４に示す階層化文書の「報告期間」には、１つ下の階層に「期」と「開始日」と「終了日」とが存在している。すなわち、１個の科目が３個の要素に対応しているので、マッピングエンジンは、図１２に示す１個の科目である「報告期間」を、図１４に示す階層化文書の「報告期間」に適切にマッピングすることができない。【０００７】
１つの側面では、本発明は、テキスト文書の財務情報からＸＢＲＬ文書を作成する際、テキスト文書の科目を階層化文書の要素に適切にマッピングすることを目的とする。
【課題を解決するための手段】
【０００８】
一態様のプログラムは、第１の文書から第２の文書に変換するプログラムにおいて、前記第２の文書の項目間の階層関係を含む階層化文書に基づいて、前記第１の文書に含まれる項目のうち前記第２の文書において子を有する項目に対応する項目を検出し、前記検出した項目である検出項目の内容を分割し、前記分割された内容を、前記検出項目に対応する前記第２の文書における項目の子項目に対応付け、前記対応付けられた内容と前記子項目とを用いて、前記第１の文書を前記第２の文書に変換する処理をコンピュータに実行させる。
【発明の効果】
【０００９】
一つの態様によれば、テキスト文書の財務情報からＸＢＲＬ文書を作成する際、テキスト文書の科目を階層化文書の要素に適切にマッピングすることができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例に係る文書変換装置の構成を示す機能ブロック図である。
【図２】図２は、財務報告書の表紙のレイアウトの一例を示す図である。
【図３】図３は、表示ツリーの構成の一例を示す図である。
【図４】図４は、要素宣言のデータ構造の一例を示す図である。
【図５Ａ】図５Ａは、マッピング補助情報のデータ構造の一例を示す図（１）である。
【図５Ｂ】図５Ｂは、マッピング補助情報のデータ構造の一例を示す図（２）である。
【図６】図６は、実施例に係る文書変換処理の主処理の手順を示すフローチャートである。
【図７】図７は、実施例に係るマッピング処理の手順を示すフローチャート（１）である。
【図８】図８は、実施例に係るマッピング処理の手順を示すフローチャート（２）である。
【図９】図９は、実施例に係るマッピング処理の手順を示すフローチャート（３）である。
【図１０】図１０は、実施例に係るマッピング処理の手順を示すフローチャート（４）である。
【図１１】図１１は、文書変換プログラムを実行するコンピュータの一例を示す図である。
【図１２】図１２は、財務報告書の各科目と科目値を示す図である。
【図１３】図１３は、階層化文書の各ＸＢＲＬ要素の関係を示す図（１）である。
【図１４】図１４は、階層化文書の各ＸＢＲＬ要素の関係を示す図（２）である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示するプログラム、文書変換装置および文書変換方法の実施例を図面に基づいて詳細に説明する。なお、実施例によりこの発明が限定されるものではない。
【実施例】
【００１２】
［実施例に係る文書変換装置の構成］
図１は、実施例に係る文書変換装置の構成を示す機能ブロック図である。図１に示すように、文書変換装置１は、財務報告書２１とＸＢＲＬ要素の定義体２２とマッピング補助情報２３とを入力し、ＸＢＲＬ要素の定義体２２とマッピング補助情報２３とを用いて、財務報告書２１をＸＢＲＬ文書４１に変換する。【００１３】
財務報告書２１は、テキスト形式（ワード形式を含む）で作成された財務諸表であり、科目名と科目値とから表される。なお、財務報告書２１のレイアウトの一例については、後述する。【００１４】
ＸＢＲＬ要素の定義体２２は、ＸＢＲＬ文書４１で用いられる要素（ＸＢＲＬ要素）を定義する定義体であり、表示ツリー２２１および要素宣言２２２を有する。ここで、ＸＢＲＬ文書４１とは、財務報告に関して、ＸＭＬをベースにした報告書記述言語であるＸＢＲＬで記述された文書である。ＸＢＲＬ文書４１は、タクソノミおよびインスタンスからなる。タクソノミとは、ＸＢＲＬ要素の体系を定義したものであり、スキーマとリンクベースとからなる。スキーマとは、ＸＢＲＬ要素の名前やデータ型等の属性情報を記憶する辞書であり、実施例では要素宣言２２２に対応する。リンクベースとは、例えばＸＢＲＬ要素間の親子関係や表示順や表示名等を記述する文書である。そして、インスタンス（ＸＢＲＬインスタンスともいう）とは、ＸＢＲＬ要素の具体的な値を記述した報告文書である。なお、表示ツリー２２１および要素宣言２２２の構成例については、後述する。【００１５】
マッピング補助情報２３は、財務報告書２１の科目値をＸＢＲＬ要素にマッピングする際に用いられる補助情報である。なお、マッピング補助情報２３の内容については、後述する。【００１６】
また、文書変換装置１は、記憶部２と、制御部３とを有する。【００１７】
記憶部２は、例えばフラッシュメモリ（Flash  Memory）やＦＲＡＭ（登録商標）（Ferroelectric  Random  Access  Memory）等の不揮発性の半導体メモリ素子等の記憶装置に対応する。そして、記憶部２は、財務報告書２１、ＸＢＲＬ要素の定義体２２およびマッピング補助情報２３を有する。【００１８】
財務報告書２１は、後述する入力部３０によって記憶部２に格納される。ＸＢＲＬ要素の定義体２２は、後述する入力部３０によって記憶部２に格納される。マッピング補助情報２３は、後述する入力部３０によって記憶部２に格納される。【００１９】
制御部３は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。そして、制御部３は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路またはＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等の電子回路に対応する。さらに、制御部３は、入力部３０と、レイアウト解析部３１と、定義体解析部３２と、マッピング部３３と、出力部３４とを有する。【００２０】
入力部３０は、財務報告書２１を入力し、入力した財務報告書２１を記憶部２に格納する。また、入力部３０は、ＸＢＲＬ要素の定義体２２を入力し、入力したＸＢＲＬ要素の定義体２２を記憶部２に格納する。また、入力部３０は、マッピング補助情報２３を入力し、入力したマッピング補助情報２３を記憶部２に格納する。例えば、入力部３０は、財務報告書２１、ＸＢＲＬ要素の定義体２２、マッピング補助情報２３をファイルにより入力する。【００２１】
レイアウト解析部３１は、財務報告書２１のレイアウトを解析する。例えば、レイアウト解析部３１は、財務報告書２１を記憶部２から読み出し、読み出した財務報告書２１より、ＸＢＲＬ要素にマッピングする科目の名前と値とを取得する。ここで、財務報告書２１のレイアウトについて、図２を参照して説明する。図２は、財務報告書の表紙のレイアウトの一例を示す図である。図２に示すように、財務報告書２１の表紙には、科目名２１ａと科目値２１ｂが記述されている。科目名２１ａは、科目の名前を示す。科目値２１ｂは、科目名に対する値（文字列）を示す。一例として、科目名２１ａが「提出書類」である場合、科目値２１ｂとして「有価証券報告書」が記述されている。科目名２１ａが「報告期間」である場合、科目値２１ｂとして「第１００期（自  平成２２年４月１日  至  平成２３年３月３１日」が記述されている。【００２２】
定義体解析部３２は、ＸＢＲＬ要素の定義体２２を解析する。例えば、定義体解析部３２は、ＸＢＲＬ要素の定義体２２を記憶部２から読み出す。そして、定義体解析部３２は、ＸＢＲＬ要素の定義体２２の表示ツリー２２１より、いずれかのＸＢＲＬ要素にマッピングしようとしている財務報告書２１の科目の名前と一致または類似する表示名か要素名を持つＸＢＲＬ要素を取得する。そして、定義体解析部３２は、ＸＢＲＬ要素の定義体２２の要素宣言２２２より、取得したＸＢＲＬ要素の要素宣言を取得する。ここで、表示ツリー２２１および要素宣言２２２の構成について、図３および図４を参照して説明する。【００２３】
図３は、表示ツリーの構成の一例を示す図である。図３に示すように、表示ツリー２２１には、ＸＢＲＬ要素の表示上の要素間の関係がツリー構造で表されている。ＸＢＲＬ要素は、表示名と要素名を使って表される。一例として、表示名が「提出書類」である場合、要素名として「ReportName」が記述されている。このＸＢＲＬ要素には、子孫関係の要素が存在しない。また、別の例として、表示名が「報告期間」である場合、要素名として「ReportingPeriod」が記述されている。このＸＢＲＬ要素には、表示名がそれぞれ「期」、「開始日」、「終了日」の子孫関係のＸＢＲＬ要素が存在している。表示名が「期」である場合、要素名として「StageOfReportingPeriod」が記述されている。表示名が「開始日」である場合、要素名として「StartDateOfReportingPeriod」が記述されている。表示名が「終了日」である場合、要素名として「EndDateOfReportingPeriod」が記述されている。【００２４】
図４は、要素宣言のデータ構造の一例を示す図である。図４に示すように、要素宣言２２２には、要素名２２２ｂと、抽象要素フラグ２２２ｃと、ｎｉｌ値許可フラグ２２２ｄと、データ型２２２ｅと、制約２２２ｆとが対応付けて記憶される。なお、説明の便宜上、要素宣言２２２には、ＸＢＲＬ要素の表示名であって要素名２２２ｂに対応する表示名を表示名２２２ａとして記載するものとする。要素名２２２ｂは、ＸＢＲＬ要素の要素名を示す。抽象要素フラグ２２２ｃは、具体的な値がマッピングされない抽象要素（見出し）であるか否かを示すフラグである。抽象要素である場合には、例えば「○」が設定され、抽象要素でない場合には、例えば「×」が設定される。ｎｉｌ値許可フラグ２２２ｄは、ｎｉｌ値を許可する要素であるか否かを示すフラグである。ｎｉｌ値を許可する要素である場合には、例えば「○」が設定され、ｎｉｌ値を許可しない要素である場合には、例えば「×」が設定される。なお、ｎｉｌ値とは、ＮＵＬＬ値（空値）と同義であり、値をもたないことを意味する。データ型２２２ｅは、マッピングされる値のデータ型を示す。例えば、文字列の場合には「文字列型」、日付の場合には「日付型」、正の整数の場合には「正の整数型」が設定される。制約２２２ｆは、要素にマッピングされる値の書式の制約を示す。例えば、数字３桁と数字４桁をハイフンでつなぐ書式の制約がある場合には、その旨が設定される。【００２５】
一例として、表示名２２２ａが「報告期間」である場合、抽象要素フラグ２２２ｃとして「○」、ｎｉｌ値フラグ２２２ｄとして「×」、データ型２２２ｅとして「文字列型」が設定される。表示名２２２ａが「期」である場合、抽象要素フラグ２２２ｃとして「×」、ｎｉｌ値フラグ２２２ｄとして「×」、データ型２２２ｅとして「正の整数型」が設定される。表示名２２２ａが「開始日」である場合、抽象要素フラグ２２２ｃとして「×」、ｎｉｌ値フラグ２２２ｄとして「×」、データ型２２２ｅとして「日付型」が設定される。【００２６】
図１に戻って、マッピング部３３は、ＸＢＲＬ要素の定義体２２に基づいて、財務報告書２１に含まれる科目のうちＸＢＲＬ文書４１において子孫を有する要素に対応する科目を検出する。例えば、マッピング部３３は、定義体解析部３２によって取得されたＸＢＲＬ要素の要素宣言に基づいて、ＸＢＲＬ要素が抽象要素であるか否かを判定する。そして、マッピング部３３は、ＸＢＲＬ要素が抽象要素であると判定した場合、表示ツリー２２１のＸＢＲＬ要素間の親子関係に基づいて、当該ＸＢＲＬ要素が表示ツリー２２１上で階層化されている、すなわち子孫の要素を有しているか否かを判定する。そして、マッピング部３３は、ＸＢＲＬ要素が表示ツリー２２１上で階層化されていると判定した場合、当該ＸＢＲＬ要素を幾つかの要素から構成された要素と判断する。すなわち、マッピング部３３は、当該ＸＢＲＬ要素にマッピングする科目を、その科目値を分割すべき科目として検出する。【００２７】
マッピング部３３は、ＸＢＲＬ要素の定義体２２に基づいて、検出した科目の科目値を分割し、分割した科目値の各値を、対応するＸＢＲＬ要素の子孫の要素にマッピングする。例えば、マッピング部３３は、表示ツリー２２１から、検出した科目に対応するＸＢＲＬ要素の子孫要素を、出現順に選択する。そして、マッピング部３３は、選択した子孫要素に対応する要素宣言を要素宣言２２２から取得する。そして、マッピング部３３は、取得した要素宣言内のデータ型２２２ｅに合致した部分を、検出した科目の科目値から抽出し、抽出した部分を、選択中の子孫要素にマッピングする。ここで、マッピング部３３は、データ型２２２ｅに合致した部分を科目値から抽出できない場合、選択中の子孫要素がｎｉｌ値を許可する要素であれば科目値の入力が省略されたと判断する。そして、マッピング部３３は、選択中の子孫要素に何もマッピングしない。そして、マッピング部は、代わりに、ｎｉｌ値に関する属性であるｎｉｌ属性にｎｉｌ値であることを示す「ｔｒｕｅ」を設定する。なお、ｎｉｌ値を許可する要素であるか否かは、子孫要素の要素宣言内のｎｉｌ値許可フラグ２２２ｄによって判定される。【００２８】
具体例として、図２で示す財務報告書２１内の科目「報告期間」を図３で示す表示ツリー２２１上のＸＢＲＬ要素「報告期間」へマッピングする場合について説明する。なお、ＸＢＲＬ要素の要素宣言として、図４で示す要素宣言２２２が用いられるものとする。マッピング部３３は、ＸＢＲＬ要素「報告期間」の要素宣言に基づいて、ＸＢＲＬ要素が抽象要素であるか否かを判定する。ここでは、マッピング部３３は、図４で示す要素宣言２２２のうちＸＢＲＬ要素「報告期間」の要素宣言の抽象要素フラグ２２２ｃが「○」であるので、ＸＢＲＬ要素「報告期間」は抽象要素であると判定する。【００２９】
そして、マッピング部３３は、ＸＢＲＬ要素「報告期間」が抽象要素であると判定したので、表示ツリー２２１のＸＢＲＬ要素間の親子関係に基づいて、ＸＢＲＬ要素「報告期間」が表示ツリー２２１上で子孫の要素を持つか否かを判定する。ここでは、マッピング部３３は、図３で示す表示ツリー２２１に基づいて、ＸＢＲＬ要素「報告期間」が３つの子孫の要素「期」、「開始日」、「終了日」を持つと判定する。したがって、マッピング部３３は、ＸＢＲＬ要素「報告期間」を３つの要素から構成されていると判断する。すなわち、マッピング部３３は、ＸＢＲＬ要素「報告期間」にマッピングする科目「報告期間」を、その科目値を分割すべき科目として検出する。【００３０】
そして、マッピング部３３は、表示ツリー２２１から、検出した科目「報告期間」に対応するＸＢＲＬ要素「報告期間」の子孫要素を順番に選択する。ここでは、マッピング部３３は、図３で示す表示ツリー２２１からＸＢＲＬ要素「報告期間」の子孫要素「期」、「開始日」、「終了日」を順番に選択する。そして、マッピング部３３は、検出した科目「報告期間」の科目値から、選択した子孫要素に対応する要素宣言内のデータ型２２２ｅに合致した部分を抽出する。そして、マッピング部３３は、抽出した部分を、選択した子孫要素にマッピングする。【００３１】
ここでは、図２に示すように、科目名２１ａ「報告期間」の科目値２１ｂが「第１００期（自  平成２２年４月１日  至平成２３年３月３１日）」である。そこで、マッピング部３３は、科目値２１ｂから、子孫要素「期」のデータ型２２２ｅ「正の整数型」に合致した部分「１００」を抽出する。そして、マッピング部３３は、抽出した部分「１００」を、子孫要素「期」にマッピングする。以下のタグは、ＸＢＲＬ文書４１を出力したときの結果である。
<StageOfReportingPeriod>100</StageOfReportingPeriod>【００３２】
また、マッピング部３３は、科目値２１ｂから、子孫要素「開始日」のデータ型２２２ｅ「日付型」に合致した部分「平成２２年４月１日」を抽出する。そして、マッピング部３３は、抽出した部分を、子孫要素「開始日」にマッピングする。以下のタグは、ＸＢＲＬ文書４１を出力したときの結果である。なお、以下の例では、抽出した部分は、和暦から西暦に変換された後マッピングされているものとする。
<StartDateOfReportingPeriod>2010-04-01</StartDateOfReportingPeriod>【００３３】
さらに、マッピング部３３は、科目値２１ｂから、子孫要素「終了日」のデータ型２２２ｅ「日付型」に合致した部分「平成２３年３月３１日」を抽出する。そして、マッピング部３３は、抽出した部分を、子孫要素「終了日」にマッピングする。以下のタグは、ＸＢＲＬ文書４１を出力したときの結果である。なお、以下の例では、抽出した部分は、和暦から西暦に変換された後マッピングされているものとする。
<EndDateOfReportingPeriod>2011-03-31</EndDateOfReportingPeriod>【００３４】
別の具体例として、図２で示す財務報告書２１内の科目の科目名２１ａ「本店の所在の場所」を図３で示す表示ツリー２２１上のＸＢＲＬ要素「本店の所在の場所」へマッピングする場合について説明する。なお、ＸＢＲＬ要素の要素宣言として、図４で示す要素宣言２２２が用いられるものとする。マッピング部３３は、ＸＢＲＬ要素「本店の所在の場所」の要素宣言に基づいて、ＸＢＲＬ要素が抽象要素であるか否かを判定する。ここでは、マッピング部３３は、図４で示す要素宣言２２２のうちＸＢＲＬ要素「本店の所在の場所」の要素宣言の抽象要素フラグ２２２ｃが「○」であるので、ＸＢＲＬ要素「本店の所在の場所」は抽象要素であると判定する。【００３５】
そして、マッピング部３３は、ＸＢＲＬ要素「本店の所在の場所」が抽象要素であると判定したので、表示ツリー２２１のＸＢＲＬ要素間の親子関係に基づいて、ＸＢＲＬ要素「本店の所在の場所」が表示ツリー２２１上で子孫の要素を持つか否かを判定する。ここでは、マッピング部３３は、図３で示す表示ツリー２２１に基づいて、ＸＢＲＬ要素「本店の所在の場所」が２つの子孫の要素「郵便番号」、「住所」を持つと判定する。したがって、マッピング部３３は、ＸＢＲＬ要素「本店の所在の場所」を２つの要素から構成されていると判断する。すなわち、マッピング部３３は、ＸＢＲＬ要素「本店の所在の場所」にマッピングする科目「本店の所在の場所」を、その科目値を分割すべき科目として検出する。【００３６】
そして、マッピング部３３は、表示ツリー２２１から、検出した科目の科目名２１ａ「本店の所在の場所」に対応するＸＢＲＬ要素「本店の所在の場所」の子孫要素を順番に選択する。ここでは、マッピング部３３は、図３で示す表示ツリー２２１からＸＢＲＬ要素「本店の所在の場所」の子孫要素「郵便番号」、「住所」を順番に選択する。そして、マッピング部３３は、検出した科目の科目名２１ａ「本店の所在の場所」の科目値２１ｂから、選択した子孫要素に対応する要素宣言内のデータ型２２２ｅおよび制約２２２ｆに合致した部分を抽出する。そして、マッピング部３３は、抽出した部分を、選択した子孫要素にマッピングする。【００３７】
ここでは、図２に示すように、科目の科目名２１ａ「本店の所在の場所」の科目値２１ｂは、「東京都新宿区新宿１丁目１番１号」である。そこで、マッピング部３３は、この科目値２１ｂから、子孫要素「郵便番号」のデータ型２２２ｅ「文字列型」と制約２２２ｆ「数字３桁“−”数字４桁」に合致した部分の抽出を試みる。ところが、マッピング部３３は、科目値から、データ型２２２ｅと制約２２２ｆに合致した部分を抽出できない。そこで、マッピング部３３は、選択した子孫要素「郵便番号」のｎｉｌ値許可フラグ２２２ｄが「○」であるので、子孫要素「郵便番号」がｎｉｌ値を許可する要素であると判定する。そこで、マッピング部３３は、科目値の入力が省略されたと判断して、選択した子孫要素「郵便番号」に何もマッピングしないで、代わりに、ｎｉｌ属性に「ｔｒｕｅ」を設定する。以下のタグは、ＸＢＲＬ文書４１を出力したときの、子孫要素「郵便番号」に関する結果である。
<ZipcodeOfCompanyLocation  nil=”true”/>【００３８】
また、マッピング部３３は、科目値から、子孫要素「住所」のデータ型２２２ｅ「文字列型」に合致した部分「東京都新宿区新宿１丁目１番１号」を抽出する。そして、マッピング部３３は、抽出した部分を、子孫要素「住所」にマッピングする。以下のタグは、ＸＢＲＬ文書４１を出力したときの結果である。
<AddressOfCompanyLocation>東京都新宿区新宿１丁目１番１号</AddressOfCompanyLocation>【００３９】
このようにして、マッピング部３３は、財務報告書２１からＸＢＲＬ文書４１を作成する際、財務報告書２１の科目をＸＢＲＬ要素間の階層関係を含む表示ツリー２２１の要素に適切にマッピングすることができる。【００４０】
出力部３４は、マッピング部３３によってマッピングされた結果を示すＸＢＲＬインスタンスを出力する。実施例では、このＸＢＲＬインスタンスがＸＢＲＬ文書４１となる。例えば、出力部３４は、マッピング結果であるＸＢＲＬ文書４１をモニタに出力しても良いし、記憶部２に記憶するようにしても良い。【００４１】
ところで、要素宣言２２２に、ＸＢＲＬ要素のデータ型２２２ｅとして制約２２２ｆのない文字列型が指定される場合がある。かかる場合に、マッピング部３３は、該当する科目値から期待値だけを抽出することができないことがある。一例として、図２で示す財務報告書２１内の科目の科目名２１ａ「代表者の役職氏名」の科目値２１ｂを図３で示す表示ツリー２２１上のＸＢＲＬ要素「代表者の役職氏名」へマッピングする場合について説明する。マッピング部３３は、図３で示す表示ツリー２２１に基づいて、ＸＢＲＬ要素「代表者の役職氏名」が２つの子孫の要素「役職」と「氏名」を持つと判定する。そして、マッピング部３３は、科目名２１ａ「代表者の役職氏名」の科目値２１ｂ「代表取締役  日本  太郎」から、子孫要素「役職」のデータ型２２２ｅ「文字列型」に合致した部分を抽出する。ここでは、マッピング部３３は、子孫要素「役職」に応じた期待値として、科目値２１ｂから「代表取締役」を抽出したいところ、科目値２１ｂ全体の「代表取締役  日本  太郎」を抽出してしまう。すなわち、マッピング部３３は、科目値２１ｂから期待値だけを抽出することができない。【００４２】
そこで、文書変換装置１は、科目値２１ｂから抽出したい、ＸＢＲＬ要素に応じた期待値を、マッピング用の補助情報としてマッピング補助情報２３−１に予め記憶しておくようにすれば良い。図５Ａは、マッピング補助情報のデータ構造の一例を示す図である。図５Ａに示すように、マッピング補助情報２３−１には、表示名２３１ａと、要素名２３１ｂと、期待値の候補２３１ｃとが対応付けて記憶される。表示名２３１ａは、ＸＢＲＬ要素の表示名である。要素名２３１ｂは、ＸＢＲＬ要素の要素名である。期待値の候補２３１ｃは、ＸＢＲＬ要素に応じた期待値の候補を示す。一例として、表示名２３１ａが「役職」である場合、期待値の候補２３１ｃとして「代表取締役」、「部長」、「部長代理」、「課長」と記憶している。表示名２３１ａが「氏名」である場合、期待値の候補２３１ｃとして「日本  太郎」、「日本  次郎」と記憶している。【００４３】
このようなマッピング補助情報２３−１を利用して、マッピング部３３は、科目値２１ｂからＸＢＲＬ要素のデータ型２２２ｅ「文字列型」に合致した部分を抽出する。すなわち、マッピング部３３は、マッピング補助情報２３−１を利用して、ＸＢＲＬ要素に応じた期待値の候補２３１ｃと合致する値を科目値２１ｂから抽出する。ここでは、マッピング部３３は、科目値２１ｂ「代表取締役  日本  太郎」から、子孫要素「役職」のデータ型２２２ｅ「文字列型」に合致した部分として、マッピング補助情報２３−１を利用して「代表取締役」を抽出できる。また、マッピング部３３は、科目値２１ｂ「代表取締役  日本  太郎」から、子孫要素「氏名」のデータ型２２２ｅ「文字列型」に合致した部分として、マッピング補助情報２３−１を利用して「日本  太郎」を抽出できる。【００４４】
また、マッピング部３３が、該当する科目値２１ｂから期待値だけを抽出することができない別の例を以下に示す。図２で示す財務報告書２１内の科目の科目名２１ａ「電話番号」の科目値２１ｂを図３で示す表示ツリー２２１上のＸＢＲＬ要素「電話番号」へマッピングする場合について説明する。マッピング部３３は、科目「電話番号」の科目値２１ｂ「１１１（２２２）３３３３（代表）」からデータ型２２２ｅ「文字列型」に合致した部分を抽出する。ここでは、マッピング部３３は、ＸＢＲＬ要素「電話番号」に応じた期待値として、科目値から「１１１（２２２）３３３３」を抽出したいところ、末尾文字の“（代表）”を含んだ「１１１（２２２）３３３３（代表）」を抽出してしまう。すなわち、マッピング部３３は、科目値から期待値だけを抽出することができない。ここで、マッピング部３３が、科目値２１ｂから「１１１（２２２）３３３３」を抽出するために、要素宣言２２２の制約２２２ｆに抽出したい書式を指定する手段が考えられる。しかしながら、電話番号には、市外局番と市内局番の区切り文字として、様々な区切り文字（例えば、“（”、“）”、“−”、“  ”）がある。したがって、ＸＢＲＬ要素「電話番号」のデータ型２２２ｅは、制約２２２ｆの指定がない単純な文字列型とせざるを得ない。【００４５】
そこで、文書変換装置１は、科目値２１ｂに入る可能性のある不要な文字列を、マッピング用の補助情報としてマッピング補助情報２３−２に予め記憶しておくようにすれば良い。言い換えれば、文書変換装置１は、科目値２１ｂから削除する可能性のある文字列を、マッピング補助情報２３−２に予め記憶しておく。図５Ｂは、マッピング補助情報のデータ構造の一例を示す図である。図５Ｂに示すように、マッピング補助情報２３−２には、削除項目２３２ａと、削除候補２３２ｂとが対応付けて記憶される。削除項目２３２ａは、科目値２１ｂから削除する可能性のある文字列の項目を示す。削除候補２３２ｂは、削除項目に応じた削除する可能性のある文字列を示す。一例として、削除項目２３２ａが「先頭文字列」である場合、削除候補２３２ｂとして「〒」、「Ｔｅｌ」と記憶している。削除項目２３２ａが「区切り文字」である場合、削除候補２３２ｂとして「．」、「／」と記憶している。削除項目２３２ａが「末尾文字列」である場合、削除候補２３２ｂとして「（代表）」、「（直通）」と記憶している。【００４６】
このようなマッピング補助情報２３−２を利用して、マッピング部３３は、科目値２１ｂに削除項目２３２ａに応じた削除候補２３２ｂがあれば、科目値２１ｂからその部分を削除する。ここでは、マッピング部３３は、科目値２１ｂ「１１１（２２２）３３３３（代表）」に削除項目２３２ａ「末尾文字列」に応じた「（代表）」があるので、科目値２１ｂからその部分を削除する。この結果、マッピング部３３は、マッピング補助情報２３−２を利用して、科目値２１ｂから「１１１（２２２）３３３３」を抽出できる。【００４７】
［文書変換処理の主処理］
次に、実施例に係る文書変換処理の主処理の手順について、図６を参照して説明する。図６は、実施例に係る文書変換処理の主処理の手順を示すフローチャートである。なお、図６では、ワード形式の財務報告書２１に対して、ワード画面上でタグ付けしたい科目の値をＸＢＲＬ要素にマッピングし、ＸＢＲＬ文書４１に変換する場合を説明する。【００４８】
まず、制御部３は、ＸＢＲＬ文書４１への文書変換の要求がされたか否かを判定する（ステップＳ１０）。例えば、制御部３は、ワード画面上でタグ付けしたい科目が選択されたか否かを判定することで、ＸＢＲＬ文書４１への文書変換の要求がされたか否かを判定する。文書変換の要求がされなかったと判定した場合（ステップＳ１０；Ｎｏ）、制御部３は、文書変換の要求がされるまで、判定処理を繰り返す。【００４９】
一方、文書変換の要求がされたと判定した場合（ステップＳ１０；Ｙｅｓ）、入力部３０は、財務報告書２１を入力し（ステップＳ１１）、記憶部２に格納する。そして、入力部３０は、ＸＢＲＬ要素の定義体２２を入力し（ステップＳ１２）、記憶部２に格納する。【００５０】
続いて、レイアウト解析部３１は、記憶部２から財務報告書２１を読み出し、読み出した財務報告書２１より、選択された科目の名前（科目名）と値（科目値）を取得する（ステップＳ１３）。【００５１】
そして、定義体解析部３２は、記憶部２からＸＢＲＬ要素の定義体２２を読み出し、読み出したＸＢＲＬ要素の定義体２２より、科目の名前に等しいか近い表示名か要素名を持つＸＢＲＬ要素の定義を取得する（ステップＳ１４）。例えば、定義体解析部３２は、表示ツリー２２１より、ＸＢＲＬ要素にマッピングする科目の名前と一致または類似する表示名か要素名を持つＸＢＲＬ要素を取得する。そして、定義体解析部３２は、要素宣言２２２より、取得したＸＢＲＬ要素の要素宣言を取得する。【００５２】
続いて、マッピング部３３は、取得したＸＢＲＬ要素の定義である要素宣言を解析し、表示情報およびマッピング補助情報２３に応じて、取得した科目値を当該ＸＢＲＬ要素にマッピングする（ステップＳ１５）。なお、表示情報には、表示ツリー２２１および要素宣言２２２が含まれる。【００５３】
そして、出力部３４は、マッピング部３３によってマッピングされた結果、ＸＢＲＬインスタンス（ＸＢＲＬ文書４１）として出力する（ステップＳ１６）。すなわち、出力部３４は、ＸＢＲＬインスタンスを例えば記憶部２に出力する。これにより、文書変換装置１は、財務報告書２１をＸＢＲＬ文書４１に変換する文書変換処理を終了する。【００５４】
［マッピング処理の手順］
次に、図６に示すＳ１５におけるマッピング処理の手順について、図７〜図１０を参照して説明する。図７〜図１０は、実施例に係るマッピング処理の手順を示すフローチャートである。【００５５】
まず、マッピング部３３は、科目値に、マッピング補助情報２３に定義された任意の先頭文字列または末尾文字列を含むか否かを判定する（ステップＳ２１）。これは、科目値から不要な文字列を削除するためである。例えば、科目値が「１１１（２２２）３３３３（代表）」である場合に、末尾文字列である「（代表）」を削除する場合である。【００５６】
そして、マッピング部３３は、科目値に任意の先頭文字列または末尾文字列を含むと判定した場合（ステップＳ２１；Ｙｅｓ）、科目値から、マッピング補助情報２３に定義された任意の先頭文字列または末尾文字列を削除する（ステップＳ２２）。すなわち、科目値には、含むと判定された文字列を削除した後の文字列が設定される。そして、マッピング部３３は、ステップＳ２３に移行する。一方、マッピング部３３は、科目値に任意の先頭文字列および末尾文字列を含まないと判定した場合（ステップＳ２１；Ｎｏ）、ステップＳ２３に移行する。【００５７】
ステップＳ２３では、マッピング部３３は、科目の名前に対応したＸＢＲＬ要素の要素宣言を解析した結果、当該ＸＢＲＬ要素が抽象要素か否かを判定する（ステップＳ２３）。当該ＸＢＲＬ要素が抽象要素でないと判定した場合（ステップＳ２３；Ｎｏ）、マッピング部３３は、科目値を当該ＸＢＲＬ要素に割り当てる（ステップＳ２４）。そして、マッピング部３３は、マッピング処理を終了する。【００５８】
一方、当該ＸＢＲＬ要素が抽象要素であると判定した場合（ステップＳ２３；Ｙｅｓ）、マッピング部３３は、表示ツリー２２１をトラバースし、当該ＸＢＲＬ要素における末端の子孫要素の表示名および要素名をスタックする（ステップＳ２５）。そして、マッピング部３３は、当該ＸＢＲＬ要素が子孫を持つか否かを判定する（ステップＳ２６）。ここでは、マッピング部３３は、当該ＸＢＲＬ要素におけるスタックがされたか否かによって、当該ＸＢＲＬ要素が子孫を持つか否かを判定する。そして、当該ＸＢＲＬ要素が子孫を持つと判定した場合（ステップＳ２６；Ｙｅｓ）、マッピング部３３は、子孫要素へのマッピング処理を行うべく、ステップＳ３１に移行する。【００５９】
一方、当該ＸＢＲＬ要素が子孫を持たないと判定した場合（ステップＳ２６；Ｎｏ）、マッピング部３３は、当該ＸＢＲＬ要素が抽象要素でありながら子孫を持たないので、マッピングエラーを文書変換の要求元へ通知する（ステップＳ２７）。そして、マッピング部３３は、マッピング処理を終了する。【００６０】
ステップＳ３１では、マッピング部３３は、スタックから子孫要素の要素名を取得し（ステップＳ３１）、取得できたか否かを判定する（ステップＳ３２）。ここで、マッピング部３３は、取得できなかったと判定した場合（ステップＳ３２；Ｎｏ）、さらに、科目値が空文字列であるか否かを判定する（ステップＳ３３）。科目値が空文字列であると判定した場合（ステップＳ３３；Ｙｅｓ）、マッピング部３３は、全てのマッピングを終了したと判断し、マッピング処理を終了する。【００６１】
一方、科目値が空文字列でないと判定した場合（ステップＳ３３；Ｎｏ）、マッピング部３３は、科目値にまだデータがありながら子孫要素を取得できなかったので、マッピングエラーを文書変換の要求元へ通知する（ステップＳ３４）。そして、マッピング部３３は、マッピング処理を終了する。【００６２】
一方、マッピング部３３は、スタックから子孫要素の要素名を取得できたと判定した場合（ステップＳ３２；Ｙｅｓ）、ＸＢＲＬ要素の定義体２２より、取得できた子孫要素の定義である要素宣言を取得する（ステップＳ３５）。マッピング部３３は、取得した要素宣言を解析した結果、処理中の子孫要素が抽象要素か否かを判定する（ステップＳ３６）。処理中の子孫要素が抽象要素であると判定した場合（ステップＳ３６；Ｙｅｓ）、マッピング部３３は、処理中の子孫要素の下位の階層にある子孫要素をスタックすべく、ステップＳ２５に移行する。【００６３】
一方、処理中の子孫要素が抽象要素でないと判定した場合（ステップＳ３６；Ｎｏ）、マッピング部３３は、取得した要素宣言より、データ型２２２ｅと制約２２２ｆとｎｉｌ値許可フラグ２２２ｄを取得する（ステップＳ３７）。そして、マッピング部３３は、科目値が空文字列でないか否かを判定する（ステップＳ３８）。科目値が空文字列であると判定した場合（ステップＳ３８；Ｎｏ）、マッピング部３３は、処理中の子孫要素に科目値をマッピングできないので、マッピングエラーを文書変換の要求元へ通知する（ステップＳ３９）。そして、マッピング部３３は、マッピング処理を終了する。【００６４】
一方、科目値が空文字列でないと判定した場合（ステップＳ３８；Ｙｅｓ）、マッピング部３３は、さらにマッピング処理を進めるべく、ステップＳ４１に移行する。ステップＳ４１では、マッピング部３３は、処理中の子孫要素の要素宣言のデータ型２２２ｅが文字列型であるか否かを判定する（ステップＳ４１）。【００６５】
データ型２２２ｅが文字列型であると判定した場合（ステップＳ４１；Ｙｅｓ）、マッピング部３３は、科目値に、マッピング補助情報２３に定義された任意の文字列に合致する文字列を含むか否かを判定する（ステップＳ４２）。ここで言う任意の文字列とは、ＸＢＲＬ要素に応じて、科目値から抽出したい期待値の候補を意味する。これは、科目値からＸＢＲＬ要素に応じた期待値を抽出するためである。例えば、科目値が「代表取締役  日本  太郎」である場合に、ＸＢＲＬ要素「役職」に応じて「代表取締役」、ＸＢＲＬ要素「氏名」に応じて「日本  太郎」を抽出する場合である。【００６６】
科目値に、マッピング補助情報２３に定義された任意の文字列に合致する文字列を含むと判定した場合（ステップＳ４２；Ｙｅｓ）、マッピング部３３は、科目値より、任意の文字列に合致する文字列を抽出する（ステップＳ４３）。そして、マッピング部３３は、さらにマッピング処理を進めるべく、ステップＳ５１に移行する。【００６７】
一方、科目値に、マッピング補助情報２３に定義された文字列を含まないと判定した場合（ステップＳ４２；Ｎｏ）、マッピング部３３は、さらに、次の判定処理を行う。すなわち、マッピング部３３は、科目値に、マッピング補助情報２３に定義された任意の区切り文字または空白文字を含むか否かを判定する（ステップＳ４４）。これは、科目値の中で区切りとなる文字を探索するためである。【００６８】
科目値に、マッピング補助情報２３に定義された任意の区切り文字または空白文字を含むと判定した場合（ステップＳ４４；Ｙｅｓ）、マッピング部３３は、区切り文字もしくは空白文字で科目値を分割し、先頭の文字列を抽出する（ステップＳ４５）。一例として、科目値が「ＡＡＡ  ＢＢＢ」の場合、マッピング部３３は、空白文字で科目値を分割し、空白文字の前までの文字列「ＡＡＡ」を抽出する。そして、マッピング部３３は、さらにマッピング処理を進めるべく、ステップＳ５１に移行する。【００６９】
一方、科目値に、マッピング補助情報２３に定義された区切り文字または空白文字を含まないと判定した場合（ステップＳ４４；Ｎｏ）、マッピング部３３は、科目値を抽出する（ステップＳ４６）。そして、マッピング部３３は、さらにマッピング処理を進めるべく、ステップＳ５１に移行する。【００７０】
ステップＳ４１では、データ型２２２ｅが文字列型でないと判定した場合（ステップＳ４１；Ｎｏ）、マッピング部３３は、科目値より、データ型に合致する文字列を抽出する（ステップＳ４７）。そして、マッピング部３３は、さらにマッピング処理を進めるべく、ステップＳ５１に移行する。【００７１】
ステップＳ５１では、マッピング部３３は、科目値より文字列を抽出できたか否かを判定する（ステップＳ５１）。科目値より文字列を抽出できたと判定した場合（ステップＳ５１；Ｙｅｓ）、マッピング部３３は、抽出した文字列を処理中の子孫要素に割り当てる（ステップＳ５２）。そして、マッピング部３３は、ステップＳ５６に移行する。【００７２】
一方、科目値より文字列を抽出できなかったと判定した場合（ステップＳ５１；Ｎｏ）、マッピング部３３は、処理中の子孫要素がｎｉｌ値を許可する要素か否かを判定する（ステップＳ５３）。ｎｉｌ値を許可する要素か否かは、要素宣言より取得されたｎｉｌ値許可フラグ２２２ｄを用いて判定される。【００７３】
ｎｉｌ値を許可する要素であると判定した場合（ステップＳ５３；Ｙｅｓ）、マッピング部３３は、処理中の子孫要素に何も割り当てず、ｎｉｌ属性に「ｔｒｕｅ」を設定する（ステップＳ５４）。そして、マッピング部３３は、スタックされた次の子孫要素を処理すべく、ステップＳ３１に移行する。【００７４】
一方、ｎｉｌ値を許可する要素でないと判定した場合（ステップＳ５３；Ｎｏ）、マッピング部３３は、科目値よりデータを抽出できなかったので、マッピングエラーを文書変換の要求元へ通知する（ステップＳ５５）。そして、マッピング部３３は、マッピング処理を終了する。【００７５】
ステップＳ５６では、マッピング部３３は、科目値について、抽出した文字列の前に文字列が存在するか否かを判定する（ステップＳ５６）。抽出した文字列の前に文字列が存在すると判定した場合（ステップＳ５６；Ｙｅｓ）、マッピング部３３は、科目値について、抽出した文字列の前の文字列を削除する（ステップＳ５７）。一例として、科目値が「第１００期  （自  平成２２年・・・」であり、抽出した文字列が「１００」である場合について説明する。科目値について、抽出した文字列の前の文字列は「第」である。すると、マッピング部３３によって、科目値は、「第」と抽出した文字列「１００」を除外した「期  （自  平成２２年・・・」となる。そして、マッピング部３３は、ステップＳ５８に移行する。【００７６】
一方、抽出した文字列の前に文字列が存在しないと判定した場合（ステップＳ５６；Ｎｏ）、マッピング部３３は、ステップＳ５８に移行する。ステップＳ５８では、マッピング部３３は、科目値を更新する（ステップＳ５８）。すなわち、次に処理される子孫要素に用いられる科目値は、抽出した文字列の前の文字列があった場合、抽出した文字列と抽出した文字列の前の文字列を除外した内容に更新される。また、次に処理される子孫要素に用いられる科目値は、抽出した文字列の前の文字列がなかった場合、抽出した文字列を除外した内容に更新される。そして、マッピング部３３は、スタックされた次の子孫要素を処理すべく、ステップＳ３１に移行する。【００７７】
［実施例の効果］
上記実施例によれば、文書変換装置１は、ＸＢＲＬ文書４１の要素間の階層関係を含む表示ツリー２２１に基づいて、財務報告書２１に含まれる科目のうちＸＢＲＬ文書４１において子孫を有する要素に対応する科目を検出する。そして、文書変換装置１は、検出した科目の値を分割する。そして、文書変換装置１は、分割された値を、検出した科目に対応するＸＢＲＬ文書４１における要素の子要素にマッピングする。さらに、文書変換装置１は、マッピングされた値と子要素とを用いて、財務報告書２１をＸＢＲＬ文書４１に変換する。かかる構成によれば、文書変換装置１は、財務報告書２１からＸＢＲＬ文書４１を作成する際、財務報告書２１の科目を表示ツリー２２１の要素に適切にマッピングすることができる。【００７８】
また、上記実施例によれば、文書変換装置１は、科目の科目値を、表示ツリー２２１に含まれる要素の子孫関係となる要素のデータ型に応じて分割する。かかる構成によれば、文書変換装置１は、例えば要素のデータ型が日付型であったり整数型であったりする場合、要素のデータ型に合った文字列を科目値から抽出することが可能となる。この結果、文書変換装置１は、財務報告書２１の科目の科目値を表示ツリー２２１の要素に適切にマッピングすることができる。【００７９】
また、上記実施例によれば、文書変換装置１は、科目の科目値に、要素に対応付ける内容として不要な文字列がある場合には、科目の科目値から不要な文字列を削除する。かかる構成によれば、文書変換装置１は、要素へマッピングする内容の精度を高めることができる。【００８０】
また、上記実施例によれば、文書変換装置１は、表示ツリー２２１に含まれる要素の子孫関係となる要素のデータ型が文字列型である場合、科目の科目値に予め定義された任意の文字列と一致する文字列が含まれていれば、科目値から一致する文字列を抽出する。そして、文書変換装置１は、抽出した文字列を分割された内容とする。かかる構成によれば、文書変換装置１は、要素のデータ型が文字列型である場合に、科目値から期待する文字列を抽出することができる。すなわち、文書変換装置１は、要素へマッピングする内容の精度をさらに高めることができる。【００８１】
また、上記実施例によれば、文書変換装置１は、科目の科目値に予め定義された任意の文字列と一致する文字列が含まれていなければ、科目の科目値に区切り文字または空白文字がある場合には、以下の処理を行う。すなわち、文書変換装置１は、科目の科目値の先頭から区切り文字または空白文字の前までの文字列を分割された内容とする。かかる構成によれば、文書変換装置１は、要素のデータ型が文字列型である場合であって、区切り文字または空白文字を用いて文字列を分割できるので、科目値を子孫関係の要素に適切にマッピングをすることが可能となる。【００８２】
［プログラム等］
なお、実施例によれば、文書変換装置１は、財務報告書２１に関し、財務報告書２１に含まれる科目の値を、ＸＢＲＬ要素にマッピングする場合について説明した。しかしながら、文書変換装置１は、財務報告書２１のみならず財務会計報告全般に関する報告書であってテキスト文書の報告書に含まれる科目の値を、ＸＢＲＬ要素にマッピングする場合であっても良い。これにより、文書変換装置１は、テキスト文書（ワープロ文書を含む）からＸＢＲＬ文書への変換を汎用的に行うことができる。【００８３】
また、文書変換装置１は、既知のパーソナルコンピュータ、ワークステーション等の情報処理装置に、上記した制御部３と、記憶部２等の各機能を搭載することによって実現することができる。【００８４】
また、図示した文書変換装置１の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、文書変換装置１の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、レイアウト解析部３１と定義体解析部３２とを１個の部として統合しても良い。一方、マッピング部３３を、財務報告書２１の中で科目値を分割する科目を検出する検出部と、検出した科目の科目値を分割し、分割した科目値の各値を各ＸＢＲＬ要素にマッピングするマッピング部とに分散しても良い。また、財務報告書２１やＸＢＲＬ要素の定義体２２等の記憶部２を文書変換装置１の外部装置としてネットワーク経由で接続するようにしても良い。【００８５】
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することによって実現することができる。そこで、以下では、図１に示した文書変換装置１と同様の機能を実現する文書変換プログラムを実行するコンピュータの一例を説明する。図１１は、文書変換プログラムを実行するコンピュータの一例を示す図である。【００８６】
図１１に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０３と、ユーザからのデータの入力を受け付ける入力装置２１５と、表示装置２０９を制御する表示制御部２０７を有する。また、コンピュータ２００は、記憶媒体からプログラム等を読取るドライブ装置２１３と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部２１７とを有する。また、コンピュータ２００は、各種情報を一時記憶するメモリ２０１と、ＨＤＤ２０５を有する。そして、メモリ２０１、ＣＰＵ２０３、ＨＤＤ２０５、表示制御部２０７、ドライブ装置２１３、入力装置２１５、通信制御部２１７は、バス２１９で接続されている。【００８７】
ドライブ装置２１３は、例えばリムーバブルディスク２１１用の装置である。ＨＤＤ２０５は、文書変換プログラム２０５ａおよび文書変換関連情報２０５ｂを記憶する。【００８８】
ＣＰＵ２０３は、文書変換プログラム２０５ａを読み出して、メモリ２０１に展開する。文書変換プログラム２０５ａは、文書変換プロセス２０１ａとして機能する。【００８９】
例えば、文書変換プロセス２０１ａは、制御部３の各機能部に対応する。文書変換関連情報２０５ｂは、財務報告書２１、ＸＢＲＬ要素の定義体２２およびマッピング補助情報２３に対応する。【００９０】
なお、文書変換プログラム２０５ａについては、必ずしも最初からＨＤＤ２０５に記憶させておかなくても良い。例えば、コンピュータ２００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ２００がこれらから文書変換プログラム２０５ａを読み出して実行するようにしても良い。
【符号の説明】
【００９１】
１  文書変換装置
２  記憶部
３  制御部
２１  財務報告書
２２  ＸＢＲＬ要素の定義体
２２１  表示ツリー
２２２  要素宣言
２３  マッピング補助情報
３１  レイアウト解析部
３２  定義体解析部
３３  マッピング部
３４  出力部
４１  ＸＢＲＬ文書
【図１】
2014010068.tif 000003
【図２】
2014010068.tif 000004
【図３】
2014010068.tif 000005
【図４】
2014010068.tif 000006
【図５Ａ】
2014010068.tif 000007
【図５Ｂ】
2014010068.tif 000008
【図６】
2014010068.tif 000009
【図７】
2014010068.tif 000010
【図８】
2014010068.tif 000011
【図９】
2014010068.tif 000012
【図１０】
2014010068.tif 000013
【図１１】
2014010068.tif 000014
【図１２】
2014010068.tif 000015
【図１３】
2014010068.tif 000016
【図１４】
2014010068.tif 000017
【手続補正書】
【提出日】平成28年2月1日(2016.2.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１の文書から第２の文書に変換するプログラムにおいて、
前記第２の文書の項目間の階層関係を含む階層化文書に基づいて、前記第１の文書に含まれる項目のうち前記第２の文書において子を有する項目に対応する項目を検出し、前記検出した項目である検出項目の内容を前記検出項目に対応する前記第２の文書における項目の子項目のデータ型、制約情報およびヌル値許可情報に応じて分割し、
前記分割された内容を、前記検出項目に対応する前記第２の文書における項目の子項目に対応付け、
前記対応付けられた内容と前記子項目とを用いて、前記第１の文書を前記第２の文書に変換する
処理をコンピュータに実行させることを特徴とするプログラム。
【請求項２】
前記分割する処理は、前記検出項目の内容を、前記検出項目に対応する前記第２の文書における項目の子項目のデータ型に応じて分割する
処理をコンピュータに実行させることを特徴とする請求項１に記載のプログラム。
【請求項３】
前記分割する処理は、前記検出項目の内容に、子項目に対応付ける内容として不要な文字列がある場合には、前記検出項目の内容から不要な文字列を削除する
処理をコンピュータに実行させることを特徴とする請求項１または請求項２に記載のプログラム。
【請求項４】
前記分割する処理は、前記検出項目に対応する前記第２の文書における項目の子項目のデータ型が文字列型である場合、前記検出項目の内容に、予め定義された、子項目に紐付く特定の文字列と一致する文字列が含まれていれば、前記検出項目の内容から一致する文字列を抽出し、抽出した文字列を分割された内容とする
処理をコンピュータに実行させることを特徴とする請求項２に記載のプログラム。
【請求項５】
前記分割する処理は、前記検出項目の内容に、予め定義された、子項目に紐付く特定の文字列と一致する文字列が含まれていなければ、前記検出項目の内容に区切り文字または空白文字がある場合には、前記検出項目の内容の先頭から区切り文字または空白文字の前までの文字列を分割された内容とする
処理をコンピュータに実行させることを特徴とする請求項４に記載のプログラム。
【請求項６】
第１の文書から第２の文書に変換する文書変換装置において、
前記第２の文書の項目間の階層関係を含む階層化文書に基づいて、前記第１の文書に含まれる項目のうち前記第２の文書において子を有する項目に対応する項目を検出し、前記検出した項目である検出項目の内容を前記検出項目に対応する前記第２の文書における項目の子項目のデータ型、制約情報およびヌル値許可情報に応じて分割する分割部と、
前記分割部によって分割された内容を、前記検出項目に対応する前記第２の文書における項目の子項目に対応付ける対応付け部と、
前記対応付け部によって対応付けられた内容と前記子項目とを用いて、前記第１の文書を前記第２の文書に変換する変換部と
を有することを特徴とする文書変換装置。
【請求項７】
第１の文書から第２の文書に変換するコンピュータが、
前記第２の文書の項目間の階層関係を含む階層化文書に基づいて、前記第１の文書に含まれる項目のうち前記第２の文書において子を有する項目に対応する項目を検出し、前記検出した項目である検出項目の内容を前記検出項目に対応する前記第２の文書における項目の子項目のデータ型、制約情報およびヌル値許可情報に応じて分割し、
前記分割された内容を、前記検出項目に対応する前記第２の文書における項目の子項目に対応付け、
前記対応付けられた内容と前記子項目とを用いて、前記第１の文書を前記第２の文書に変換する
各処理を実行することを特徴とする文書変換方法。
【国際調査報告】
2014010068.tif 000018
2014010068.tif 000019