(57)【要約】【課題】表形式データを当該表形式データの複数行がまとめられた構造を含む構造化文書に変換できるようにする。【解決手段】記憶部１１０は、表形式データを構造化文書に変換する際に適用されるルールを定義した変換定義ファイルであって、複数行で値が共通の項目をグループ化することを指定するための、当該項目が繰り返しの条件の属性値として付された、条件付き繰り返し指定記述を含むと共に、表形式データが要素の内容として挿入される部分に当該データの項目名を対応付けた値挿入の指定の記述を含む変換定義ファイルを格納する。変換部１０８は変換定義ファイルに従い、変換対象となる表形式データのうちの、条件付き繰り返し指定記述で指定された項目の値が同一の複数行をグループ化して変換すると共に、値挿入の指定の記述で指定される部分に当該記述で対応付けられた項目名の値を埋め込む。【選択図】      図２
2008090500.tif 000002
【特許請求の範囲】
【請求項１】
表形式データを構造化文書へ変換するデータ構造変換システムにおいて、
表形式データを構造化文書に変換する際に適用されるルールを定義した変換定義データであって、複数行で値が共通の項目をグループ化することを指定するための、当該項目が繰り返しの条件の属性値として付された、条件付き繰り返し指定記述を含むと共に、表形式データが要素の内容として挿入される部分に当該データの項目名を対応付けた値挿入の指定の記述を含む変換定義データを格納する変換定義データ記憶手段と、
外部から指定された変換対象となる表形式データを前記変換定義データに従って構造化文書に変換する変換手段であって、前記表形式データのうちの、前記条件付き繰り返し指定記述で指定された項目の値が同一の複数行をグループ化して変換すると共に、前記値挿入の指定の記述で指定される部分に当該記述で対応付けられた項目名の値を埋め込む変換手段と
を具備することを特徴とするデータ構造変換システム。
【請求項２】
前記変換定義データは、タグを用いて構造が表現された構造化文書から構成され、前記条件付き繰り返し指定記述は、属性名として条件を、属性値として項目名を持つ特定のタグである条件付き繰り返し指定タグによって表され、前記値挿入の指定の記述は、当該記述と対応付けられる項目名を要素名とする要素の開始タグ及び終了タグで囲まれていることを特徴とする請求項１記載のデータ構造変換システム。
【請求項３】
前記変換定義データを先頭から順に解析することにより、当該ファイルに含まれている前記条件付き繰り返し指定タグの指定する条件となる項目をキー名とするキーリストを作成するキーリスト作成手段と、
前記キーリストを格納するキーリスト記憶手段と、
前記表形式データを、前記キーリストの項目の順にソートするソート手段と、
前記ソート後の表形式データを格納する表形式データ記憶手段と、
前記ソート後の表形式データを１行ずつ変換対象行データとして読み込む行データ読み込み手段と、
前記キーリストの項目について先頭から順に、当該キーリストの値と前記変換対象行データの値とを不一致が検出されるまで比較する値比較手段と、
前記キーリストの項目の値を前記変換対象行データの対応する項目の値で更新するキーリスト更新手段と
を更に具備し、
前記変換手段は、前記値比較手段による比較の結果、少なくとも、前記キーリストの先頭項目について値が一致している場合、前記変換定義データのうちの最後に一致した項目の前記条件付き繰り返し指定タグより下位の要素に従って、現在の前記変換対象行データを、前回の変換対象行データが変換された構造化文書部分に後続する新たな構造化文書部分であって、前記値挿入の指定の記述で指定される部分に当該記述で対応付けられた項目名の値が埋め込まれた新たな構造化文書部分に変換する
ことを特徴とする請求項２記載のデータ構造変換システム。
【請求項４】
前記変換定義データは、前記繰り返し条件が付されていない条件なし繰り返し指定タグを含み、
前記変換手段は、前記値比較手段による比較の結果、前記キーリストの先頭項目について値が一致していない場合、前記変換定義データのうちの前記条件なし繰り返し指定タグより下位の要素に従って、現在の前記変換対象行データを、先行するグループの構造化文書部分に後続する新たなグループの構造化文書部分であって、前記値挿入の指定の記述で指定される部分に当該記述で対応付けられた項目名の値が埋め込まれた新たなグループの構造化文書部分に変換する
ことを特徴とする請求項３記載のデータ構造変換システム。
【請求項５】
前記変換手段は、前記条件なし繰り返し指定タグが前記変換定義データを構成する構造化文書のルートタグである場合には、前記変換定義データのうちの前記条件なし繰り返し指定タグより下位の要素に従って、現在の前記変換対象行データを、先行するグループの構造化文書部分を含む構造化文書とは異なる新規構造化文書の構造文書部分に変換する
ことを特徴とする請求項４記載のデータ構造変換システム。
【請求項６】
前記変換定義データが、前記条件付き繰り返し指定タグを複数個、入れ子で含むことを特徴とする請求項２記載のデータ構造変換システム。
【請求項７】
表形式データを構造化文書へ変換するコンピュータに、
表形式データを構造化文書に変換する際に適用されるルールを定義した変換定義データであって、複数行で値が共通の項目をグループ化することを指定するための、当該項目が繰り返しの条件の属性値として付された、条件付き繰り返し指定記述を含むと共に、表形式データが要素の内容として挿入される部分に当該データの項目名を対応付けた値挿入の指定の記述を含む変換定義データを前記コンピュータ内の変換定義データ記憶手段に格納するステップと、
外部から指定された変換対象となる表形式データを前記コンピュータ内の表形式データ記憶手段に格納するステップと、
前記表形式データ記憶手段に格納された表形式データを前記変換定義データ記憶手段に格納された変換定義データに従って構造化文書に変換するステップであって、前記表形式データのうちの、前記条件付き繰り返し指定記述で指定された項目の値が同一の複数行をグループ化して変換すると共に、前記値挿入の指定の記述で指定される部分に当該記述で対応付けられた項目名の値を埋め込むステップと
を実行させるためのプログラム。
【請求項８】
コンピュータにより使用される、当該コンピュータが表形式データを構造化文書に変換する際に適用されるルールを定義した変換定義データのデータ構造であって、
前記変換定義データは、
複数行で値が共通の項目をグループ化することを指定するための、当該項目が繰り返しの条件の属性値として付された、条件付き繰り返し指定記述を含むと共に、表形式データが要素の内容として挿入される部分に当該データの項目名を対応付けた値挿入の指定の記述を含み、
前記コンピュータは、
前記変換定義データを格納する変換定義データ記憶手段と、
外部から指定された変換対象となる表形式データを格納する表形式データ記憶手段と、  前記表形式データ記憶手段に格納された表形式データを前記変換定義データ記憶手段に格納された変換定義データに従って構造化文書に変換する変換手段であって、前記表形式データのうちの、前記条件付き繰り返し指定記述で指定された項目の値が同一の複数行をグループ化して変換すると共に、前記値挿入の指定の記述で指定される部分に当該記述で対応付けられた項目名の値を埋め込む変換手段と
を有する前記コンピュータにより使用されることを特徴とする変換定義データのデータ構造。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表形式データを構造化文書に変換するのに好適なデータ構造変換システム、プログラム及びデータ構造に関する。
【背景技術】
【０００２】
構造化文書では、タグと呼ばれる文字列で階層的な構造が表現される。構造化文書の代表として、例えばＸＭＬ（Extensible Markup Language）形式の文書、つまりＸＭＬ文書が良く知られている。ＸＭＬは、意味付けされたタグによるデータの階層化や構造の自由な拡張性という特長を持つ。
【０００３】
ところで、企業等において利用されるデータを検索可能なように管理するには、従来は、リレーショナルデータベース（ＲＤＢ）のようなデータベースを活用し、当該データをテーブルにマッピングして表形式データとして扱うのが一般的である。
【０００４】
しかし、情報の高度化により管理すべき情報が複雑化するにつれ、上述のような自由にデータを記述できるＸＭＬ文書、さらには、ＸＭＬ文書を検索・分析するのに用いられるＸＭＬデータベースへの要求が高まっている。これに伴い、例えば企業において利用される様々なデータをＸＭＬ文書（ＸＭＬ文書データ）に変換し、今後の業務成長に合わせてデータが加工しやすいように保管・管理する機能の提供が望まれている。
【０００５】
そこで近年は、企業内に存在する種々のデータソース（例えばＲＤＢ）からデータ（表形式データ）を収集（抽出）し、当該収集（抽出）されたデータを所定の形式（ＸＭＬ形式）に変換して、データベース（ＸＭＬデータベース）に格納するための種々のデータ統合ツールが開発されている。これらのツールでは、変換前のデータと変換後のデータを対比表のように並べ、その間のマッピングを線で引くというマッピング形式がサポートされている。ＲＤＢなどで適用される表形式では、１行をスキーマとして扱いマッピングする形式となっている。
【０００６】
例えば特許文献１には、構造化文書とＲＤＢ上のテーブル（表形式データ）との間でデータ構造の変換を行う技術が記載されている。この特許文献１に記載の技術では、例えばＲＤＢ上の表形式データの１行につき１つの変換定義が記述される。表形式データを構造化文書（ＸＭＬ文書）のデータに変換する処理では、変換定義を呼び出す際にＳＱＬ（Structured Query Language）を発行することによりＲＤＢからデータが取得される。そして、変換定義の記述に合わせてデータ１行毎に変換が行われる。ここでは、変換定義を入れ子に記述することができる。
【特許文献１】特開２００５−５６０８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載されたデータ構造変換技術（従来技術）では、表形式のデータ（表形式データ）１行がＸＭＬのタグのひとまとまりに対応付けされる。これにより、例えば社員の表形式データは、各社員のデータが繰り返し出現するＸＭＬ形式のデータ（ＸＭＬ文書）に変換される。このデータ構造の変換により得られるＸＭＬ文書は、同一構造が規則的に繰り返される平坦な表現の文書となる。つまりデータ構造の変換により得られるＸＭＬ文書は、元の表形式データと形式が異なるだけで、当該表形式データでの記述と同様の表現となる。このため上述の従来技術は、ＸＭＬの柔軟な記述性という特長を生かすには必ずしも十分でない。
【０００８】
本発明は上記事情を考慮してなされたものでその目的は、表形式データに含まれる繰り返される項目をグループ化することにより、当該表形式データを当該表形式データの複数行がまとめられた構造を含む構造化文書に変換できるデータ構造変換システム、プログラム及びデータ構造を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の１つの観点によれば、表形式データを構造化文書へ変換するデータ構造変換システムが提供される。このシステムは、表形式データを構造化文書に変換する際に適用されるルールを定義した変換定義データであって、複数行で値が共通の項目をグループ化することを指定するための、当該項目が繰り返しの条件の属性値として付された、条件付き繰り返し指定記述を含むと共に、表形式データが要素の内容として挿入される部分に当該データの項目名を対応付けた値挿入の指定の記述を含む変換定義データを格納する変換定義データ記憶手段と、外部から指定された変換対象となる表形式データを前記変換定義データに従って構造化文書に変換する変換手段であって、前記表形式データのうちの、前記条件付き繰り返し指定記述で指定された項目の値が同一の複数行をグループ化して変換すると共に、前記値挿入の指定の記述で指定される部分に当該記述で対応付けられた項目名の値を埋め込む変換手段とを具備する。
【発明の効果】
【００１０】
本発明によれば、表示形式データに含まれる、変換定義データで指定された項目（繰り返し項目）の値が同じであれば、その項目がグループ化されて変換される。つまり本発明によれば、表形式データを、１行で１つの構造に変換するのではなくて、当該表形式データの複数行がまとめられた構造を含む構造化文書に変換することにより、表形式データを構造化文書らしい表現で記述することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態につき図面を参照して説明する。  
図１は本発明の一実施形態に係るデータ構造変換システムを含むクライアント−サーバシステムのハードウェア構成を示すブロック図である。このクライアント−サーバシステムは、主として、データ構造変換システム１０と、ＸＭＬＤＢ（ＸＭＬデータベース）管理システム２０と、ＲＤＢ（リレーショナルデータベース）管理システム３０と、クライアント端末４０と、ネットワーク５０とから構成される。データ構造変換システム１０、ＸＭＬＤＢ管理システム２０、ＲＤＢ管理システム３０及びクライアント端末４０は、ネットワーク５０によって相互接続されている。
【００１２】
データ構造変換システム１０は、データ構造変換サーバ（データ構造変換サーバコンピュータ）１１と、磁気ディスク装置のような外部記憶装置１２とから構成される。外部記憶装置１２は、データ構造変換（表形式−構造化文書変換）プログラム１２１及び変換定義ファイル１２２を格納する。データ構造変換プログラム１２１は、データ構造変換サーバ１１に、表形式データを構造化文書に変換するデータ構造変換処理（表形式−構造化文書変換処理）を実行させるのに用いられる。変換定義ファイル１２２は、表形式データを構造化文書に変換する際に適用されるルール（変換ルール）を定義したＸＭＬ形式のデータ（ＸＭＬ文書）である。ここでは変換定義ファイル１２２は、表形式データに含まれる繰り返される項目（表形式データの複数行で共通の値）をグループ化する指定の記述を保持する。更に詳細に述べるならば、変換定義ファイル１２２は、変換後のＸＭＬ文書（つまり期待される構造のＸＭＬ文書）の中の、表形式データをマッピングする部分に、値挿入（埋め込み）の指定の記述を保持する。また変換定義ファイル１２２は、繰り返し部分に、繰り返し指定のノードと条件の記述を保持する。データ構造変換サーバ１１は、外部記憶装置１２からデータ構造変換プログラム１２１を読み込んで実行することにより、表形式データを構造化文書に変換するデータ構造変換処理を、変換定義ファイル１２２の定義に基づいて行う。
【００１３】
ＸＭＬＤＢ管理システム２０は、ＸＭＬＤＢ管理サーバ（ＸＭＬＤＢ管理サーバコンピュータ）２１と、磁気ディスク装置のような外部記憶装置２２とから構成される。外部記憶装置２２は、ＸＭＬＤＢ（ＸＭＬデータベース）２２０を格納する。ＸＭＬＤＢ２２０は、ＸＭＬ文書（ＸＭＬ文書データ）の集合、例えば、ネットワーク５０を介して外部のデータソース（ＸＭＬ文書データソース）から収集されたＸＭＬ文書及びデータ構造変換サーバ１１によって変換されたＸＭＬ文書の集合を保存する。ＸＭＬＤＢ管理サーバ２１は、ＸＭＬＤＢ２２０にＸＭＬ文書を保存する処理と、外部（例えばクライアント端末４０）からの検索要求に基づき当該検索要求で指定された検索条件に合致するＸＭＬ文書（または当該ＸＭＬ文書の部分）をＸＭＬＤＢ２２０から検索する処理とを行う。
【００１４】
ＲＤＢ管理システム３０は、ＲＤＢ管理サーバ（ＲＤＢ管理サーバコンピュータ）３１と、磁気ディスク装置のような外部記憶装置３２とから構成される。外部記憶装置３２は、ＲＤＢ（リレーショナルデータベース）３２０を格納する。ＲＤＢ管理サーバ３１は、ＲＤＢ３２０に表形式データを保存する処理と、外部（例えばクライアント端末４０）からの検索要求に基づき当該検索要求で指定された検索条件に合致する表形式データをＲＤＢ３２０から検索する処理とを行う。
【００１５】
図２は図１に示されるデータ構造変換システム１０の主として機能構成を示すブロック図である。データ構造変換システム１０は、キーリスト作成部１０１、表形式データ取得・ソート部１０２、行データ読み込み部１０３、値比較部１０４、新規ＸＭＬ文書作成判定部１０５、変換テンプレート決定部１０６、キーリスト更新部１０７、変換部１０８及びＸＭＬ文書出力部１０９の各処理部を含む。データ構造変換サーバ１１はまた、変換定義ファイル記憶部１１０、キーリスト記憶部１１１、表形式データ記憶部１１２及びＸＭＬ文書記憶部１１３を含む。
【００１６】
処理部１０１乃至１０９は、図１のデータ構造変換サーバ１１が外部記憶装置１２に格納されているデータ構造変換プログラム１２１を読み込んで実行することにより実現される。処理部１０１乃至１０９の機能については後述する。データ構造変換プログラム１２１は、コンピュータ読み取り可能な記憶媒体に予め格納して頒布可能である。また、このデータ構造変換プログラム１２１が、ネットワーク５０を介してデータ構造変換サーバ１１にダウンロードされても構わない。記憶部１１０乃至１１３は、図１のデータ構造変換サーバ１１が有する主メモリのようなメモリ（図示せず）内に確保される。
【００１７】
次に、変換定義ファイル１２２の具体例について図３乃至図５を参照して説明する。図３は変換の対象となる表形式データの例、図４は図３の表形式データに対する変換後の期待されるＸＭＬ文書（ＸＭＬ構造）の例、図５は図３の表形式データを図４の構造のＸＭＬ文書に変換するのに用いられる変換定義ファイル１２２の例をそれぞれ示す。
【００１８】
期待されるＸＭＬ文書（変換後のＸＭＬ文書）を図４のように設計した場合、図３の表形式データから図４のＸＭＬ文書（ＸＭＬ構造）に変換するのに用いられる変換定義ファイル１２２は、図５のようなＸＭＬ形式となる。
【００１９】
変換定義ファイル１２２は、データ（項目の値）が要素の内容として挿入される部分、つまり要素名を表す１組のタグ（開始タグ及び終了タグ）によって囲まれた部分に、表形式データの項目名を対応付けた値挿入の指定の記述（情報）“＄｛項目名｝”を保持する。項目名とは、表形式データが例えばＣＳＶ（Comma Separated Value）形式の場合は、データの先頭に項目名が記載されていれば項目名、記載されていなければ先頭からの列番号（＄｛０｝，＄｛１｝，…）であり、ＲＤＢのデータの場合はカラム名となる。
【００２０】
変換定義ファイル１２２はまた、繰り返して出現する項目のデータをグループ化して変換するために、繰り返し部分に繰り返し指定のノード（繰り返し指定タグ）と条件（繰り返しの条件）の記述（情報）を保持する。図４の変換後のＸＭＬ文書では、同じ部門の複数行のデータが「社員」タグの中に繰り返し記述されている。ここでは、繰り返しの条件である項目「部門」で繰り返す部分は、「部門名」タグより下位の要素となる。この場合、図５に示されるように、繰り返し指定タグ５１（＜ｓｙｓ１：ｒｅｐｅａｔ  条件＝"部門"＞）が、「部門名」タグ５２の次に設定される。この繰り返し指定タグ５１には、上述の条件（条件＝"部門"）が当該繰り返し指定タグ５１の属性として付与されている。つまり繰り返し指定タグ５１は、条件付き繰り返し指定タグである。ここで、条件＝"部門"の左辺、つまり「条件」は、属性名であり、右辺、つまり「部門」は属性値である。
【００２１】
図５の変換定義ファイル１２２の例では、当該ファイル１２２の先頭タグ（ルートタグとしての部門別タグ）と、次のタグ（部門タグ）との間に、条件が付与されていない繰り返し指定タグ（条件なし繰り返し指定タグ）５３が設定されている。本実施形態で適用される繰り返し指定タグは、変換定義ファイル１２２用の名前空間（ｓｙｓ１）が付加されたｒｅｐｅａｔ（リピート）タグである。
【００２２】
次に、データ構造変換システム１０において実行される表形式データを構造化文書（ＸＭＬ文書）に変換するデータ構造変換処理について、図６Ａ及び図６Ｂのフローチャートを参照して説明する。
【００２３】
今、例えばクライアント端末４０からデータ構造変換システム１０に対して、ある表形式データをＸＭＬ文書に変換する変換要求が与えられたものとする。この変換要求は、変換に用いられるべき変換定義ファイル１２２のファイル名及び変換対象となる表形式データを指定する情報を含む。
【００２４】
データ構造変換システム１０のキーリスト作成部１０１は、変換要求に含まれているファイル名の変換定義ファイル１２２を外部記憶装置１２から変換定義ファイル記憶部１１０に読み込む（ステップＳ１）。このステップＳ１においてキーリスト作成部１０１は、変換定義ファイル記憶部１１０に読み込まれた変換定義ファイル１２２、つまりＸＭＬ形式の変換定義ファイル１２２を構文解析（パース）する。
【００２５】
キーリスト作成部１０１は、変換定義ファイル１２２の構文解析により、その先頭から順にデータを読み込み、条件付きの繰り返し指定タグを抽出する（ステップＳ２）。このステップＳ２においてキーリスト作成部１０１は、抽出された条件付きの繰り返し指定タグに含まれている条件を表す属性の値（図５の変換定義ファイル１２２の例であれば「部門」）をキーリストの項目（キー名）として、キーリスト記憶部１１１に記憶されるキーリストに追加する。キーリスト作成部１０１は、変換定義ファイル１２２の最後まで構文解析することにより、キーリストを作成する。
【００２６】
作成されたキーリストは、ＸＭＬ文書への変換対象となる表形式データをソートするキーのリストである。キーは、キーリストの項目であるキーの名前（キー名）とキーの値（キー値）とから構成される。この段階では、キーリストにはキーの値は存在しない。このキーリストへのキー（属性値）の格納順が、ソートの優先度順となる。もし、Ｎを２以上の整数であるとして、キーリストにＮ個のキー（繰り返しの条件となる属性値）が格納されているものとすると、ｉ番目（ｉ＝１，…，Ｎ）のキーはｉ次キーとして用いられる。明らかなように、先頭（１番目）のキーは１次キーとして用いられ、最後（Ｎ番目）のキーはＮ次キーとして用いられる。
【００２７】
キーリスト作成部１０１はキーリストを作成すると、表形式データ取得・ソート部１０２に制御を渡す。表形式データ取得・ソート部１０２は、変換対象となる表形式データをクライアント端末４０またはＲＤＢ管理システム３０（内のＲＤＢ３２０）から取得して表形式データ記憶部１１２に読み込む（ステップＳ３）。表形式データの指定には、ＣＳＶなどのファイル形式であればファイル名が、ＲＤＢであればＳＱＬが用いられる。ステップＳ３において表形式データ取得・ソート部１０２は、表形式データ記憶部１１２に読み込まれた表形式データに対して、ステップＳ２で作成されたキーリスト内のキー（繰り返しの条件となる属性値、つまり項目の値）の順番に基づき順にソートする。キーリスト内のキーがＮ個の場合、１次キー、２次キー、…Ｎ次キーの順で、表示形式データのソートが行われる。ソート後の表形式データは表形式データ記憶部１１２に格納される。
【００２８】
表形式データ取得・ソート部１０２は、表形式データをソートすると、行データ読み込み部１０３に制御を渡す。行データ読み込み部１０３は、ソート後の表形式データの先頭から１行ずつ変換対象行データとして読み込む処理を開始する（ステップＳ４，Ｓ５）。
【００２９】
行データ読み込み部１０３は先頭行（第１行）のデータを変換対象行データとして読み込んだ場合（ステップＳ６）、変換テンプレート決定部１０６に制御を渡す。すると変換テンプレート決定部１０６は、変換定義ファイル１２２の先頭（ルートタグ）より下位の要素を、変換対象行データをＸＭＬ形式に変換するのに用いられる変換テンプレートとして決定（抽出）する（ステップＳ７）。
【００３０】
また行データ読み込み部１０３は、先頭行以外のデータ（第２行以降のデータ）を変換対象行データとして読み込んだ場合には（ステップＳ６）、値比較部１０４に制御を渡す、値比較部１０４は、キーリスト中のキー（項目）について、先頭のキー（１次キー）から順に、当該キーの値と読み込まれた１行のデータ（変換対象行データ）の対応する項目の値とを不一致が検出されるまで比較する（ステップＳ８）。値比較部１０４は、この比較の結果から、キーリストの先頭のキーについて、当該キーの値と変換対象行データの対応する項目の値とが一致するかを判定する（ステップＳ９）。
【００３１】
もし、ステップＳ９で一致が判定されたならば、変換テンプレート決定部１０６によって、ステップＳ１０が実行される。このステップＳ１０において、変換テンプレート決定部１０６は、キーリスト中のキーの値と変換対象行データの対応する項目の値との比較の結果に基づき、変換定義ファイル１２２のうち、最後に一致したキーに対応する項目の条件付き繰り返し指定タグより下位の要素を変換テンプレートとして決定（抽出）する。
【００３２】
これに対し、ステップＳ９で不一致が判定されたならば、新規ＸＭＬ文書作成判定部１０５によって、ステップＳ１１が実行される。このステップＳ１１において、新規ＸＭＬ文書作成判定部１０５は、変換定義ファイル１２２中の条件なし繰り返し指定タグがルートタグであるかを判定する。
【００３３】
もし、条件なし繰り返し指定タグがルートタグでない場合（ステップＳ１１）、新規ＸＭＬ文書作成判定部１０５は変換テンプレート決定部１０６に制御を渡す。すると変換テンプレート決定部１０６は、変換定義ファイル１２２における条件なし繰り返し指定タグより下位の要素を、変換対象行データをＸＭＬ形式に変換するのに用いられる変換テンプレートとして決定（抽出）する（ステップＳ１２）。一方、条件なし繰り返し指定タグがルートタグである場合、新規ＸＭＬ文書作成判定部１０５は、次に決定（抽出）される変換テンプレートを用いて新規のＸＭＬ文書（ＸＭＬファイル）を作成すべきことを決定する（ステップＳ１３）。すると変換テンプレート決定部１０６は、変換定義ファイル１２２における条件なし繰り返し指定タグより下位の要素を、変換対象行データをＸＭＬ形式に変換するのに用いられる変換テンプレートとして決定（抽出）する（ステップＳ１２）。
【００３４】
変換テンプレート決定部１０６によって変換テンプレートが決定（抽出）されると（ステップＳ７、Ｓ１０またはＳ１２）、当該変換テンプレート決定部１０６からキーリスト更新部１０７に制御が渡される。キーリスト更新部１０７は、キーリスト記憶部１１１に格納されているキーリストを変換対象行データに基づいて更新する（ステップＳ１４）。即ちキーリスト更新部１０７は、キーリスト中のキー（項目）の値（キー値）を、変換対象行の対応する項目の値で更新する。１回目のステップＳ１４では、キーリスト中のキーは値を持たないため、当該キーの値として、変換対象行の対応する項目の値が設定される。
【００３５】
キーリスト更新部１０７はキーリストを更新すると（ステップＳ１４）、変換部１０８に制御を渡す。変換部１０８は、変換テンプレート決定部１０６によって決定された変換テンプレート中の値挿入の指定箇所に、変換対象行データ中の指定項目の値を埋め込むことにより、当該変換対象行データ（表形式データ）をＸＭＬ形式のデータに変換する（ステップＳ１５）。このステップＳ１５において、変換部１０８は、変換対象行データから変換されたＸＭＬ形式のデータを、ＸＭＬ文書記憶部１１３に格納されている現在作成中のＸＭＬ文書に設定する。
【００３６】
変換部１０８はステップＳ１５を実行すると、行データ読み込み部１０３に制御を渡す。行データ読み込み部１０３は変換対象行をソート後の表示形式データの次の行に進める（ステップＳ１６）。もし、次の行が存在するならば、つまりソート後の表形式データの最終行まで処理が終了していないならば（ステップＳ４）、当該次の行のデータについて前記ステップＳ５以降の処理が行われる。
【００３７】
このようにして、ソート後の表形式データの最終行まで行毎の処理が終了したならば（ステップＳ４）データ構造変換処理は終了となる。このときＸＭＬ文書記憶部１１３に格納されているＸＭＬ文書は、表形式データ記憶部１１２に格納されている表形式データが変換定義ファイル１２２に基づいてＸＭＬ形式に変換されたものとなる。このＸＭＬ文書は、ＸＭＬ文書出力部１０９によって例えばＸＭＬＤＢ管理システム２０に送出され、当該システム２０のＸＭＬＤＢ２２０に格納される。
【００３８】
上述のデータ構造変換処理の具体例を、図３に示す表形式データを図５に示す変換定義ファイル１２２に基づいてＸＭＬ文書に変換する場合について、図７乃至図１２を参照して説明する。
【００３９】
前述したように、キーリスト作成部１０１は、変換定義ファイル１２２において条件付き繰り返し指定タグに含まれている条件を表す属性の値をキーリストの項目（キー名）とするキーリストをキーリスト記憶部１１１内に作成する（ステップＳ２）。本実施形態において、変換定義ファイル１２２に含まれている条件付き繰り返し指定タグは、繰り返し指定タグ５１である＜ｓｙｓ１：ｒｅｐｅａｔ  条件＝"部門"＞のみである。この場合、キーリスト作成部１０１は、「部門」をキーリストの１次キーとする。このキーリストを図７に示す。
【００４０】
表形式データ取得・ソート部１０２は、図３に示す表形式データを、図７に示すキーリスト内のキーの順番に基づき順にソートする（ステップＳ３）。ここでは、表形式データは、「部門」（１次キー）のみで五十音順にソートされる。このソートにおける、キーリスト、表形式データ（元データ）及びソート後（ソート済み）の表形式データの関係を図８に示す。
【００４１】
変換テンプレート決定部１０６は、図８に示すソート後の表形式データの先頭行（第１行）のデータが変換対象行データとして行データ読み込み部１０３によって読み込まれた場合（ステップＳ５，Ｓ６）、変換定義ファイル１２２の先頭（ルートタグ）より下位の要素（部門別要素）を変換テンプレートとして決定する（ステップＳ７）。
【００４２】
すると、図９に示すように、キーリストのキー（１次キー）の値として、第１行のデータ「１（社員番号），田中（名前），営業（部門）」中の部門の値「営業」がキーリスト更新部１０７によって設定される（ステップＳ１４）。
【００４３】
次に、現在変換テンプレート決定部１０６によって決定されている変換テンプレート、つまり変換定義ファイル１２２の先頭より下位の要素である部門別要素（のコピー）を用いて、その中の値挿入の指定箇所に、第１行（変換対象行）のデータ中の指定項目の値が変換部１０８によって埋め込まれる（ステップＳ１２）。ここでは、＄｛部門｝、＄｛社員番号｝及び＄｛名前｝の箇所に、それぞれ、「営業」、「１」及び「田中」が埋め込まれる。これにより、第１行のデータが、部門別要素を含むＸＭＬ形式のデータに変換される。部門別要素は部門要素を含み、部門要素は部門名要素及び社員要素を含む。
【００４４】
次に、変換対象行がソート後の表形式データの第２行に切り替えられる（ステップＳ１６）。ソート後の表形式データの第２行のデータは「３（社員番号），鈴木（名前），営業（部門）」である（図８参照）。この場合、図１０に示すように、キーリストの１次キーの値「営業」と変換対象行データ（第２行のデータ）の対応する項目「部門」の値「営業」とは一致する（ステップＳ８，Ｓ９）。このときのキーリストは１次キーのみしか持たないため、最後に一致したキーは最初に一致した１次キーである。したがって、図５に示される変換定義ファイル１２２のうち、１次キーに対応する項目「部門」の条件付き繰り返し指定タグ５１より下位の要素（社員要素）が、変換テンプレートとして決定される（ステップＳ１０）。
【００４５】
次に、キーリストの１次キーの値が、当該１次キーに対応する、第２行のデータ「１（社員番号），田中（名前），営業（部門）」中の項目「部門」の値「営業」に更新される（ステップＳ１４）。ここで更新前のキーリストの１次キーの値は「営業」である（図１０参照）。更新後のキーリストの１次キーの値は、更新前と同じ「営業」であり、キーリストが更新されなかったのと等価である。
【００４６】
次に、現在変換テンプレート決定部１０６によって決定されている変換テンプレート、即ち変換定義ファイル１２２のうちの条件付き繰り返し指定タグ５１（＜ｓｙｓ１：ｒｅｐｅａｔ  条件＝"部門"＞）より下位の要素である社員要素（のコピー）中の値挿入の指定箇所に、第２行のデータ中の指定項目の値が埋め込まれる（ステップＳ１５）。ここでは、＄｛社員番号｝及び＄｛名前｝の箇所に、それぞれ、「３」及び「鈴木」が埋め込まれる。
【００４７】
これにより、第２行のデータが、社員要素から構成されるＸＭＬ形式のデータに変換される。このＸＭＬ形式のデータ（社員要素）は、現在作成中のＸＭＬ文書の、第１行のデータに対応するＸＭＬ形式のデータの社員要素の後に追加設定される。社員要素は、社員番号要素および名前要素から構成される。つまり本実施形態においては、ソート後の表形式データのうち、条件付き繰り返し指定タグ５１（＜ｓｙｓ１：ｒｅｐｅａｔ  条件＝"部門"＞）に付されている条件で指定される項目「部門」の値が共通の、第１行のデータ「１（社員番号），田中（名前），営業（部門）」及び第２行のデータ「３（社員番号），鈴木（名前），営業（部門）」が、当該項目「部門」の値「営業」でグループ化される。
【００４８】
次に、変換対象行がソート後の表形式データの第３行（最終行）に切り替えられる（ステップＳ１６）。第３行のデータは「２（社員番号），佐藤（名前），技術（部門）」であることから、図１１に示すように、キーリストの１次キーの値「営業」と変換対象行データ（第３行のデータ）の対応する項目「部門」の値「技術」とは一致しない（ステップＳ８，Ｓ９）。また、変換定義ファイル１２２中の条件なし繰り返し指定タグ５３はルートタグではない（ステップＳ１１）。この場合、図５に示される変換定義ファイル１２２中の条件なし繰り返し指定タグ５３（＜ｓｙｓ１：ｒｅｐｅａｔ＞）より下位の要素（部門要素）が、変換テンプレートとして決定される（ステップＳ１０）。
【００４９】
条件なし繰り返し指定タグ５３は、キーリストの１次キーの値と変換対象行データの対応する項目の値とが一致せず、且つ当該タグ５３が本実施形態のようにルートタグでない場合には、変換対象行データを、先行するグループのＸＭＬ文書部分に後続する新たなグループのＸＭＬ文書部分に変換することを指定する。なお、条件なし繰り返し指定タグ５３が本実施形態と異なってルートタグの場合には、当該タグ５３は、先行するグループのＸＭＬ文書部分を含むＸＭＬ文書とは異なる新規ＸＭＬ文書のＸＭＬ文書部分に変換することを指定する。
【００５０】
次に、キーリストの１次キーの値「営業」が、図１１に示すように、当該１次キーに対応する、第３行のデータ「２（社員番号），佐藤（名前），技術（部門）」中の項目「部門」の値「技術」に更新される（ステップＳ１４）。
【００５１】
そして、現在変換テンプレート決定部１０６によって決定されている変換テンプレート、即ち変換定義ファイル１２２の条件なし繰り返し指定タグ５３（＜ｓｙｓ１：ｒｅｐｅａｔ＞）より下位の要素である部門要素（のコピー）中の値挿入の指定箇所に、第３行のデータ中の指定項目の値が埋め込まれる（ステップＳ１５）。ここでは、＄｛部門｝、＄｛社員番号｝及び＄｛名前｝の箇所に、それぞれ、「技術」、「２」及び「佐藤」が埋め込まれる。これにより、第３行のデータが部門要素から構成されるＸＭＬ形式のデータに変換される。このＸＭＬ形式のデータは、現在作成中のＸＭＬ文書の、第１行及び第２行のデータが部門「技術」でグループ化されたＸＭＬ形式のデータの部門要素の後に追加設定される。
【００５２】
このようにして、図３に示す表形式データが、図４に示すＸＭＬ文書に変換される。このＸＭＬ文書は、従来技術とは異なり、表形式データが１行で１つの構造に変換されたものではない。即ち図４に示すＸＭＬ文書は、表形式データに含まれる着目する繰り返し項目（変換定義ファイル１２２内の条件付き繰り返し指定タグ５１で指定される項目）「部門」の値が同じであればグループ化することにより、複数行を１つの構造にまとめてＸＭＬ形式に変換されたものである。よって、図４に示すＸＭＬ文書は、ＸＭＬの柔軟な記述性という特長を十分に生かしたものとなっている。
【００５３】
図１２（ａ）に、図３に示す表形式データを図６Ａ及び図６Ｂのフローチャートに従って項目「部門」でグループ化することにより、当該表形式データを図４に示すＸＭＬ文書に変換する様子を示す。また、図１２（ｂ）に、図３に示す表形式データを従来技術で行毎にＸＭＬ形式に変換することにより、当該表形式データをＸＭＬ文書に変換する様子を示す。
【００５４】
ここで、図５の例とは異なって、条件なし繰り返し指定タグ５３が変換定義ファイル１２２のルートタグである場合について簡単に説明する。この場合、ソート後の第３行のデータ「２（社員番号），佐藤（名前），技術（部門）」は、第１行及び第２行が変換されたＸＭＬ文書とは別の新規ＸＭＬ文書に、変換定義ファイル１２２のルートタグより下位の要素を用いて変換される。
【００５５】
［変形例］
上記実施形態で適用される変換定義ファイル１２２には、条件繰り返し指定タグが１つだけ設定されている。しかし、複数の条件付き繰り返し指定タグが例えば入れ子で変換定義ファイルに設定されていても良い。このような変換定義ファイルの変形例について図１３乃至図１５を参照して説明する。図１３は変換の対象となる表形式データの例、図１４は図１３の表形式データに対する変換後の期待されるＸＭＬ文書（ＸＭＬ構造）の例、図１５は図１３の表形式データを図１４の構造のＸＭＬ文書に変換するのに用いられる変換定義ファイル２２２の例をそれぞれ示す。
【００５６】
期待されるＸＭＬ文書（変換後のＸＭＬ文書）を図１４のように設計した場合、図１３の表形式データから図１４のＸＭＬ文書（ＸＭＬ構造）に変換するのに用いられる変換定義ファイル２２２は、図１５のようなＸＭＬ形式となる。図１４の変換後のＸＭＬ文書では、同じ社員番号の複数行のデータが「地域別顧客」タグの中に繰り返し記述されている。ここでは、繰り返しの条件である「社員番号」で繰り返す部分は、「地域別顧客」タグより下位の要素となる。この場合、図１５の変換定義ファイル２２２では、条件付き繰り返し指定タグ１５１（＜ｓｙｓ１：ｒｅｐｅａｔ  条件＝"社員番号"＞）が、「地域別顧客」タグ１５２の次に設定される。
【００５７】
同様に図１４の変換後のＸＭＬ文書では、「担当地域」が同じデータは「担当地域」タグの中に繰り返し記述され、「顧客名」が同じデータは「顧客名」タグの中に繰り返し記述されている。この場合、図１５の変換定義ファイル２２２では、条件付き繰り返し指定タグ１５３（＜ｓｙｓ１：ｒｅｐｅａｔ  条件＝"担当地域"＞）が、「担当地域」タグ１５４の次に設定され、条件付き繰り返し指定タグ１５５（＜ｓｙｓ１：ｒｅｐｅａｔ  条件＝"顧客名"＞）が、「顧客名」タグ１５６の次に設定される。
【００５８】
このように、図１５の変換定義ファイル２２２では、３つの条件付き繰り返し指定タグ１５１，１５３及び１５５が入れ子で設定されている。しかし、この入れ子で設定される条件付き繰り返し指定タグの数は３つに限らない。つまり、条件付き繰り返し指定タグが複数個、変換定義ファイルに入れ子で設定されていても構わない。
【００５９】
なお、本発明は、上記実施形態またはその変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。例えば、上記実施形態またはその変形例では、構造化文書としてＸＭＬ文書を例にとって説明したが、これに限るものではない。本発明は、例えば、ＳＧＭＬ（Standard Generalized Markup Language）文書のようなＸＭＬ文書以外の構造化文書にも同様に適用できる。
【００６０】
また、上記実施形態またはその変形例に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態またはその変形例に示される全構成要素から幾つかの構成要素を削除しても良い。
【図面の簡単な説明】
【００６１】
【図１】本発明の一実施形態に係るデータ構造変換システムを含むクライアント−サーバシステムのハードウェア構成を示すブロック図。
【図２】図１に示されるデータ構造変換システム１０の主として機能構成を示すブロック図。
【図３】表形式データの例を示す図。
【図４】図３の表形式データに対する変換後の期待されるＸＭＬ文書（ＸＭＬ構造）の例を示す図。
【図５】図３の表形式データを図４の構造のＸＭＬ文書に変換するための変換定義ファイルの例を示す図。
【図６Ａ】表形式データを構造化文書（ＸＭＬ文書）に変換するデータ構造変換処理の手順を示すフローチャート。
【図６Ｂ】表形式データを構造化文書（ＸＭＬ文書）に変換するデータ構造変換処理の手順を示すフローチャート。
【図７】図５の変換定義ファイルから作成されるキーリストの例を示す図。
【図８】キーリストのキーに基づくソートにおける、キーリスト、表形式データ（元データ）及びソート後の表形式データの関係を示す図。
【図９】キーリストのキーの値が変換対象の第１行（ソート後の表形式データの第１行）の対応する項目の値に更新される様子を説明するための図。
【図１０】キーリストのキーの値と変換対象の第２行（ソート後の表形式データの第２行）の対応する項目の値との比較を説明するための図。
【図１１】キーリストのキーの値と変換対象の第３行（ソート後の表形式データの第３行）の対応する項目の値との比較、及びキーリストの更新を説明するための図。
【図１２】図３に示す表形式データを図６Ａ及び図６Ｂのフローチャートに従って項目「部門」でグループ化することにより、当該ＸＭＬ文書を図４に示すＸＭＬ文書に変換する様子を、従来技術で表形式データをＸＭＬ文書に変換する様子と対比させて示す図。
【図１３】上記実施形態の変形例で適用される変換定義ファイルを説明するのに用いられる表形式データの例を示す図。
【図１４】図１３の表形式データに対する変換後の期待されるＸＭＬ文書（ＸＭＬ構造）の例を示す図。
【図１５】上記実施形態の変形例で適用される変換定義ファイルであって、図１３の表形式データを図１４の構造のＸＭＬ文書に変換するための変換定義ファイルの例を示す図。
【符号の説明】
【００６２】
１０…データ構造変換システム、１１…データ構造変換サーバ（コンピュータ）、１２，２２，３２…外部記憶装置、２０…ＸＭＬＤＢ管理システム、２１…ＸＭＬＤＢ管理サーバ、３０…ＲＤＢ管理システム、３１…ＲＤＢ管理サーバ、５１，１５１，１５３，１５５…条件付き繰り返し指定タグ、５３…条件なし繰り返し指定タグ、１０１…キーリスト作成部、１０２…表形式データ取得・ソート部、１０３…行データ読み込み部、１０４…値比較部、１０５…新規ＸＭＬ文書作成判定部、１０６…変換テンプレート決定部、１０７…キーリスト更新部、１０８…変換部、１０９…ＸＭＬ文書出力部、１１０…変換定義ファイル記憶部（変換定義データ記憶部）、１１１…キーリスト記憶部、１１２…表形式データ記憶部、１１３…ＸＭＬ文書記憶部、１２１…データ構造変換プログラム、１２２，２２２…変換定義ファイル（変換定義データ）、２２０…ＸＭＬＤＢ、３２０…ＲＤＢ。
【図１】
2008090500.tif 000003
【図２】
2008090500.tif 000004
【図３】
2008090500.tif 000005
【図４】
2008090500.tif 000006
【図５】
2008090500.tif 000007
【図６Ａ】
2008090500.tif 000008
【図６Ｂ】
2008090500.tif 000009
【図７】
2008090500.tif 000010
【図８】
2008090500.tif 000011
【図９】
2008090500.tif 000012
【図１０】
2008090500.tif 000013
【図１１】
2008090500.tif 000014
【図１２】
2008090500.tif 000015
【図１３】
2008090500.tif 000016
【図１４】
2008090500.tif 000017
【図１５】
2008090500.tif 000018