説明

構造化文書ファイル、およびその処理装置および方法

【課題】 特別な前処理を行うことなく、複数のファイルを包含した大容量の構造化文書を高速に処理することが可能な構造化文書ファイル、およびその処理装置および方法を提供する。
【解決手段】 複数のデータを保持する構造化文書ファイルであって、保持されるデータごとに区分けされ、各データの絶対パスを含むデータ名が記録されたデータ保持領域と、データ保持領域に含まれるデータ名および階層構造を成すディレクトリ名を有するデータ管理領域を有する構造化文書ファイルを用いて、データの処理を行う。データ管理領域には、階層構造のディレクトリ内におけるデータを示すタグが記録されており、このデータ管理領域を解析してツリー構造の画面を生成した後、画面上で指示されたデータの絶対パスを取得して、データ保持領域からデータを取得する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、XML等の構造化文書ファイルを高速に処理するための技術に関する。
【背景技術】
【0002】
近年、コンピュータネットワークの発展により、膨大な量の文書データが、やりとりされている。文書データの一つの形態として、XML(eXtensible Markup Language)で記述された構造化文書が用いられている。XMLは、文書やデータの意味や構造を記述するためのマークアップ言語の一つであり、「タグ」と呼ばれる特定の文字列で構造を埋め込んでいく。
【0003】
XMLは利用者が自由にタグを定義でき、文書中の文字列に意味付けができる言語構造を持っており、その操作性の良さから文書処理から電子商取引に至るまでネットワーク上のデータ処理の多くの局面で活用されている。このようなXMLの解析・処理手段としては、DOM(Document Object Model)とSAX(Simple API for XML)が広く用いられている。
【0004】
DOMは、XML文書をメモリ上で要素のツリー構造として扱い、ツリーをランダムに行き来したり削除したりする。このため、任意のツリー要素にランダムアクセスするようなXML操作に向いている。一方、SAXは、XML文書を読み込み、文書中からタグ等のイベントを検出して、イベント毎に設けられたメソッドを実行する。このため、SAXは、順序立てた要素処理を行うようなXML操作に向いている。
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、DOMでは、全データをメモリに保有するので大容量のXML文書を処理する場合、処理が重くなる傾向にある。また、SAXでは、XML文書の編集や複雑な操作ができない。一方、XMLの構造的特徴を利用して、XMLを、複数のファイルを含むデジタル封筒としての活用も行われている。デジタル封筒として活用するためには、デジタル封筒内の任意のファイルにアクセスし、追加・編集・削除等の処理を行うこと、複数のファイルデータを内包することが必要となるが、DOM、SAXでは、これらの要求に応えられないという問題がある。また、構造化文書ファイルを効率的に処理する技術も存在するが(特許文献1参照)、位置情報取得用に別途特別な前処理が必要となるという問題がある。
【特許文献1】特開2005−234837号公報
【0006】
そこで、本発明は、特別な前処理を行うことなく、複数のファイルを包含した大容量の構造化文書を高速に処理することが可能な構造化文書ファイル、およびその処理装置および方法を提供することを課題とする。
【課題を解決するための手段】
【0007】
上記課題を解決するため、本発明では、複数のデータを保持する構造化文書ファイルであって、保持されるデータごとに区分けされ、各データの絶対パスを含むデータ名が記録されたデータ保持領域と、前記データ保持領域に含まれる前記データ名および階層構造を成すディレクトリ名を有するデータ管理領域を有する構造化文書ファイルを提供する。
【0008】
また、本発明では、構造化文書ファイルを処理する装置であって、格納データが指定された際に、前記データ管理領域の格納データ名および階層構造を含むディレクトリ名を参照して、前記指定された格納データの絶対パス名を生成する手段と、前記データ保持領域における前記絶対パス名に格納されている格納データを抽出する手段を有する構造化文書ファイルの処理装置を提供する。
【0009】
また、本発明では、構造化文書ファイルをコンピュータが処理する方法であって、コンピュータが、格納データが指定された際に、前記データ管理領域の格納データ名および階層構造を含むディレクトリ名を参照して、前記指定された格納データの絶対パス名を生成する段階と、コンピュータが、前記データ保持領域における前記絶対パス名に格納されている格納データを抽出する段階を有する構造化文書ファイルの処理方法を提供する。
【0010】
本発明によれば、複数のデータを保持する構造化文書ファイルを、保持されるデータごとに区分けされ、各データの絶対パスを含むデータ名が記録されたデータ保持領域と、データ保持領域に含まれる前記データ名および階層構造を成すディレクトリ名を有するデータ管理領域により構成されるようにしたので、大容量の構造化文書を高速に処理することが可能となる。
【発明の効果】
【0011】
本発明によれば、特別な前処理を行うことなく、複数のファイルを包含した大容量の構造化文書を高速に処理することが可能となるという効果を奏する。
【発明を実施するための最良の形態】
【0012】
以下、本発明の好適な実施形態について、図面を参照して詳細に説明する。
(1.ファイル構造)
図1は、本発明に係る構造化文書ファイルの構造を示す概略図である。図1に示すように、本発明の構造化文書ファイルは、データ管理領域とデータ保持領域を有している。データ保持領域においては、複数のデータを保持することが可能であり、構造化文書ファイルがデジタル封筒としての役割を果たしている。構造化文書ファイルの形式としては、特に限定はされないが、内部に格納されているデータ以外は、全てテキストデータであることが必要となる。本実施形態では、全てテキストデータで表現されたXML形式で、構造化文書ファイルを実現している。
【0013】
図2は、データ管理領域の詳細を示す図である。本実施形態の構造化文書ファイルでは、データ管理領域およびデータ保持領域内のディレクトリをコンテナという仮想の単位で管理している。図2のデータ管理領域の1行目と最終の19行目のタグでコンテナ(Container)の開始と終了を示している。1行目のタグの中身に示すように、このコンテナのコンテナIDは、“EVP3HeaderContainer”となっている。
【0014】
図2のデータ管理領域の2行目と18行目のタグは、コンテナの中身の開始と終了を示している。3行目と17行目のタグは、ルート(root)ディレクトリを示している。4行目と6行目のタグは、EVPHeaderディレクトリを示し、5行目のタグは、EVPHeaderディレクトリの下位にFlowCtrlInfoディレクトリがあり、FlowCtrlInfoディレクトリの中身が空であることを示している。7行目と13行目のタグは、EVPBodyディレクトリを示し、8行目と12行目のタグは、EVPBodyディレクトリの下位のJobsディレクトリを示し、9、10、11行目のタグは、Jobsディレクトリ内にファイル“Job1.txt”“Job2.txt”“Job3.txt”が存在することを示している。14行目と16行目のタグは、CDStageInfoディレクトリを示し、15行目のタグは、CDStageInfoディレクトリ内にファイル“XMLFAT.xml”が存在することを示している。
【0015】
図3は、データ保持領域の詳細を示す図である。図3のデータ保持領域においては、5行目と下から12行目のタグで、root、EVPBodyの下位のJobsディレクトリを示し、6行目から24行目は、Jobsディレクトリの中身を示している。このうち、6行目から14行目は、データである“Job1.txt”に関し、15行目から23行目は、データである“Job2.txt”に関するものである。“Job1.txt”に関する6行目から14行目のうち、6行目から8行目は、“Job1.txt”のデータそのものを示し、9行目から14行目は、“Job1.txt”に関する情報を示す。同様に、“Job2.txt”に関する15行目から23行目のうち、15行目から17行目は、“Job2.txt”のデータそのものを示し、18行目から23行目は、“Job2.txt”に関する情報を示す。24行目からは、“Job2.txt”に関する記述がなされるが、図が繁雑になるため省略している。また、下から11行目と下から1行目のタグで、rootの下位のCDStageInfoディレクトリを示し、下から10行目から下から2行目は、CDStageInfoディレクトリの中身を示している。このうち、下から10行目から下から8行目は、“XMLFAT.xml”のデータそのものを示し、下から7行目から下から2行目は、“XMLFAT.xml”に関する情報を示す。
【0016】
(2.処理装置および方法)
続いて、本発明に係る構造化文書ファイルの処理装置および方法について説明する。本発明に係る構造化文書ファイルの処理装置は、専用のプログラムを汎用のコンピュータに組み込むことにより実現される。そして、本発明に係る構造化文書ファイルの処理方法は、本発明に係る構造化文書ファイルの処理装置、すなわち専用のプログラムを組み込んだコンピュータにより実行される。まず、汎用のコンピュータに、本発明の構造化文書ファイルの処理方法を実現するための専用のプログラムを組み込んで構造化文書ファイルの処理装置を構成する。このプログラムは、従来のDOM機能を一部の機能として有している。
【0017】
上述のようなプログラムを組み込んだ状態で、コンピュータが、構造化文書ファイルを読み込む。そして、それがXMLファイルであることを認識すると、コンピュータは、まず、データ管理領域内のタグを解析して、ディレクトリ構造を認識し、画面に表示する。このようなXMLのタグを解析してディレクトリ構造を画面に表示する機能については、上述のように、公知のDOM機能を採用している。この際、データ管理領域の情報がメモリに展開されるが、データ保持領域に比べてデータ量が小さいため、コンピュータの処理負荷は小さい。
【0018】
ディレクトリ構造を表示した状態の画面を図4に示す。コンピュータは、データ管理領域のタグを解析し、ディレクトリについては、ディレクトリを示す図形にディレクトリ名を割り当て、ファイルについては、ファイルを示す図形にファイル名を割り当てて、上下関係を有するディレクトリ、ファイル間を線分で結ぶ処理を行う。その結果、コンピュータの画面には、図4に示すようなフリー構造が表示されることになる。
【0019】
図4に示した画面が表示された状態で、利用者が画面上のファイルを示す図形を選択すると、コンピュータは、選択された図形の位置を検知して対応するファイルを認識する。そして、コンピュータは、認識したファイルのファイル名で、構造化文書ファイル内のデータ管理領域を参照し、そのファイルのパスを取得する。
【0020】
例えば、図4の画面で“Job2.txt”が選択された場合、コンピュータは、構造化文書ファイル内のデータ管理領域を、“Job2.txt”で探索する。すると、図2に示したように、データ管理領域の10行目に“Job2.txt”が見つかる。そして、コンピュータは、その上位のタグを辿ることにより、データ管理領域の8行目にJobsディレクトリを発見する。さらに上位のタグを辿ることにより、データ管理領域の7行目にEVPBodyディレクトリ、データ管理領域の3行目にrootディレクトリを発見する。rootディレクトリまで辿りついたら、コンピュータは、rootディレクトリから“Job2.txt”までのパスを作成する。この結果、Id=“/ root/ EVPBody/ Jobs/ Job2.txt”というパスが得られる。
【0021】
この時点までは、コンピュータは、データ量の大きいデータ保持領域を全く参照していない。このため、処理負荷の削減と、処理の高速化が図れるのである。そして、選択されたデータへのパスが得られたら、このパスを利用して、コンピュータは、初めてデータ保持領域を参照する。Id=“/ root/ EVPBody/ Jobs/ Job2.txt”というパスを利用すると、図3に示したデータ保持領域の15行目のタグと一致するので、コンピュータは、その次の16行目のデータ内容を取得する。
【0022】
コンピュータは取得したデータが暗号化されている場合には、それを認識し、復号化する。図3の例では、“Job2.txt”は暗号化されているので、コンピュータは、“Job2.txt”を復号化することになる。そして、復号化したデータのファイルを開き、画面に表示する。ここまでを、利用者の視点から見ると、図4のツリー画面で“Job2.txt”を選択すると、すぐにそのファイルの中身が画面に表示された状態となる。
【0023】
表示された内容に対して、利用者が編集を行った場合、更新した内容を保存することができる。利用者が内容を更新した状態で、コンピュータに対して保存指示を行うと、コンピュータは、既に取得しているId=“/ root/ EVPBody/ Jobs/ Job2.txt”というパスで、データ保持領域内を検索し、見つかったタグの直後に、修正後の内容を格納する。
【0024】
次に、新規に作成したデータを構造化文書ファイル内に格納する場合について説明する。新規に作成したデータを格納する場合も、まず、構造化文書ファイルをコンピュータで読み込み、ツリー情報を画面に表示する。この状態で、利用者は、新規データを格納する指示をコンピュータに対して行うとともに、格納するディレクトリを示す図形をツリー画面で指定し、ファイル名を入力する。例えば、Jobsディレクトリの図形を指定し、ファイル名“Job4.txt”を入力したとすると、コンピュータは、ツリー画面において、Jobsディレクトリの図形の下位に“Job4.txt”ファイルの図形を生成する。このときのツリー画面の状態を図5に示す。
【0025】
さらに、コンピュータは、ツリー画面を解析して、新規ファイルまでのパスを作成する。この結果、Id=“/ root/ EVPBody/ Jobs/ Job4.txt”というパスが得られる。そして、利用者が格納するファイルを指定すると、コンピュータは、指定されたファイルを暗号化した後、構造化文書ファイルのデータ保持領域における、上記作成したパスで特定される位置に指定されたファイルを格納する。この格納処理が終わった後の、データ保持領域の状態を図6に示す。図6において、下線を付した部分が新規に追加されたタグである。“Job4.txt”ファイルを新規追加することにより、図6に示した9行分のタグが追加されることになる。
【0026】
続いて、コンピュータは、構造化文書ファイルのデータ管理領域内に、新規データのタグを追加する。上記のように、データ保持領域において、Id=“/ root/ EVPBody/ Jobs/ Job4.txt”というパスで特定される位置に新規データを格納したので、データ管理領域においても対応する位置にタグを追加する。この追加処理が終わった後の、データ管理領域の状態を図7に示す。図7において、下線を付した部分が新規に追加されたタグである。“Job4.txt”ファイルを新規追加することにより、図7に示した1行分のタグが追加されることになる。なお、図6、図7においては、新規追加されたタグに下線を付したが、これは、説明の便宜のためであり、実際には下線は付されない。
【0027】
本発明に係る構造化文書ファイルは、複数のデータファイルを包含したデジタル封筒として利用することができる。例えば、複数の者が文書ファイルのやりとりするために利用することが可能である。一例として、起票者とユーザA、ユーザBの計3人で報告書の収集を行う場合について説明する。
【0028】
この場合、起票者、ユーザA、ユーザBが有するコンピュータには、本発明の構造化文書ファイルの処理方法を実現するためのプログラムが組み込まれており、各コンピュータは、互いにデータ送受信が可能なように接続されているものとする。まず、起票者は、自身のコンピュータで報告書のテンプレートファイルを作成し、このテンプレートファイルを、上記新規データの格納で説明したような処理により、構造化文書ファイルに格納する。格納後、起票者は、構造化文書ファイルを、ユーザAに送信する。
【0029】
ユーザAは、受信した構造化文書ファイルを起動する指示を行うと、ユーザAのコンピュータは、構造化文書ファイルのデータ管理領域を解析してツリー構造を画面に表示させる。ユーザAが、ツリー構造の中から報告書のテンプレートファイルを選択すると、コンピュータは、指定されたテンプレートファイルを構造化文書ファイルから抽出する。テンプレートファイルに所定の事項を書き込んで、報告書ファイルを作成した後、絶対パスを指定して、構造化文書ファイルに格納する。格納後、ユーザAは、構造化文書ファイルを、ユーザBに送信する。ユーザBは、ユーザAと同様に処理を行って、報告書を作成し、構造化文書ファイルに格納する。格納後、ユーザBは、構造化文書ファイルを、起票者に送信する。起票者は、構造化文書ファイルからツリー構造を表示し、ユーザA、ユーザBの報告書ファイルを選択する。すると、ユーザA、ユーザBの報告書ファイルが抽出され、画面に表示される。以上のようにして、起票者は、自分が指定したテンプレートに従った各ユーザの報告書を受け取ることができる。
【図面の簡単な説明】
【0030】
【図1】本発明に係る構造化文書ファイルの構造を示す概略図である。
【図2】データ管理領域の詳細を示す図である。
【図3】データ保持領域の詳細を示す図である。
【図4】データ管理領域を解析して、ディレクトリ構造を表示した状態の画面を示す図である。
【図5】新規データ格納時のツリー画面の状態を示す図である。
【図6】新規データ格納時の、データ保持領域を示す図である。
【図7】新規データ格納時の、データ管理領域を示す図である。

【特許請求の範囲】
【請求項1】
複数のデータを保持する構造化文書ファイルであって、
保持されるデータごとに区分けされ、各データの絶対パスを含むデータ名が記録されたデータ保持領域と、
前記データ保持領域に含まれる前記データ名および階層構造を成すディレクトリ名を有するデータ管理領域と、
を有することを特徴とする構造化文書ファイル。
【請求項2】
請求項1に記載の構造化文書ファイルを処理する装置であって、
格納データが指定された際に、前記データ管理領域の格納データ名および階層構造を含むディレクトリ名を参照して、前記指定された格納データの絶対パス名を生成する手段と、
前記データ保持領域における前記絶対パス名に格納されている格納データを抽出する手段と、
を有することを特徴とする構造化文書ファイルの処理装置。
【請求項3】
請求項1に記載の構造化文書ファイルをコンピュータが処理する方法であって、
コンピュータが、格納データが指定された際に、前記データ管理領域の格納データ名および階層構造を含むディレクトリ名を参照して、前記指定された格納データの絶対パス名を生成する段階と、
コンピュータが、前記データ保持領域における前記絶対パス名に格納されている格納データを抽出する段階と、
を有することを特徴とする構造化文書ファイルの処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate