JP2007094971A - 変換法自動生成方法、変換法自動生成プログラム及び変換法自動生成装置 - Google Patents

変換法自動生成方法、変換法自動生成プログラム及び変換法自動生成装置 Download PDF

Info

Publication number
JP2007094971A
JP2007094971A JP2005286669A JP2005286669A JP2007094971A JP 2007094971 A JP2007094971 A JP 2007094971A JP 2005286669 A JP2005286669 A JP 2005286669A JP 2005286669 A JP2005286669 A JP 2005286669A JP 2007094971 A JP2007094971 A JP 2007094971A
Authority
JP
Japan
Prior art keywords
conversion method
layer
automatic generation
elements
hierarchical structure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005286669A
Other languages
English (en)
Other versions
JP4189400B2 (ja
Inventor
Shigeru Kobayashi
茂 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2005286669A priority Critical patent/JP4189400B2/ja
Publication of JP2007094971A publication Critical patent/JP2007094971A/ja
Application granted granted Critical
Publication of JP4189400B2 publication Critical patent/JP4189400B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Document Processing Apparatus (AREA)

Abstract

【課題】構造化データを当該データの階層構造を極力保った状態で表形式データに変換するための変換法を自動的に生成できるようにする。
【解決手段】対象/記述境界決定部124は、構造化データの階層構造を上位層をなす第1の層と下位層をなす第2の層とに分割するための境界を決定する。変換法生成部125は、上記第1の層を表の行方向及び列方向のうちの一方である第1の方向に対応付け、上記第2の層を上記表の行方向及び列方向のうちの他方である第2の方向に対応付けるための変換法を示す変換法情報を生成する。
【選択図】図2

Description

本発明は、構造化データを表形式データに変換するための変換法を自動生成するのに好適な変換法自動生成方法、変換法自動生成プログラム及び変換法自動生成装置に関する。
一般に、論理構造を持つデータは構造化データと呼ばれる。構造化データにおいて、当該データの論理構造は、当該データ中に記述されたタグによって示される場合がある。このタグを用いて論理構造が表現された構造化データは、計算機で各種目的に合わせて解釈ないし加工して利用する処理に適している。
さて、タグを用いてデータを記述する手段として、XML(Extensible Markup Language)が広く利用されている。XMLは、意味付けされたタグによるデータの階層化が可能で且つ構造の自由な拡張性に富むという特長を持つ。このXMLを用いて記述されたデータはXMLデータと呼ばれる。XMLデータは、タグを用いて論理的に木構造で表現される構造化データの代表として知られている。
XMLは、純粋なデータとレイアウト情報を分離する思想に基づいている。帳票データをデータベースに蓄積する場合を例にとると、XMLは、フィールド値やそれらの識別情報、及び情報の階層情報のみをデータとして保存する。このようなデータ、つまりレイアウト情報を含まないXMLデータを帳票として参照するには、XMLデータの形式毎に、レイアウト情報を含んだXMLへの変換法を定義したスタイルシートを作成する必要がある。
スタイルシートは、一種のアプリケーション(アプリケーションプログラム)である。一般に、このスタイルシートとレイアウト情報を含まないXMLデータとをXSLT(XSL Transformations, XSL:Extensible Stylesheet Language)への入力として与えることで、当該データを、帳票として参照可能な、レイアウト情報を含むXMLデータに変換することができる。したがって、スタイルシートを作成しない場合には、ユーザは元のXMLデータをテキスト形式で参照しなければならない。
ここで、XMLデータを直接蓄積するネイティブXMLデータベースを、例えば関係データベースと比較する。関係データベースでは、データの蓄積に元々「表」が用いられる。このため関係データベースにおいては、特別のアプリケーションを開発しなくても、当該データベースにどのようなデータが格納されているかを、ユーザは表の内容を単純に出力(表示またはプリント)することによって確認できる。
これに対し、ネイティブXMLデータベースの場合、当該データベースにどのようなデータが格納されているかをユーザが確認するには、上述のように、データ構造に応じたXSLTのスタイルシート(つまりアプリケーション)を作成するか、もしくは元のXMLデータをテキスト形式で参照するしかない。このテキスト形式のXMLデータは、
(1)タグの反復が冗長である
(2)テキストが縦長になる
傾向がある。このため、テキスト形式のXMLデータは、情報項目の構造間の対応関係をユーザが直感的に読み取る(理解する)のには適さない。つまり、テキスト形式のXMLデータは、ユーザにとって決して見やすく且つ理解しやすいものではない。
さてXMLに関し、データを当該XMLで蓄積すれば、そのデータの最大限の活用が可能になることが従来から期待されている。ところが、このような期待の一方で、蓄積データの増大と共に、当該データをユーザが簡単に参照する手段の不在、アプリケーション開発量の増大というデメリットが大きくなる問題が存在する。
そこで、例えば特許文献1には、XMLデータ(XML文書)を表形式のデータに変換して当該表形式のデータを表形式のデータベースに格納する技術(先行技術)が提案されている。この先行技術においては、XMLデータから抽出されたデータ(例えば階層構造の最も深い層の要素)が、レコードのフィールド(項目)の値として、表の行位置に格納される。レコード内の各フィールドの値(データ)は、当該データの要素種別に対応付けられる列見出が設定された列に位置する。つまり、XMLデータから抽出されたデータは、表内にマトリクス状に格納される。この先行技術によれば、ユーザはXMLデータを表形式で参照することが可能となる。
特開2002−117020号公報(段落0023乃至0028)
しかしながら上記先行技術においては、XMLデータから抽出されたデータは、表内に単にマトリクス状に格納されるだけであり、当該表は元のXMLデータの階層構造を何ら反映していない。このため、ユーザはXMLデータを表形式で参照できても、見出間の階層構造を簡単に理解することは困難である。
本発明は上記事情を考慮してなされたものでその目的は、構造化データを当該データの階層構造を極力保った状態で表形式データに変換するための変換法を自動的に生成できる変換法自動生成方法、変換法自動生成プログラム及び変換法自動生成装置を提供することにある。
本発明の1つの観点によれば、構造化データを表形式データに変換するための変換法を自動生成する変換法自動生成方法が提供される。この方法は、前記構造化データの階層構造を、上位層をなす第1の層と下位層をなす第2の層とに分割するステップと、前記第1の層を表の行方向及び列方向のうちの一方である第1の方向に対応付け、前記第2の層を前記表の行方向及び列方向のうちの他方である第2の方向に対応付けるための変換法を示す変換法情報を生成する変換法生成ステップとを具備する。
本発明によれば、構造化データを当該データの階層構造を極力保った状態で表形式データに変換するための変換法を自動的に生成できる。したがって、この生成された変換法に基づいて、対応する構造化データを表形式データに変換して表形式で出力するならば、ユーザは、元の構造化データからは理解するのが困難な、情報項目の構造間の対応関係を表から直感的に理解することができる。
以下、本発明の実施の形態につき図面を参照して説明する。
図1は本発明の一実施形態に係る計算機システムの構成を示すブロック図である。この計算機システムは、計算機10及び当該計算機10と接続される端末(ユーザ端末)20から構成される。本実施形態において端末20は計算機10に直接接続されているものとする。しかし、端末20がネットワークを介して計算機10と接続されていても構わない。
計算機10は、XMLデータベース11、変換法自動生成モジュール12、メモリ13及びXML−表変換モジュール14を含む。XMLデータベース11は、構造化データ、例えばXMLデータを保存する。
変換法自動生成モジュール12は、XMLデータベース11に保存されているXMLデータ毎に、当該データを表形式データに変換するための変換法(変換規則)を自動的に生成する。本実施形態において、変換法自動生成モジュール12は、計算機10が有するCPU(図示せず)が読み取って実行することが可能なプログラムである。このプログラム(変換法自動生成モジュール12)は、コンピュータ読み取り可能な記憶媒体に予め格納して頒布可能である。また、このプログラムが、ネットワークを介して計算機10にダウンロード(頒布)されても構わない。
メモリ13の一部は、変換法自動生成モジュール12及びXML−表変換モジュール14の作業用領域に用いられる。メモリ13の他の一部は、変換法格納領域131及びカスタマイズ情報領域132に用いられる。変換法格納領域131には、変換法自動生成モジュール12によって生成された変換法を記述した情報(変換法情報)が格納される。この変換法情報は、例えばユーザの操作による端末20からの編集のために、ファイル形式で出力されることがある。編集前の変換法情報及び編集後の変換法情報の各々は、いずれもXML−表変換モジュール14によるXMLデータから表形式データへの変換に利用可能である。
図1では、作図の都合上、メモリ13に、1つの変換法格納領域131だけが確保されている状態が示されている。しかし、変換法格納領域131が、XMLデータ毎に当該XMLデータに対応付けてメモリ13に確保される構成とすることも可能である。また、生成された変換法情報を例えばファイル形式でハードディスクドライブ(HDD)のような外部記憶装置に保存することも可能である。
変換法格納領域131は、変換法領域(RULES領域)131a及び境界領域(BORDER領域)131bとから構成される。RULES領域131aには、変換法の配列(RULES)が格納される。各配列は、{パス、見出し決定法、セル値決定法}から構成される。この配列における見出し決定法(見出し決定法情報)及びセル値決定法(セル値決定法情報)は、それぞれ値(見出し及びセル値)の取得元を指定する。指定可能な取得元は、次に列挙する
・TAGNAME パスのタグ名を値とする
・TEXT タグの内容テキストを値とする
・CHILD(“名前”) 指定のタグ名を持つ子要素の内容テキストを値とする
・ATTR(“名前”) 指定の名前を持つ属性値を値とする
・“文字列” 指定の文字列を値とする
・null 指定なし(値不要)
のいずれかである。
RULES領域131aのサイズは、当該領域131aに格納すべき変換法(変換法情報)のサイズに応じて自動的に可変される。BORDER領域131bは、変換法を構成する各配列のうち、対象層の変換法と記述層の変換法の階層構造上の境界を表すインデックスを格納する。本実施形態では、このインデックスで示されるRULES領域131aの位置以降に記述層の変換法が格納される。対象層と記述層とについては後述する。
カスタマイズ情報領域132には、カスタマイズ情報VALSが格納される。このカスタマイズ情報VALSを、例えばファイルにより提供することが可能である。カスタマイズ情報VALSは、セル値取得元の候補を、優先度の高い順に変換法の値の取得元と同じ表記で与えられる。但し、TAGNAMEとnullは除かれる。カスタマイズ情報VALSは、例えば{CHILD(“名前”),ATTR(“name”),CHILD(“name”),“−”}のように与えられる。ここで、“−”は、定数“−”をセル値とすることを表す。
XML−表変換モジュール14は、XMLデータベース11に保存されているXMLデータを、当該XMLデータに対応付けて変換法格納領域131に格納されている変換法(変換法情報)に従って、表形式データに変換する。XML−表変換モジュール14は、計算機10が有するCPUが読み取って実行することが可能なプログラムである。このプログラム(XML−表変換モジュール14)は、コンピュータ読み取り可能な記憶媒体に予め格納して頒布可能である。また、このプログラムが、ネットワークを介して計算機10にダウンロードされても構わない。また、変換法自動生成モジュール12及びXML−表変換モジュール14が1つのプログラムとして提供されても構わない。
図2は、図1中の変換法自動生成モジュール12の機能構成を示すブロック図である。この変換法自動生成モジュール12の構成についての理解を容易にするために、XMLデータの一般的な特徴及びXMLを表で表現する仕組みについて説明する。
<XMLデータの一般的な特徴>
まず、XMLデータの構造上の一般的な特徴について説明する。ここでは、XMLデータの表形式データへの変換という観点から、構造上の共通性のない情報の集まりを含めたXML一般ではなく、日常の業務ソフトウェアが取り扱うような、定型的項目群からなる情報の集まり、及び、それらを分類する木構造を想定する。このようなXMLデータにおける階層構造は、通常、よりルート要素(ルートノード)に近い(階層的に浅い)要素(ノード)と、ルート要素からより遠い(階層的に深い)要素について、次のように構成されるのが一般的である。
(1)深い層は、浅い層の部分を表わす
(2)深い層は、浅い層の構成メンバーを表わす
(3)深い層は、浅い層の特徴記述項目の値を記述する。
この構成について、別の解釈をするならば、より浅い要素について、より深い層が、その下位構造や属性などを説明または記述していると捉えることもできる。ある深さの階層を境界として、それより浅い層を、記述の対象に用いられることを意味する「対象層」と呼び、それより深い層を記述に用いられることを意味する「記述層」と呼ぶ。
<XMLを表で表現する仕組み>
次に、本実施形態で適用される、XMLを表で表現する仕組みについて、図3及び図4を参照して説明する。図3は、XMLデータの階層構造31の一例を示す。図4は、この階層構造31を保ちながら、XMLデータを表で表現する仕組みを示す。
図3に示す階層構造31を持つXMLデータが、定型的項目群から構成される場合、次のようにして、表による表現に変換できる。
(1)上記したように、XMLデータの階層構造(木構造)は、ある深さを境に、対象層(第1の層)と記述層との2つに分割可能であることが多い。そこで、図3に示す階層構造31を持つXMLデータを、当該階層構造31の、ある深さ32で相対的に浅い層33と深い層34とに分割する。深さ32を対象/記述境界32と呼び、浅い層33及び深い層34を、それぞれ対象層33及び記述層34と呼ぶ。階層構造(木構造)31の対象層33及び記述層34は、一般にタグ付けに特徴がある。つまり、図3の階層構造31のように、同じ深さの要素(ノード)のタグ名(要素名)が、ルートから1つ下位の階層の要素のタグ名Xのように全て同じであるか、または、ルートから2つ下位の階層の要素のタグ名A,B,C,Dのように全て異なるなら、その階層は対象層33に属すると見なすことができる。一方、同じ深さの要素のタグ名が、タグ名P,Qのセット及びタグ名R,Sのセットのように部分木毎に全て同じセットであるなら、その階層は記述層34に属すると見なすことができる。
(2)対象層33の要素を、図4に示すように、表35の例えば行方向に対応付ける(割り当てる)。ここで対象層33が、本実施形態のように1より大きい深さの階層構造を持つとき、当該対象層33の要素を、その階層構造に対応する大分類〜小分類の行見出しを持った行に構成する。この対象層33の大分類〜小分類に列見出しを持たせることもできる。
(3)記述層34の要素(記述層34の同一セットの要素)を、図4に示すように、表35の例えば列方向に対応付ける。ここで記述層34が、本実施形態のように1より大きい深さの階層構造を持つとき、当該記述層34の要素を、その階層構造に対応する大分類〜小分類の列見出しを持った列に構成する。
(4)本実施形態では、表の各列見出し及びセルの値(セル値)として、
a:タグ名、b:テキスト、c:特定子要素のテキスト、d:特定属性値、e:定数
のいずれかのデータを用いることができる。
(5)列見出し及びセルの値(セル値)は、対象層及び記述層の各々について、次のように決定される。
5-1)対象層については、同じ深さの要素のタグ名により、例えば次の優先度
全て異なるとき、 列見出し={e}、 セル値={a}
全て同一のとき、 列見出し={e,a}、セル値={b,c,d,e}
同一セットのとき、列見出し={e,a}、セル値={b,c,d,e}
で値が決定される。ここで{ }内の要素の優先度は、左側の要素ほど高いことを表す。例えば{b,c,d,e}は、b(テキスト)の優先度が最も高く、以下、c(特定子要素のテキスト)、d(特定属性値)、e(定数)の順に優先度が低くなることを表す。
5-2)記述層については、下位構造の有無により、例えば次の優先度
末端のとき、 列見出し={e,a}、セル値={b,c,d,e}
末端でないとき、 列見出し={e,a}、セル値=なし
で値が決定される。
ここで、{ }内の要素と、その要素の優先度は一例である。以下の例では、上記の列見出し={e,a}に代えて、列見出し={a}が用いられる。
また、上記(2)及び(3)における「行」と「列」も一例であり、「行」を「列」に、「列」を「行」に入れ替えることも可能である。
再び図2を参照すると、変換法自動生成モジュール12は、深さカウンタ121、第1のタグ名判別部122、第2のタグ名判別部123、対象/記述境界決定部124及び変換法生成部125から構成される。
深さカウンタ121は、変換法生成の対象となるXMLデータの階層構造のルートからの深さiを表す。
第1のタグ名判別部122は、深さカウンタ121によって示される深さiのノードが全て異なるタグ名であるか否かを判別する。第2のタグ名判別部123は、上記深さiのノードが全て同一のタグ名であるか否かを判別する。
対象/記述境界決定部124は、第1のタグ名判別部122及び第2のタグ名判別部123の判別結果に基づいて対象/記述境界32を決定する。
変換法生成部125は、第1のタグ名判別部122及び第2のタグ名判別部123の判別結果に基づいて、深さiのXMLデータから表形式データへの変換法{パス、見出し決定法、セル値決定法}を生成する。
変換法生成部125は、第1の変換法生成部126及び第2の変換法生成部127から構成される。第1の変換法生成部126は、深さiが対象層に属する場合に、当該深さiのXMLデータから表形式データへの変換法を生成する。第1の変換法生成部126は、カスタマイズ情報領域132に格納されているカスタマイズ情報VALSに基づいてセル値決定法を生成するセル値決定法生成部126aを含む。第2の変換法生成部127は、深さiが記述層に属する場合に、当該深さiのXMLデータから表形式データへの変換法を生成する。
次に、本実施形態の動作について、変換法自動生成モジュール12による変換法自動生成処理の手順を例に、図5乃至図9を参照して説明する。ここで図5は変換法自動生成処理の手順を示すフローチャート、図6は変換法自動生成処理における処理P1の手順を示すフローチャート、図7は変換法自動生成処理における処理P2の手順を示すフローチャートである。図8は上記変換法自動生成処理の対象となるXMLデータ40の一例を示し、図9は当該XMLデータ40の階層構造41を示す。
まず、ユーザ操作に従う端末20からの指示により、変換法自動生成モジュール12が起動されたものとする。ここでは、XMLデータベース11に格納されているXMLデータのうち、図8に示すXMLデータ40を表形式データに変換するための変換法(変換規則)の生成が指示されたものとする。
変換法自動生成モジュール12が起動されると、深さカウンタ121の値(深さi)が0に初期設定される(ステップS1)。ここで、i=0は、ルートノードから1つ下位の階層を表す。第1のタグ名判別部122は、XMLデータ40の階層構造41(図9参照)に従い、深さカウンタ121の示す深さiのノード(カレントノード)群は全て異なるタグ名か否かを判別する(ステップS2)。もし、全て異なるタグ名であるならば、第1のタグ名判別部122は第1の変換法生成部126に制御を渡す。
第1の変換法生成部126は、深さiのノード群が全て異なるタグ名の場合、対象層における深さiの変換法の配列RULES[i]={パス、見出し決定法、セル値決定法}におけるパスとして、ルートノードから深さiの各ノードまでのカレントパスを決定する(ステップS3)。このカレントパスは物理的には、深さiの各ノード毎に異なる。しかし本実施形態では、以下の表記を用いることにより、深さiの各ノードに共通のカレントパスとして取り扱われる。カレントパスは、基本的には、ルートノードから深さiのノードまでのパス上の各ノードのタグ名によって表される。但し、同じ深さの各ノードのタグ名が異なる場合には、タグ名に代えて、ノードによってタグ名が異なることを表す記号、例えば*が用いられる。これにより、図3に示す階層構造31のXMLデータの例では、深さiが1の場合、即ち、深さiがルートノードから2つ下位の階層を示す場合、上記ステップS3で決定されるカレントパスは、Root/X/*のように表される。決定されたパスは、メモリ13内に確保された変換法格納領域131のRULES領域131aにRULES[i]の要素として格納される。ここで、RULES[i]が格納されるRULES領域131aの位置は、「i」をインデックスとして指定される。
また第1の変換法生成部126は、RULES[i]における見出し決定法として“”(空文字列)を決定する(ステップS4)。“”(空文字列)は、上述の定数eに相当する。決定された見出し決定法は、上記RULES領域131aにRULES[i]の要素として格納される。また第1の変換法生成部126は、RULES[i]におけるセル値決定法としてTAGNAMEを決定する(ステップS5)。決定されたセル値決定法は、上記RULES領域131aにRULES[i]の要素として格納される。
第1の変換法生成部126は、ステップS3〜S5を実行すると、深さカウンタ121を1インクリメントする(ステップS6)。そして第1の変換法生成部126は、第1のタグ名判別部122に制御を渡す。
すると第1のタグ名判別部122は、このインクリメント後の深さカウンタ121の示す深さiのノード群は全て異なるタグ名か否かを判別する(ステップS2)。もし、一部のノード群でも同一タグ名であるならば、第1のタグ名判別部122は第2のタグ名判別部123に制御を渡す。すると第2のタグ名判別部123は、深さiのノード群は全て同一のタグ名か否かを判別する(ステップS7)。もし、全て同一のタグ名であるならば、第2のタグ名判別部123は第1の変換法生成部126に制御を渡す。
第1の変換法生成部126は、深さiのノード群が全て同一のタグ名の場合、上記ステップS3,S4と同様にして、RULES[i]におけるパス及び見出し決定法として、それぞれカレントパス及び当該タグ名を決定する(ステップS8,S9)。カレントパスは、図3に示す階層構造31のXMLデータの例で、i=0であるものとすると、Root/Xで表される。なお、見出し決定法として、タグ名に代えて定数(文字列)を適用しても良い。また、この定数を、カスタマイズ情報VALSと同様の例えばカスタマイズ情報VALS1により、ステップS9での見出し決定法の決定に用いられる候補(見出し取得元の候補)として指定することも可能である。この場合、例えばカスタマイズ情報VALS1によって定数(見出し取得元の候補)が指定されていないことを条件に、見出し決定法としてタグ名が決定されるようにしても良い。つまり、列見出し={e,a}としても良い。
また第1の変換法生成部126は、RULES[i]におけるセル値決定法を処理P1により決定(取得)する(ステップS10)。
処理P1は、第1の変換法生成部126内のセル値決定法生成部126aにより、次のように実行される。まずセル値決定法生成部126aは、メモリ13のカスタマイズ情報領域132に格納されているカスタマイズ情報VALSの最初(先頭)の候補(セル値取得元候補)を参照する(ステップS21)。
次にセル値決定法生成部126aは、該当する候補の有無をチェックする(ステップS22)。もし、該当する候補がないならば、セル値決定法生成部126aはセル値決定法を“”(空文字列)とする(ステップS23)。
これに対し、上記最初の候補の参照時のように、該当する候補があるならば、セル値決定法生成部126aは、その候補がTEXT、CHILD(“名前”)及びATTR(“name”)のいずれであるかを判別する(ステップS24,S26,S30)。
もし、該当する候補がTEXTであるならば(ステップS24)、セル値決定法生成部126aはセル値決定法をTEXTとして(ステップS25)、処理P1を終了する。また、該当する候補がCHILD(“名前”)であるならば(ステップS26)、セル値決定法生成部126aは当該CHILD(“名前”)で指定される名前の子要素があるか否かを判別する(ステップS27)。もし、指定される名前の子要素があるならば、第1の変換法生成部126はセル値決定法をCHILD(“名前”)として(ステップS28)、処理P1を終了する。これに対し、指定される名前の子要素がないならば、第1の変換法生成部126は上記カスタマイズ情報VALSの次の候補を参照して(ステップS28)、上記ステップS22に戻る。
また、該当する候補がATTR(“名前”)であるならば(ステップS30)、セル値決定法生成部126aは当該ATTR(“名前”)で指定される名前の属性があるか否かを判別する(ステップS31)。もし、指定される名前の属性があるならば、第1の変換法生成部126はセル値決定法をATTR(“名前”)として(ステップS32)、処理P1を終了する。これに対し、指定される名前の属性がないならば、第1の変換法生成部126は上記カスタマイズ情報VALSの次の候補を参照して(ステップS28)、上記ステップS22に戻る。
また、該当する候補がTEXT、CHILD(“名前”)及びATTR(“name”)のいずれでもないならば(ステップS24,S26,S30)、セル値決定法生成部126aは当該候補が“文字列”であると判別する。この場合、セル値決定法生成部126aはセル値決定法を“文字列”として(ステップS33)、処理P1を終了する。
第1の変換法生成部126は処理P1によりセル値決定法を決定すると(ステップS10)、深さカウンタ121を1インクリメントして(ステップS6)、第1のタグ名判別部122に制御を渡す。
さて、第2のタグ名判別部123は、深さiのノード群が全て同一のタグ名でもない場合(ステップS7)、対象/記述境界決定部124に制御を渡す。つまり、深さiのノード群が、全て異なるタグ名でなく(ステップS2)、且つ全て同一のタグ名でもない場合(ステップS7)、対象/記述境界決定部124に制御が渡される。このとき深さカウンタ121は、変換法自動生成処理の対象となっているXMLデータの階層構造内で同じ深さのノード群のタグ名が全て異なるか、或いは当該同じ深さのノード群のタグ名が全て同一となる最大深さに1を加算した深さiを表す。
すると対象/記述境界決定部124は、深さiを対象/記述境界として決定し、メモリ13内に確保された変換法格納領域131のBORDER領域131bに、BORDER(対象/記述境界を表すインデックス)=iを格納する(ステップS11)。このステップS11において対象/記述境界決定部124は、インデックスjをiに設定する。インデックスjは、記述層における変換法の配列RULES[j]の、変換法格納領域131内の格納位置を指定する。RULES[j]は、上記対象層における変換法の配列RULES[i]に相当する。対象/記述境界決定部124はステップS11を実行すると、第2の変換法生成部127に制御を渡す。
すると第2の変換法生成部127は、深さiの各ノードのパスについて、処理P2を次のように実行する(ステップS12)。まず第2の変換法生成部127は、RULES領域131aに格納されている変換法の配列群(RULES)を参照して、配列群の中に現在処理対象となっている深さiのノード(つまりカレントノード)のパスが含まれているか否かを判別する(ステップS41)。もし、含まれているならば、第2の変換法生成部127は深さiの1つのノードについての処理P2を終了する。そして、深さiの未処理のノードがあるならば、第2の変換法生成部127は当該未処理のノードについて処理P2を実行する。
一方、配列群の中に深さiのカレントノードのパスが含まれていないならば(ステップS41)、第2の変換法生成部127は、記述層に属する深さiの変換法の配列RULES[j]におけるパスとしてカレントパスを決定する(ステップS42)。また第2の変換法生成部127は、RULES[j]における見出し決定法をカレントノードのタグ名とする(ステップS43)。ここで、ステップS12の開始時点では、j=i=BORDERである。決定されたパス及び見出し決定法は、インデックスj(ここではj=i=BORDER)で指定されるRULES領域131aの位置にRULES[j]の要素として格納される。
次に第2の変換法生成部127は、カレントノードが子を持たないか否か、つまりカレントノードが末端ノードであるか否かを判別する(ステップS44)。もし、カレントノードが末端ノードであるならば、第2の変換法生成部127は、第1の変換法生成部126内のセル値決定法生成部126aを利用して、RULES[j]におけるセル値決定法を処理P1により決定する(ステップS45)。この処理P1は、前記ステップS10と同様に、図6のフローチャートの示す手順で行われる。決定されたセル値決定法は、インデックスjで指定されるRULES領域131aの位置にRULES[j]の要素として格納される。第2の変換法生成部127は、ステップS45を終了すると、次のRULES[j]の格納位置を決定するためにインデックスjを1インクリメントして(ステップS46)、深さiの1つのノードについての処理P2を終了する。
これに対し、カレントノードが末端ノードでないならば、つまりカレントノードが子ノードを持つならば(ステップS44)、第2の変換法生成部127は、RULES[j]におけるセル値決定法をnullとする(ステップS47)。次に第2の変換法生成部127は、インデックスjを1インクリメントする(ステップS48)。そして第2の変換法生成部127は、カレントノードの子ノードの各パスについて、上述の処理P2を再帰的に実行する(ステップS49)。
このようにして、変換法格納領域131のRULES領域131aのi=0〜i=BORDER−1で指定される位置には、対象層における深さ0〜BORDER−1に対応するRULES[i]が格納される。また、RULES領域131aのBORDERで指定される位置以降には、記述層におけるRULES[j](j=BORDER,BORDER+1,…)が格納される。つまり変換法格納領域131には、指定されたXMLデータを表データに変換するための変換法情報が格納される。
ユーザは、変換法格納領域131に格納されている、生成された変換法情報を部分的に修正(編集)したい場合、端末20を操作して当該変換法情報を例えばファイル形式で計算機10から当該端末20に転送させる。端末20に転送された変換法情報は当該端末20の表示画面に表示される。ユーザは、端末20に表示されている変換法情報を、例えばよりユーザにとって見やすく理解しやすい表形式とするために、当該端末20を操作して修正する。この変換法情報は、{パス、見出し決定法、セル値決定法}から構成される配列の集合である。したがってユーザは、通常のデータ修正と同様に、変換法情報を極めて簡単に修正できる。この修正された変換法情報により、変換法格納領域131に格納されている変換法情報を更新することが可能である。
図8のXMLデータ40では、図9の階層構造41から明らかなように、ルートノードから1つ下位の階層に、2つのノードが存在する。この2つのノードのタグ名は共に「地区」であり、当該ノード(要素)のテキスト(内容)は、それぞれ「北海道・東北」、「関東・中部」である。また、ルートノードから2つ下位の階層には、3つのノードが存在する。この3つのノードのタグ名は共に「都道府県」であり、当該ノード(要素)のテキストは、それぞれ「北海道」、「神奈川」、「静岡」である。また、ルートノードから3つ下位の階層には、7つのノードが存在する。この7つのノードのタグ名は共に「市町村」であり、当該ノード(要素)のテキストは、それぞれ「札幌市」、「旭川市」、「釧路市」、「横浜市」、「川崎市」、「浜松市」、「静岡市」である。
一方、ルートノードから4つ下位及び5つ下位の階層には、同じ深さの階層のタグ名が、部分木毎に全て同じセット(タグ名「人口」、「面積」、「産業」のセット、タグ名「米生産量」、「漁獲量」のセット」)が存在する。
よって、図9の階層構造41のXMLデータ40は、ルートノードから3つ下位の階層が対象/記述境界42となる。この場合、ルートノードから対象/記述境界42までが対象層43となり、対象/記述境界42よりも下位の層が記述層44となる。なお、XMLデータ40に含まれている市町村の人口、面積等は、実際の数値を表していない点に注意する。
図9の階層構造41の例では、対象層43に関しては、上述の変換法自動生成処理により、RULES[0],RULES[1],RULES[2]として、それぞれ{Root/地区,列見出し=タグ名,セル値=テキスト}、{Root/地区/都道府県,列見出し=タグ名,セル値=テキスト}、{Root/地区/都道府県/市町村,列見出し=タグ名,セル値=テキスト}が生成される。
一方、記述層44に関しては、タグ名が「人口」、「面積」の末端ノードについて、例えばRULES[3],RULES[4]として、それぞれ{Root/地区/都道府県/市町村/人口,列見出し=タグ名,セル値=テキスト}、{Root/地区/都道府県/市町村/面積,列見出し=タグ名,セル値=テキスト}が生成される。但し、カスタマイズ情報VALSの最初の候補がTEXTであるものとする。また、タグ名が「産業」のノード、つまりタグ名が「米生産量」、「漁獲量」の子ノードを持つノードについて、例えばRULES[5]として、{Root/地区/都道府県/市町村/産業,列見出し=タグ名,セル値=null}が生成される。また、タグ名が「米生産量」、「漁獲量」の末端ノードについて、例えばRULES[6]、RULES[7]として、それぞれ{Root/地区/都道府県/市町村/産業/米生産量,列見出し=タグ名,セル値=テキスト}、{Root/地区/都道府県/市町村/産業/漁獲量,列見出し=タグ名,セル値=テキスト}が生成される。
XML−表変換モジュール14は、ユーザの操作による端末20からの指示により、これらのRULES[0]〜RULES[7]を含む変換法情報に従って、当該変換法情報が対応付けられているXMLデータを表形式データに変換する。この表形式データは、端末20に転送されて、当該端末20に表示される。図10は、図9の階層構造41を持つ図8のXMLデータ40からRULES[0]〜RULES[7]を含む変換法情報に従って変換される表形式データを、表45として画面表示する場合の表示画面例を示す。
図10の表45において、階層構造41の対象層43に属する各階層に対応する列見出し「地区」、「都道府県」、「市町村」の列のセルは、当該対象層43の階層構造を反映した大分類〜小分類の行見出しを構成している。また表45は、階層構造41の記述層44に属するタグ名が「産業」のノードと、当該ノードの子ノードである、タグ名がそれぞれ「米生産量」、「漁獲量」の子ノードに対応する列見出しを有する。これらの列見出しは、対応するノードの階層構造を反映した大分類〜小分類の列見出しを表している。
このように、図10の表45は、XMLデータ40の階層構造41を極力保っている。このためユーザは、XMLデータ40からは理解するのが困難な、情報項目の構造間の対応関係を表45から直感的に理解することができる。
上記実施形態では、対象/記述境界を決定するための第1のタグ名判別部122及び第2のタグ名判別部123の処理で、それぞれ、深さiのノード群は「全て異なるタグ名か否か」「全て同一のタグ名か否か」が判別される。しかし、例えば「タグ名が異なるノードの割合が第1のレベル以上であるか否か」、「タグ名が同一であるノードの割合が第2のレベル以上であるか否か」が判別される構成であっても構わない。明らかなように、上記実施形態は、上記第1及び第2のレベルとして、それぞれ「タグ名が異なるノードの割合」及び「タグ名が同一であるノードの割合」を100%とした場合に相当する。
また上記実施形態では、変換法自動生成モジュール12がプログラムである場合を想定している。しかし、変換法自動生成モジュール12を、図2に示す構成を有する装置(変換法自動生成装置)として実現することも可能である。
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
本発明の一実施形態に係る計算機システムの構成を示すブロック図。 図1中の変換法自動生成モジュール12の機能構成を示すブロック図。 XMLデータの階層構造の一例を示す図。 図3に示す階層構造を保ちながら、XMLデータを表で表現する仕組みを示す図。 同実施形態における変換法自動生成モジュール12による変換法自動生成処理の手順を示すフローチャート 図5の変換法自動生成処理における処理P1の手順を示すフローチャート。 図5の変換法自動生成処理における処理P2の手順を示すフローチャート。 上記変換法自動生成処理の対象となるXMLデータの一例を示す図。 図8に示すXMLデータの階層構造を示す図。 図9の階層構造を持つ図8のXMLデータから変換法情報に従って変換される表形式データを表として画面表示する場合の表示画面例を示す図。
符号の説明
10…計算機、11…XMLデータベース、12…変換法自動生成モジュール(変換法自動生成プログラム)、13…メモリ、14…XML−表変換モジュール(XML−表変換プログラム)、31,41…階層構造、32,42…対象/記述境界、33,43…対象層、34,44…記述層,40…XMLデータ、35,45…表、121…深さカウンタ、122…第1のタグ名判別部、123…第2のタグ名判別部、124…対象/記述境界決定部、125…変換法生成部、126a…セル値決定法生成部。

Claims (14)

  1. 構造化データを表形式データに変換するための変換法を計算機により自動生成する変換法自動生成方法において、
    前記構造化データの階層構造を、上位層をなす第1の層と下位層をなす第2の層とに分割するステップと、
    前記第1の層を表の行方向及び列方向のうちの一方である第1の方向に対応付け、前記第2の層を前記表の行方向及び列方向のうちの他方である第2の方向に対応付けるための変換法を示す変換法情報を生成する変換法生成ステップと
    を具備することを特徴とする変換法自動生成方法。
  2. 前記分割するステップは、
    前記構造化データの階層構造内で同じ深さの要素のうちタグ名が異なる要素の割合が第1のレベル以上となるか、或いは当該同じ深さの要素のうちタグ名が同一の要素の割合が第2のレベル以上となる最大深さを判別する判別ステップと、
    前記判別ステップの判別結果に基づいて前記第1の層及び前記第2の層の境界を決定して、前記構造化データの階層構造のルートから前記検出された最大深さまでの層を前記第1の層とし、前記構造化データの階層構造の前記検出された最大深さより深い層を前記第2の層とする境界決定ステップと
    を含むことを特徴とする請求項1記載の変換法自動生成方法。
  3. 前記第1及び第2のレベルを100%としたことを特徴とする請求項2記載の変換法自動生成方法。
  4. 前記変換法情報は、前記構造化データの階層構造における各パスについて、当該パス、当該パスに対応する見出しをどこから得るかを表す見出し決定法情報及び当該パスに対応するセルの値をどこから得るかを表すセル値決定法情報を含む配列から構成されることを特徴とする請求項2記載の変換法自動生成方法。
  5. 前記見出し決定法情報及び前記セル値決定法情報は、対応するパスで特定される要素のタグ名、当該要素の内容であるテキスト、当該要素の特定の子要素の内容であるテキスト、当該要素の特定の属性値及び定数のいずれかを指定する請求項4記載の変換法自動生成方法。
  6. 前記変換法生成ステップは、
    前記第1の層内で同じ深さの各要素のタグ名が全て異なる場合、当該各要素に対応付ける見出しを指定する前記見出し決定法情報として前記定数を決定し、当該各要素に対応付けるセルの値を指定する前記セル値決定法情報として当該各要素のタグ名を決定するステップと、
    前記第1の層内で同じ深さの各要素のタグ名が全て同じ場合、当該各要素に対応付ける見出しを指定する前記見出し決定法情報として、当該各要素に共通のタグ名及び前記定数のいずれかを予め定められた優先度に従って決定し、当該各要素に対応付けるセルの値を指定する前記セル値決定法情報として、当該各要素のテキスト、当該各要素の特定の子要素のテキスト、当該各要素の特定の属性値及び前記定数のいずれかを予め定められた優先度に従って決定するステップと
    を含むことを特徴とする請求項5記載の変換法自動生成方法。
  7. 前記変換法生成ステップは、
    前記第2の層内で子ノードを持たない要素について、当該要素に対応付ける見出しを指定する前記見出し決定法情報として、当該要素のタグ名及び前記定数のいずれかを予め定められた優先度に従って決定し、当該要素に対応付けるセルの値を指定する前記セル値決定法情報として、当該要素のテキスト、当該要素の特定の子要素のテキスト、当該要素の特定の属性値及び前記定数のいずれかを予め定められた優先度に従って決定するステップと、
    前記第2の層内で子ノードを持つ要素について、当該要素に対応付ける見出しを指定する前記見出し決定法情報として、当該要素のタグ名及び前記定数のいずれかを予め定められた優先度に従って決定し、当該要素に対応付けるセルの値を指定する前記セル値決定法情報として指定なしを決定するステップと
    を含むことを特徴とする請求項5記載の変換法自動生成方法。
  8. 前記生成された変換法情報を端末に転送して画面表示するステップと、
    前記端末に表示された変換法情報をユーザの前記端末の操作に基づいて修正するステップと
    を更に具備することを特徴とする請求項1記載の変換法自動生成方法。
  9. 前記変換法情報の生成に用いられた前記構造化データを当該変換法情報に基づいて表形式データに変換して表形式で出力するステップを更に具備することを特徴とする請求項1記載の変換法自動生成方法。
  10. 構造化データを表形式データに変換するための変換法を自動生成する変換法自動生成プログラムであって、
    計算機に、
    前記構造化データの階層構造を、上位層をなす第1の層と下位層をなす第2の層とに分割するステップと、
    前記第1の層を表の行方向及び列方向のうちの一方である第1の方向に対応付け、前記第2の層を前記表の行方向及び列方向のうちの他方である第2の方向に対応付けるための変換法を示す変換法情報を生成する変換法生成ステップと
    を実行させるための変換法自動生成プログラム。
  11. 前記分割するステップは、
    前記構造化データの階層構造内で同じ深さの要素のうちタグ名が異なる要素の割合が第1のレベル以上となるか、或いは当該同じ深さの要素のうちタグ名が同一の要素の割合が第2のレベル以上となる最大深さを判別する判別ステップと、
    前記判別ステップの判別結果に基づいて前記第1の層及び前記第2の層の境界を決定して、前記構造化データの階層構造のルートから前記検出された最大深さまでの層を前記第1の層とし、前記構造化データの階層構造の前記検出された最大深さより深い層を前記第2の層とする境界決定ステップと
    を含むことを特徴とする請求項10記載の変換法自動生成プログラム。
  12. 前記変換法情報は、前記構造化データの階層構造における各パスについて、当該パス、当該パスに対応する見出しをどこから得るかを表す見出し決定法情報及び当該パスに対応するセルの値をどこから得るかを表すセル値決定法情報を含む配列から構成されることを特徴とする請求項11記載の変換法自動生成プログラム。
  13. 構造化データを表形式データに変換するための変換法を自動生成する変換法自動生成装置において、
    前記構造化データの階層構造を上位層をなす第1の層と下位層をなす第2の層とに分割するための境界を決定する境界決定手段と、
    前記第1の層を表の行方向及び列方向のうちの一方である第1の方向に対応付け、前記第2の層を前記表の行方向及び列方向のうちの他方である第2の方向に対応付けるための変換法を示す変換法情報を生成する変換法生成手段と
    を具備することを特徴とする変換法自動生成装置。
  14. 前記構造化データの階層構造内で同じ深さの要素のうちタグ名が異なる要素の割合が第1のレベル以上となるかを判別する第1のタグ名判別手段と、
    前記構造化データの階層構造内で同じ深さの要素のうちタグ名が同一の要素の割合が第2のレベル以上となるかを判別する第2のタグ名判別手段と
    を更に具備し、
    前記境界決定手段は、前記同じ深さの要素のうちタグ名が異なる要素の割合が前記第1のレベル以上とならず、且つ当該同じ深さの要素のうちタグ名が同一の要素の割合が前記第2のレベル以上とならない場合に、当該深さを前記境界と決定する
    ことを特徴とする請求項13記載の変換法自動生成装置。
JP2005286669A 2005-09-30 2005-09-30 変換法自動生成方法、変換法自動生成プログラム及び変換法自動生成装置 Expired - Fee Related JP4189400B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005286669A JP4189400B2 (ja) 2005-09-30 2005-09-30 変換法自動生成方法、変換法自動生成プログラム及び変換法自動生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005286669A JP4189400B2 (ja) 2005-09-30 2005-09-30 変換法自動生成方法、変換法自動生成プログラム及び変換法自動生成装置

Publications (2)

Publication Number Publication Date
JP2007094971A true JP2007094971A (ja) 2007-04-12
JP4189400B2 JP4189400B2 (ja) 2008-12-03

Family

ID=37980582

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005286669A Expired - Fee Related JP4189400B2 (ja) 2005-09-30 2005-09-30 変換法自動生成方法、変換法自動生成プログラム及び変換法自動生成装置

Country Status (1)

Country Link
JP (1) JP4189400B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013015935A (ja) * 2011-07-01 2013-01-24 Hitachi Ltd Xmlファイル構造の復元方法。
US11748560B2 (en) 2020-08-14 2023-09-05 Kyndryl, Inc. Converting between tabular and structured data formats

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013015935A (ja) * 2011-07-01 2013-01-24 Hitachi Ltd Xmlファイル構造の復元方法。
US11748560B2 (en) 2020-08-14 2023-09-05 Kyndryl, Inc. Converting between tabular and structured data formats

Also Published As

Publication number Publication date
JP4189400B2 (ja) 2008-12-03

Similar Documents

Publication Publication Date Title
JP4091726B2 (ja) 構造化文書の表示規則の生成方法、システムおよびプログラムが記録された媒体ならびに構造化文書およびその文書型定義の変更方法、システムおよびプログラムが記録された媒体
JP4997749B2 (ja) 文書処理方法、プログラム及びシステム
US20040133854A1 (en) Persistent document object model
CN111506310A (zh) 生成多平台样式的方法、装置、设备及存储介质
US20080262833A1 (en) Document Processing Device and Document Processing Method
US20040268304A1 (en) XML document editor
US20020169803A1 (en) System and user interface for generating structured documents
JP2004234354A (ja) 構造パターン候補を生成する方法、システムおよびプログラム
JP2014167797A (ja) ウェブブラウザ上でxml文書を生成する方法
US20080163077A1 (en) System and method for visually generating an xquery document
US20100107048A1 (en) Document processor and document processing method
US20070258100A1 (en) Document Processing Device and Document Processing Method
JP4303079B2 (ja) テキストフォーマッティングまたはマークアップ言語フォーマッティングとアウトライン構造との間の変換のためのシステムおよび方法
US20080010588A1 (en) Document Processing Device and Document Processing Method
US20090077462A1 (en) Document processing device and document processing method
US20090083300A1 (en) Document processing device and document processing method
JP2007034571A (ja) 文書処理プログラム、文書処理方法
US20080005662A1 (en) Server Device and Name Space Issuing Method
US20080250311A1 (en) Document Processing Device, and Document Processing Method
US20080208790A1 (en) Document Processing Device, and Document Processing Method
US20080010587A1 (en) Document Processing Device and Document Processing Method
JP4189400B2 (ja) 変換法自動生成方法、変換法自動生成プログラム及び変換法自動生成装置
US20080141112A1 (en) Document Processing Device and Document Processing Method
US20090235156A1 (en) Document processing device and document processing method
US20080320412A1 (en) Document Processing Device and Document Processing Method

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070727

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070731

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071001

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071218

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080507

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080702

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080909

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080912

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110919

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120919

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120919

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130919

Year of fee payment: 5

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees