JP4461151B2 - 構造化文書管理システム及びプログラム - Google Patents

構造化文書管理システム及びプログラム Download PDF

Info

Publication number
JP4461151B2
JP4461151B2 JP2007030891A JP2007030891A JP4461151B2 JP 4461151 B2 JP4461151 B2 JP 4461151B2 JP 2007030891 A JP2007030891 A JP 2007030891A JP 2007030891 A JP2007030891 A JP 2007030891A JP 4461151 B2 JP4461151 B2 JP 4461151B2
Authority
JP
Japan
Prior art keywords
structured document
definition information
storage
request
element definition
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.)
Expired - Fee Related
Application number
JP2007030891A
Other languages
English (en)
Other versions
JP2008197816A (ja
Inventor
誠二 新井
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 JP2007030891A priority Critical patent/JP4461151B2/ja
Publication of JP2008197816A publication Critical patent/JP2008197816A/ja
Application granted granted Critical
Publication of JP4461151B2 publication Critical patent/JP4461151B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、XML文書のような構造化文書が格納される構造化文書データベースを管理する構造化文書管理システムに係り、特に構造化文書をデータベースに格納するのに好適な構造化文書管理システム及びプログラムに関する。
構造化文書は、例えば特許文献1の背景技術の欄に記載されているように、当該文書の構造がタグと呼ばれる文字列で表現された文書として知られている。構造化文書は、意味付けされたタグによるデータの階層化や構造の自由な拡張性という特長を持ち、コンピュータでの処理に適している。構造化文書を格納し、且つ当該文書中の任意の構造を検索可能とするデータベースは構造化文書データベースと呼ばれる。また、構造化文書データベースを管理するシステムは構造化文書管理システムと呼ばれる。
構造化文書の代表として、XML(Extensible Markup Language)を使って記述された文書、つまりXML文書が挙げられる。XML文書を格納する構造化文書データベースはXMLデータベース(XMLDB)と呼ばれ、XMLデータベースを管理する構造化文書管理システムはXMLデータベース管理システム(XMLDB管理システム)と呼ばれる。
XML文書は木構造を構成する要素(ノード)からなる。ノードは要素名(タグ)と内容(値)とから構成される。木構造はその根となる要素(ルートノード)から始まり、各要素が親子兄弟の関係で構成される。このようなXML文書(構造化文書)の構造のために、当該XML文書内のある構造(あるノードを親とした構造)を1つのXML文書(細分化されたXML文書)として管理することができる。
このようなXML文書をXMLデータベースに格納して管理するために、XMLデータベース管理システムでは、コレクション及びシートと呼ばれる管理体系が用いられる。シートは一種のファイルであり、XML文書内のある構造(要素)を細分化されたXML文書としてそのままの形式で格納する。一方、コレクションは、ファイルシステムのフォルダ或いはディレクトリに相当し、複数のシート(XML文書)を分類して管理するための管理ブロック(構造化文書管理ブロック)として用いられる。
コレクションの下位には、当該コレクションとは別のコレクション、またはシートを作成(登録)することが可能である。つまりコレクションは、XML文書と同様に木構造で階層的に管理することが可能でる。これに対し、シートの下位には、コレクション及びシートのいずれも登録することはできない。コレクションの階層構造(木構造のコレクション)では、最上位のコレクションは1つだけであり、ルートコレクションと呼ばれる。このコレクションの階層構造において、コレクションは枝を持つ節にも枝を持たない節(葉)にもなり得るが、シートは枝を持たない節(葉)にしかならない。
このような管理体系におけるシートとコレクションとの関係は、書類とバインダの関係に喩えることができる。つまりシートとコレクションを用いた管理体系では、シート(書類)を種類別にコレクション(バインダ)に分類して管理する方法が適用される。
この管理体系では、上述のようにコレクションの階層的な定義を許すことで、コレクション、XML文書内ノードをシームレスにXPathと呼ばれるパス情報で表現することができる。換言するならば、XML文書をXMLデータベースに格納する場合、どの階層までをコレクションとし、どの階層以下を個々のXML文書(つまりシート)として登録するかは、ユーザが任意に決めることができる。
さて、XMLデータベースに格納されるXML文書を適切に管理する手法は、当該データベースに格納されるXML文書の種類によって異なる。XML文書の種類は、集合型XML文書と統合型XML文書とに分類される。
集合型XML文書は、予め定められたフォーマットに従って作成されたXML文書の集合を指す。集合型XML文書には、特許文献や従業員情報のような、規定のスキーマ構造を持ち、1文書のサイズが比較的小さなデータの集まりで構成されているXML文書が該当する。
集合型XML文書は、コレクションを使用しない管理方法(方法1)及びコレクションを使用する管理方法(方法2)のいずれかの方法で管理されるのが一般的である。方法1は、コレクションへの分類を行わずに、全てのXML文書を直接ルートコレクションに登録して管理する手法である。集合型XML文書は予め定められたフォーマットに従って作成されているためにXML文書毎の構造の違いを考慮する必要がないことから、このようなルートコレクション下での一括した管理が可能となる。
方法2は、集合型XML文書を体系的に管理するのに用いられる。方法2を適用する場合、XML文書の種類別にコレクションが作成される。各XML文書は文書の種類に対応するコレクションに登録して管理される。コレクションを使用する場合、目的の文書が登録されているコレクションを直接パスで指定できるため、高速検索が可能となる。
図3は集合型XML文書300の例を示し、図4は図3に示されるXML文書300の構造(XML構造)を示す。図3には、XML文書300の構造の理解を容易にするために、ノード(タグ)毎に当該ノードに至るルートノードからのパス(XPath)が記述されている。図3に示されるXML文書300の場合、例えば従業員ノード310に着目して、当該従業員ノード310を親ノードとすると、個人ノード320-1〜320-nは当該従業員ノード310の子ノードとなる。
図3の集合型XML文書300の場合、例えば、従業員ノード310をコレクション(従業員コレクション)として管理し、従業員ノード310の子ノードである個人ノード320-i(i=1〜n)毎に、当該個人ノード320-iから構成される構造の細分化されたXML文書420-iを従業員コレクション下のシートとして管理することが可能である。このXML文書420-iでは、個人ノード320-iを親ノードとすると、その子ノードは氏名ノード331-i、性別ノード332-i、社員番号ノード333-i及び所属ノード334-iとなる。また、所属ノード334-iを親ノードとすると、その子ノードは事業部名ノード341-i及びGr.名(グループ名)ノード342-iとなる。
また、個人ノード320-iを従業員コレクション下のコレクション(個人コレクション)として管理して、当該個人ノード320-iを親ノードとする子ノードである、氏名ノード331-i、性別ノード332-i、社員番号ノード333-i及び所属ノード334-iからそれぞれ構成される構造のXML文書431-i,432-i,433-i及び434-iを個人コレクション下のシートとして管理することも可能である。また、図3の集合型XML文書300全体を1つのXML文書410として管理することも可能である。
一方、統合型XML文書は、異なる種類のXML文書の集合を指す。統合型XML文書には、社内規定や法律の条文のような、XMLスキーマや文書型定義(Document Type Definition: DTD)によって文書のスタイルは決められていても、タグに指定する要素の内容までは規定されておらず、1文書のサイズが比較的大きいデータの集まりで構成されているXML文書が該当する。例えば、「部」「章」「節」「項」のフォーマットを指定するためのスキーマ構造であって、記載する内容に関する指定のないスキーマ構造のXML文書が該当する。
統合型XML文書には、コレクションとシートとに分割した管理方法(方法3)が適している。方法3では、XML文書の階層構造に合わせて、例えば最も頻繁に検索または更新が行われる単位にシートが作成される。その理由は、シート単位での検索はノード単位の検索よりも高速に実行され、更新時のロックはシート単位に実行されるためである。
特開2006−127235号公報
上述のように、従来の構造化文書管理システムでは、コレクションの階層的な定義を許すことで、コレクション、及びXML文書(構造化文書)内のノードをシームレスにパスで表現することができる。また、コレクションとシートとを組み合わせることによって、XMLデータベース(構造化文書データベース)におけるXML文書を当該XML文書の種類に適合するように効率的に管理することができる。
しかし、このような管理を可能とするためには、構造化文書管理システムを利用するクライアント(クライアント端末)は、構造化文書(XML文書)の登録時に、構造化文書としては同じ構造であっても、コレクションを使用するか否か、つまり登録先がコレクションであるか或いはシートであるかによって、当該構造化文書が細分化された構造化文書毎に構造化文書データベースに格納する方法を逐次構造化文書管理システムに指示する必要がある。
本発明は上記事情を考慮してなされたものでその目的は、コレクション(構造化文書管理ブロック)を使用するか否かによってクライアント側が細分化された構造化文書の格納方法を意識することなく、構造化文書を効率的にデータベースに格納することができる構造化文書管理システム及びプログラムを提供することにある。
本発明の1つの観点によれば、複数の要素を含む構造化文書が格納される構造化文書データベースを管理する構造化文書管理システムが提供される。このシステムは、構造化文書に含まれる要素を、当該構造化文書において当該要素の子要素をなす当該要素とは別の要素によって構成される細分化されたXML文書の集合を管理するための構造化文書管理ブロックとして登録することを示す要素定義情報を記憶する要素定義情報記憶手段と、前記データベース管理システムを利用するクライアントからの要素定義要求に応じ、当該要求によって指定される要素を前記構造化文書管理ブロックとして登録することを示す要素定義情報を前記要素定義情報記憶手段に設定する要素定義情報設定手段と、前記クライアントからの構造化文書の格納を指定する構造化文書格納要求に応じ、前記要素定義情報記憶手段から、当該要求によって指定される構造化文書に含まれている要素に対応する要素定義情報を検索する要素定義情報検索手段と、前記構造化文書格納要求によって指定された構造化文書を、前記要素定義情報検索手段による検索結果に基づいて、前記構造化文書管理ブロックと細分化されたXML文書とに分割して前記データベースに格納するための処理を行う格納処理手段とを具備する。
本発明によれば、クライアントから要素定義要求が与えられた場合、当該要求によって指定される要素を構造化文書管理ブロックとして登録することを示す要素定義情報を要素定義情報記憶手段に設定し、クライアントから構造化文書格納要求が与えられた場合、当該構造化文書格納要求によって指定された構造化文書が、当該構造化文書に含まれている要素に対応する要素定義情報が要素定義情報記憶手段から検索できたかに基づいて、構造化文書管理ブロックと細分化されたXML文書とに自動的に分割されてデータベースに格納される。これにより、クライアント側では、構造化文書管理ブロック(コレクション)を使用するか否かによって細分化された構造化文書の格納方法を意識することなく、構造化文書を効率的にデータベースに格納することができる。
以下、本発明の実施の形態につき図面を参照して説明する。
図1は本発明の一実施形態に係るクライアント−サーバシステムのハードウェア構成を示すブロック図である。クライアント−サーバシステムは、主として、XMLデータベースサーバ(XMLDBサーバ)10と、複数のクライアント端末(クライアント)とから構成される。複数のクライアント端末はクライアント端末20を含む。クライアント端末20上では、XMLDBサーバ10を利用するアプリケーション(アプリケーションプログラム)21が動作する。クライアント端末20を含む複数のクライアント端末は、ローカルエリアネットワーク(LAN)のようなネットワーク30を介してXMLDBサーバ10と接続されている。なお、図1では、クライアント端末20以外のクライアント端末は省略されている。
XMLDBサーバ10は、主メモリのようなメモリ11を有するコンピュータ(データベースサーバコンピュータ)である。XMLDBサーバ10は、ハードディスクドライブのような外部記憶装置40と接続されている。この外部記憶装置40は、XMLデータベース管理プログラム(XMLDB管理プログラム)41及びXMLデータベース(XMLDB)42を格納する。
XMLDB管理プログラム41は、XMLDBサーバ10によるXMLDB42の管理、及びクライアント端末からの検索要求に基づく検索処理に用いられる。XMLDB42は構造化文書としてのXML文書(XML形式の電子文書)を格納するデータベース(構造化文書データベース)である。XMLDB42に格納されているXML文書は検索の対象となる。
本実施形態では、XMLDBサーバ10によって構造化文書管理システムとしてのXMLデータベース管理システム(XMLDB管理システム)50が実現される。図2はXMLDB管理システム50の主として機能構成を示すブロック図である。XMLDB管理システム50は、登録パス情報テーブル(以下、RPTと称する)51、登録パス情報テーブル操作部(以下、RPT操作部と称する)52、格納処理部53、検索処理部54、要求処理部55及びXMLデータベース操作部(XMLDB操作部)56を含む。
RPT51は、任意のパス毎に登録パス情報を保持する。登録パス情報は、パス情報(構造情報)及び登録種別情報の組を含む。パス情報は例えばXPathであり、XML文書内のノードの階層構造を表す構造情報である。登録種別情報は、当該登録種別情報と組をなすパス情報で特定されるノード(要素)をコレクション(構造化文書管理ブロック)として登録するか、当該ノード(要素)をシートとして登録するかを示すフラグ情報である。RPT51は例えばメモリ11内に割り当てられた記憶領域に格納される。
RPT操作部52は、RPT51を対象とする各種の操作を行う。RPT操作部52は、登録パス情報定義部521及び登録パス情報検索部522を含む。登録パス情報定義部521は、例えばクライアント端末20からの登録パス情報定義要求に応じて要求されたパスで特定されるノード(要素)をコレクションとするかを定義する登録パス情報(要素定義情報)をRPT51に設定する登録パス情報定義操作(要素定義情報設定操作)を行う。登録パス情報検索部522は、例えばクライアント端末20または格納処理部53からの登録パス情報検索要求に応じて、要求されたパスに関する登録パス情報(要素定義情報)をRPT51から検索する登録パス情報検索操作(要素定義情報検索操作)を行う。RPT操作部52は更に、例えばクライアント端末20からの登録パス情報削除要求に応じて、要求された登録パス情報をRPT51から削除するための登録パス情報削除操作を行う登録パス情報削除操作部(図示せず)を含む。
格納処理部53は、クライアント端末20からのXML文書格納要求に応じてXMLDB42にXML文書を格納するための格納処理を行う。格納処理部53は格納処理に際し、要求されたXML文書の各要素の格納形式をRPT操作部52に問い合わせる。格納処理部53は、RPT操作部52への問い合わせに対して当該RPT操作部52から通知された格納形式に従ってXML文書内の要素をXMLDB42に格納する。
検索処理部54は、クライアント端末20からの検索要求(問い合わせ)に応じて、当該検索要求(問い合わせ)で指定された検索条件に合致するXML文書をXMLDB42から検索する。要求処理部55は、クライアント端末20からの各種の要求(コマンド)を解釈し、当該要求をRPT操作部52、格納処理部53または検索処理部54に送出する。XMLDB操作部56は、格納処理部53及び検索処理部54がXMLDB42にアクセスするのを可能とするインタフェースとして機能する。
本実施形態において、RPT操作部52、格納処理部53、検索処理部54、要求処理部55及びXMLDB操作部56は、図1のXMLDBサーバ10が外部記憶装置40に格納されているXMLDB管理プログラム41を当該サーバ10内のメモリ11に読み込んで実行することにより実現されるものとする。このプログラム41は、コンパクトディスク、或いはROMのような、コンピュータ読み取り可能な記憶媒体に予め格納して頒布可能である。また、このプログラム41が、ネットワーク30を介してXMLDBサーバ10にダウンロードされても構わない。
図3は、本実施形態においてXMLDB42に格納されるXML文書(集合型XML文書)300の一例を示し、図4は図3に示されるXML文書300の構造(XML構造)を示す。図3には、XML文書300の構造の理解を容易にするために、ノード(タグ)毎にXPathが記述されている。XPathは、ノードの構造を表す(特定する)のに用いられる当該ノードに至るルートノードからのパスを表す構造情報である。
図3のXML文書300は、XPath「/従業員」で表される従業員ノード310を含む。また図3のXML文書は、従業員ノード310の下位に、XPath「/従業員/個人」で表される複数(n個)の個人ノード320-1〜320-nを含む。
また図3のXML文書300は、各個人ノード320-i(i=1〜n)の下位に、XPath「/従業員/個人/氏名」「/従業員/個人/性別」「/従業員/個人/社員番号」及び「/従業員/個人/所属」でそれぞれ表される氏名ノード331-i、性別ノード332-i、社員番号ノード333-i及び所属ノード334-iを含む。また図3のXML文書300は、各所属ノード334-iの下位に、XPath「/従業員/個人/所属/事業部名」及び「/従業員/個人/所属/Gr.名」でそれぞれ表される事業部名ノード341-i及びGr.名(グループ名)ノード342-iを含む。
但し、図3及び図4には、個人ノード320-1(i=1)の子ノードである、氏名ノード331-1、性別ノード332-1、社員番号ノード333-1及び所属ノード334-1だけが示されている。同様に図3及び図4には、所属ノード334-1(i=1)の子ノードである、事業部名ノード341-1及びGr.名(グループ名)ノード342-1だけが示されている。
図3のXML文書300の例では、図4のXML構造からも明らかなように、当該XML文書300全体、つまり従業員ノード310(以下の全ノード)を、1つのXML文書410として管理することができる。また、従業員ノード310を親ノードとすると、その子ノードである個人ノード320-i毎に、当該個人ノード320-i(以下の全ノード)を1つのXML文書420-iとして管理することもできる。つまり、個人ノード320-iを親ノードとし、氏名ノード331-i、性別ノード332-i、社員番号ノード333-i及び所属ノード334-iの各ノードを当該個人ノード320-iの子ノードとする1つのXML文書420-iとして管理することもできる。同様に、氏名ノード331-i、性別ノード332-i、社員番号ノード333-i及び所属ノード334-i(以下の全ノード)をそれぞれ1つのXML文書431-i,432-i,433-i及び434-iとして管理することもできる。但し、XML文書431-i,432-i及び433-iは、それぞれ氏名ノード331-i、性別ノード332-i及び社員番号ノード333-iのみから構成される。
そこで、従業員ノード310をコレクション(構造化文書管理ブロック)として登録すると共に、従業員ノード310の子ノードである個人ノード320-1〜320-nをそれぞれ1つのXML文書420-1〜420-nとして当該コレクション下のシートに登録して管理することも可能である。
また、従業員ノード310をコレクション(第1のコレクション)として登録すると共に、従業員ノード310の子ノードである個人ノード320-1〜320-nを第1のコレクション下の別のコレクション(第2のコレクション)として登録し、各個人ノード320-iの子ノードである氏名ノード331-i、性別ノード332-i、社員番号ノード333-i及び所属ノード334-iをそれぞれ1つのXML文書431-i,432-i,433-i及び434-iとして第2のコレクション下のシートに登録することもできる。
次に、本実施形態の動作について説明する。
まず、図3に示されるXML文書300を対象とするクライアント端末20側の文書格納処理について、コレクションを使用する場合を例に、図5のフローチャートを参照して説明する。
本実施形態では、従業員ノード310をコレクション(従業員コレクション)とし、個人ノード320-1〜320-n以下をそれぞれ1つのXML文書420-1〜420-n(シート)としてXMLDB42に格納するものとする。この場合、クライアント端末20は、アプリケーション21に従って、以下に述べる文書格納処理を実行する。
まずクライアント端末20は、目的のコレクション(ここでは従業員コレクション)をXMLDB管理システム50によって作成させるためのコレクション作成処理を実行する(ステップS1)。このコレクション作成処理においてクライアント端末20は、XML文書420-1〜420-nをシートとして管理(格納)するのに用いられる従業員コレクションの作成要求を、XMLDB管理システム50(XMLDBサーバ10)に対してネットワーク30を介して発行する。
クライアント端末20からの従業員コレクションの作成要求に対して、後述するようにXMLDB管理システム50の格納処理部53(XMLDB操作部56)によって従業員コレクションが正常に作成された場合、当該XMLDB管理システム50の要求処理部55からクライアント端末20に正常応答が通知される。するとクライアント端末20は、所望の登録パス情報(例えば作成されたコレクションに対応する登録バス情報)をXMLDB管理システム50によって定義(設定)させるための処理(登録パス情報定義処理)を実行する(ステップS2)。この登録パス情報定義処理においてクライアント端末20は、XMLDB管理システム50に対して目的のパスに関する登録パス情報の定義要求(登録パス情報定義要求)を発行する。前述したように、登録パス情報はパス情報及び登録種別情報の組を含む。ここでは、パス情報としてXPath「/従業員/個人」が用いられ、登録種別情報として「コレクション」を指定する情報が用いられる。
クライアント端末20からの登録パス情報定義要求に対して、後述するようにXMLDB管理システム50のRPT操作部52によって登録パス情報定義が正常になされた場合、要求処理部55からクライアント端末20に正常応答が通知される。するとクライアント端末20は、目的のXML文書(ここではXML文書300)をXMLDB管理システム50によってXMLDB42に格納させるための処理(格納処理)を実行する(ステップS3)。この格納処理においてクライアント端末20は、XML文書300を対象とする格納要求(XML文書格納要求)をXMLDB管理システム50に対して発行する。
次に、図5のフローチャートで示されるクライアント端末20側の処理に対応してXMLDB管理システム50で実行される処理について、図6のフローチャートを参照して説明する。
クライアント端末20からXMLDB管理システム50に対して発行された要求は、当該システム50の要求処理部55によって受け付けられる。要求処理部55は、クライアント端末20からの要求を受け付けると、当該要求の種別を判別する(ステップS11)。
もし、クライアント端末20からの要求がコレクション作成要求(ここでは、従業員コレクションの作成要求)の場合(ステップS11)、要求処理部55は、格納処理部53に当該コレクション作成要求を送出する。すると格納処理部53は、XMLDB操作部56にコレクション作成要求を送出する。XMLDB操作部56は、この要求を受け取るとコレクション(構造化文書管理ブロック)作成手段として機能して、要求されたコレクション(ここでは、従業員コレクション)をXMLDB42内に作成する(ステップS12)。
XMLDB操作部56は、コレクション作成が正常に行われた場合、格納処理部53に正常である旨の応答を通知する。一方、コレクション作成が正常に行われなかった場合、XMLDB操作部56は格納処理部53に不正要求である旨の応答を通知する。格納処理部53は、XMLDB操作部56からの応答を要求処理部55に通知する。要求処理部55は、格納処理部53からの応答をクライアント端末20に通知する。
次に、クライアント端末20からの要求が登録パス情報定義要求の場合(ステップS11)、要求処理部55は、RPT操作部52に当該登録パス情報定義要求を送出する。するとRPT操作部52内の登録パス情報検索部522は、要求されたパスに関する登録パス情報がRPT51に存在するかを調べる(ステップS13)。
もし、要求されたパスに関する登録パス情報が存在しないならば(ステップS13)、RPT操作部52内の登録パス情報定義部521は登録パス情報定義処理を実行して、RPT51に新たな登録パス情報を追加する(ステップS14)。ここでは、登録パス情報のパス情報にXPath「/従業員」が用いられ、登録パス情報の登録種別情報に「コレクション」を指定する情報が用いられる。RPT操作部52は、登録パス情報がRPT51に追加されると、登録パス情報定義処理が正常に行われた旨の応答を要求処理部55に通知する。
これに対し、要求されたパスに関する登録パス情報が既にRPT51に存在するならば(ステップS13)、RPT操作部52は不正要求である旨の応答を要求処理部55に通知する。
要求処理部55は、登録パス情報定義要求に対するRPT操作部52からの応答をクライアント端末20に通知する。
次に、クライアント端末20からの要求が文書格納要求の場合(ステップS11)、要求処理部55は当該文書格納要求を格納処理部53に送出する。すると格納処理部53は、要求されたXML文書(ここでは、図3に示されるXML文書300)の整合性をチェックする(ステップS15)。この整合性チェックはXML文書をXMLDB42に格納する際に通常に行われている。このため整合性チェックの手法については説明を省略する。
格納処理部53は、整合性チェックの結果が正常であるならば(ステップS15)、要求されたXML文書を、RPT51に保持されている登録パス情報定義に従って、コレクションとシート(細分化されXML文書)とに分割してXMLDB42に格納するためのXML文書分割格納処理を実行する(ステップS16)。このXML文書分割格納処理の詳細については後述する。
さて本実施形態では、クライアント端末20は、例えば登録パス情報定義要求を発行する前に、目的のパスに関する登録パス情報が既にRPT51に存在するかを問い合わせるための登録パス情報検索要求を、XMLDB管理システム50に発行することができる。登録パス情報検索要求はパス情報を含む。
要求処理部55は、クライアント端末20からXMLDB管理システム50に発行された要求が登録パス情報検索要求の場合(ステップS11)、当該登録パス情報検索要求をRPT操作部52に送出する。するとRPT操作部52内の登録パス情報検索部522は、要求されたパスをパス情報として含む登録パス情報をRPT51から検索するための登録パス情報検索処理を実行する(ステップS17)。
要求された登録パス情報が検索できた場合、RPT操作部52は当該登録パス情報を登録パス情報検索要求に対する応答として要求処理部55に通知する。これに対し、要求された登録パス情報が検索できなかった場合、RPT操作部52は当該登録パス情報が存在しない旨の応答を要求処理部55に通知する。要求処理部55は、RPT操作部52からの応答をクライアント端末20に通知する。クライアント端末20は、この通知内容、つまり登録パス情報検索結果を表示画面を介してユーザに通知することとにより、例えば検索された登録パス情報を削除する必要があるかの指示をユーザに入力させる。もし、登録パス情報の削除がユーザによって指示された場合、クライアント端末20は登録パス情報削除要求をXMLDB管理システム50に発行する。この場合、要求された登録パス情報が、RPT操作部52内の図示せぬ登録パス情報削除操作部によってRPT51から削除される。なお、登録パス情報検索要求は、XML文書分割格納処理において、後述するように格納処理部53によっても発行される。
次に、XML文書分割格納処理(ステップS16)の詳細について、図7のフローチャートを参照して説明する。
格納処理部53はXML文書分割格納処理の最初で、RPT操作部52(内の登録パス情報検索部522)により登録パス情報検索処理を行わせる(ステップS21)。即ち格納処理部53は、要求されたXML文書(XML文書300)の構造を解析して、当該XML文書のルート(根)となるノード(つまり最上位の階層のノード)を特定するパス情報を含む登録パス情報の検索要求(登録パス情報検索要求)をRPT操作部52に発行する。
RPT操作部52内の登録パス情報検索部522は、格納処理部53から登録パス情報検索要求を受け取ると、要求されたノードを特定するパス情報を含む登録パス情報(つまり要求されたパスに関する登録パス情報)をRPT51から検索するための処理を実行する。登録パス情報検索部522は、この処理の結果に基づき、要求されたパスに関する登録パス情報がRPT51に存在するかを判定する(ステップS22)。もし、要求されたパスに関する登録パス情報がRPT51に存在しない場合、RPT操作部52は、その旨の応答を格納処理部53に通知する。
もし、要求されたパスに関する登録パス情報がRPT51に存在する場合、登録パス情報検索部522は、当該登録パス情報中の登録種別情報によってコレクションが指定されているかを判定する(ステップS23)。そしてRPT操作部52は、要求されたパスに関する登録パス情報が存在する旨と、当該登録パス情報によるコレクションの指定の有無とを格納処理部53に通知する。
格納処理部53は、RPT操作部52から、要求されたパスに関する登録パス情報が存在し、且つコレクションが指定されていることが通知された場合(ステップS23)、要求されたXML文書から、登録パス情報検索の対象となったパス(ここではルートノード)を親ノードとする子ノードをXMLDB42に格納されるべき細分化されたXML文書として取り出す(ステップS24)。この取り出されたXML文書を、クライアント端末20から要求されたXML文書と区別するために、XML文書’のように表現する。
格納処理部53は、ステップS24でXML文書’が取り出される都度、当該XML文書’をXMLDB42への格納が要求されたXML文書’として、当該XML文書’を対象とする文書格納要求を、当該格納処理部53自身に対して(再帰的に)発行する。これにより、XML文書’を対象とするXML文書分割格納処理(ステップS25)が(再帰的に)実行される。このXML文書分割格納処理では、後述するようにXMLDB42にXML文書を格納する処理が行われる。
もし、XML文書’を対象とするXML文書分割格納処理(ステップS25)が正常に行われて、且つ同一のパスを親ノードとする子ノードの中に未処理の子ノードが存在するならば(ステップS26)、その子ノードについて、ステップS24及び25の処理が行われる。つまり、同一のパスを親ノードとする全ての子ノードについて、ステップS24及び25の処理が繰り返される。
一方、要求されたパスに関する登録パス情報が存在しない場合(ステップS22)、或いは当該登録パス情報は存在しても、コレクションが指定されていない場合(ステップS23)、格納処理部53は、要求されたパスで特定されるノードをXML文書’として、XMLDB42内に作成されている、当該ノードの親ノードに対応するコレクションに格納させるためのXML文書格納要求をXMLDB操作部56に発行する。XMLDB操作部56は、格納処理部53からのXML文書格納要求を受けて、要求されたXML文書’をXMLDB42内の指定されたコレクションに格納する(ステップS27)。
XMLDB操作部56は、XML文書格納処理が正常に行われた場合、格納処理部53に正常である旨の応答を通知する。これに対してXML文書格納処理が正常に行われなかった場合、XMLDB操作部56は格納処理部53に不正要求である旨の応答を通知する。格納処理部53は、当該格納処理部53自身の処理の結果及びXMLDB操作部56からの応答に基づき、クライアント端末20に対して応答を返す。
次に、図7のフローチャートに従うXML文書分割格納処理の具体例について説明する。本実施形態において、クライアント端末20から要求されたXML文書は、図3に示されるXML文書300である。また、RPT51には、当該XML文書300のルートノードである従業員ノード310を特定するパス情報「/従業員」と「コレクション」を指定する要求種別情報の組を含む登録パス情報が存在する。
この場合、XML文書300を対象とする文書格納要求に対しては、当該XML文書300のルートノードが従業員ノード310であることから、ステップS21〜S23を経て従業員ノード310を親ノードとする子ノードの全て、即ち個人ノード320-1〜320-nがXML文書420-1〜420-nとして順次取り出される(ステップS24)。
ここで、個人ノード(個人要素)320-1がXML文書420-1として取り出されたものとする。すると、XML文書420-1を対象とする文書格納要求が、格納処理部53により当該格納処理部53自身に対して発行される。これにより、XML文書300に対するのと同様の処理がXML文書420-1に対しても行われる。
ここで、XML文書420-1のルートノード(最上位のノード)である個人ノード320-1を特定するパス情報「/従業員/個人」を含む登録パス情報はRPT51に存在しないか、或いは存在しても「コレクション」を指定していないものとする。この場合、XML文書420-1に関し、再帰的に行われるXML文書分割格納処理(ステップS25)の中で、ステップS27に相当する処理が次のように行われる。まず、XML文書420-1のルートノードである個人ノード320-1の親ノードは、元のXML文書300のルートノードである従業員ノード310である。この従業員ノード310は、XMLDB42内にコレクション(従業員コレクション)として登録されている。そこで、ステップS27に相当する処理では、XML文書420-1がXMLDB42内の従業員コレクションに格納される。同様に、残りの個人ノード320-2〜320-nについても、それぞれXML文書420-2〜420-nとして、再帰的に行われるXML文書分割格納処理の中で、XMLDB42内の従業員コレクションに順次格納される。
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。例えば、上記実施形態では、構造化文書としてXML文書を例にとって説明したが、これに限るものではない。本発明は、例えば、SGML(Standard Generalized Markup Language)文書のようなXML文書以外の構造化文書にも同様に適用できる。
また、上記実施形態では、RPT51はメモリ11内に割り当てられた記憶領域に格納される。しかし、RPT51がXMLDB管理システム50の再立ち上げ後も再利用可能なように、当該RPT51の内容が適宜(例えばXMLDB管理システム50がレディ状態にある期間に)外部記憶装置40の例えば所定領域(RPT保存領域)に保存される構成とすると良い。この場合、XMLDB管理システム50の再立ち上げ(初期化)時に、外部記憶装置40のPRT保存領域に保存されている情報をRPT51としてメモリ11にロードすれば良い。
また、上記実施形態では、登録パス情報(要素定義情報)が、パス情報に加えて登録種別情報を含んでいる。しかし、登録パス情報が、パス情報で特定されるノード(要素)をコレクション(構造化文書管理ブロック)として登録することを常に指定するものとするならば、必ずしも登録種別情報を含む必要はない。
また、上記実施形態では、クライアント端末20がネットワーク30を介してXMLDB管理システム50のXMLDBサーバ10に接続されている。しかし、クライアント端末20が直接にXMLDB管理システム50のXMLDBサーバ10に接続されていても構わない。また、クライアント端末20上で動作するのと同様のアプリケーションがXMLDBサーバ10上で動作する構成とすることにより、当該XMLDBサーバ10が有するキーボード、ディスプレイ等をクライアント端末20のように用いても、つまりXMLDBサーバ10をクライアント端末に兼用しても構わない。
また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除しても良い。
本発明の一実施形態に係るクライアント−サーバシステムのハードウェア構成を示すブロック図。 図1に示されるXMLDB管理システム(XMLデータベース管理システム)の主として機能構成を示すブロック図。 XMLDB(XMLデータベース)に格納されるXML文書の一例を示す図。 図3に示されるXML文書の構造を示す図。 同実施形態で適用されるクライアント端末側の文書格納処理の手順を示すフローチャート。 図5のフローチャートで示されるクライアント端末側の処理に対応してXMLDB管理システムで実行される処理の手順を示すフローチャート。 図6のフローチャートに含まれているXML文書分割格納処理の手順を示すフローチャート。
符号の説明
10…XMLDBサーバ(XMLデータベースサーバ)、20…クライアント端末、40…外部記憶装置、41…XMLDB管理プログラム(XMLデータベース管理プログラム)、42…XMLDB(XMLデータベース)、50…XMLDB管理システム(XMLデータベース管理システム、構造化文書管理システム)、51…RPT(登録パス情報テーブル、要素定義情報記憶手段)、52…RPT操作部(登録パス情報テーブル操作部)、53…格納処理部、54…検索処理部、55…要求処理部、56…XMLDB操作部(XMLデータベース操作部、構造化文書管理ブロック作成手段)、521…登録パス情報定義部(要素定義情報設定手段)、522…登録パス情報検索部(要素定義情報検索手段)。

Claims (4)

  1. 複数の要素を含む構造化文書が格納される構造化文書データベースを管理する構造化文書管理システムにおいて、
    構造化文書に含まれる要素を、当該構造化文書において当該要素の子要素をなす当該要素とは別の要素によって構成される細分化された構造化文書の集合を管理するための構造化文書管理ブロックとして登録することを示す要素定義情報であって、前記構造化文書管理ブロックとして登録される要素を含む構造化文書における当該要素へのパスを表すパス情報を含む要素定義情報を記憶する要素定義情報記憶手段と、
    クライアントからの要素定義要求に応じ、当該要求によって指定される要素を前記構造化文書管理ブロックとして登録することを示す要素定義情報を前記要素定義情報記憶手段に設定する要素定義情報設定手段と、
    前記クライアントからの構造化文書の格納を指定する構造化文書格納要求に応じ、前記要素定義情報記憶手段から、当該要求によって指定される構造化文書に含まれている要素に対応する要素定義情報を検索する要素定義情報検索手段と、
    前記構造化文書格納要求によって指定された構造化文書を、前記要素定義情報検索手段による検索結果に基づいて、前記構造化文書管理ブロックと細分化された構造化文書とに分割して前記データベースに格納するための構造化文書分割格納処理を行う格納処理手段と
    を具備し、
    前記格納処理手段は、前記構造化文書格納要求によって指定された構造化文書の根となる要素に対応する要素定義情報の検索を前記要素定義情報検索手段によって行わせ、前記要素定義情報検索手段によって前記要素定義情報が検索された場合、前記構造化文書格納要求によって指定された構造化文書から当該要素定義情報に対応する要素の子要素を細分化された構造化文書として順次取り出して、当該取り出された構造化文書の格納を指定する構造化文書格納要求を前記格納処理手段自身に対して与える動作を繰り返すことにより、前記構造化文書分割格納処理を再帰的に行う
    ことを特徴とする構造化文書管理システム。
  2. 前記クライアントからの構造化文書管理ブロック作成要求に応じ、当該要求によって指定される構造化文書管理ブロックを前記データベース内に作成する構造化文書管理ブロック作成手段を更に具備することを特徴とする請求項記載の構造化文書データベースシステム。
  3. 前記格納処理手段は、前記構造化文書格納要求によって指定された構造化文書の根となる要素に対応する要素定義情報が検索されなかった場合、当該指定された構造化文書を、前記データベース内に作成されている、当該指定された構造化文書の根となる要素の親要素に対応する前記構造化文書管理ブロックに格納するための処理を行うことを特徴とする請求項記載の構造化文書データベースシステム。
  4. 複数の要素を含む構造化文書が格納される構造化文書データベースを管理するデータベースサーバコンピュータであって、構造化文書に含まれる要素を、当該構造化文書において当該要素の子要素をなす当該要素とは別の要素によって構成される細分化された構造化文書の集合を管理するための構造化文書管理ブロックとして登録することを示す要素定義情報であって、前記構造化文書管理ブロックとして登録される要素を含む構造化文書における当該要素へのパスを表すパス情報を含む要素定義情報が記憶される要素定義情報記憶手段と、要素定義情報設定手段と、要素定義情報検索手段と、格納処理手段とを備えたデータベースサーバコンピュータに、
    クライアントからの要素定義要求に応じ、当該要求によって指定される要素を前記構造化文書管理ブロックとして登録することを示す要素定義情報を、前記要素定義情報設定手段が前記要素定義情報記憶手段に設定するステップと、
    前記クライアントからの構造化文書の格納を指定する構造化文書格納要求に応じ、前記要素定義情報検索手段が、前記要素定義情報記憶手段から、当該要求によって指定される構造化文書に含まれている要素に対応する要素定義情報を検索するステップと、
    前記構造化文書格納要求によって指定された構造化文書を、前記検索するステップでの検索結果に基づいて、前記構造化文書管理ブロックと細分化された構造化文書とに分割して前記データベースに格納するための構造化文書分割格納処理を前記格納処理手段が行うステップであって、前記構造化文書格納要求によって指定された構造化文書の根となる要素に対応する要素定義情報の検索を前記要素定義情報検索手段によって行わせ、前記要素定義情報検索手段によって前記要素定義情報が検索された場合、前記構造化文書格納要求によって指定された構造化文書から当該要素定義情報に対応する要素の子要素を細分化された構造化文書として順次取り出して、当該取り出された構造化文書の格納を指定する構造化文書格納要求を前記格納処理手段自身に対して与える動作を繰り返すことにより、前記構造化文書分割格納処理を再帰的に行うステップ
    を実行させるためのプログラム。
JP2007030891A 2007-02-09 2007-02-09 構造化文書管理システム及びプログラム Expired - Fee Related JP4461151B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007030891A JP4461151B2 (ja) 2007-02-09 2007-02-09 構造化文書管理システム及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007030891A JP4461151B2 (ja) 2007-02-09 2007-02-09 構造化文書管理システム及びプログラム

Publications (2)

Publication Number Publication Date
JP2008197816A JP2008197816A (ja) 2008-08-28
JP4461151B2 true JP4461151B2 (ja) 2010-05-12

Family

ID=39756714

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007030891A Expired - Fee Related JP4461151B2 (ja) 2007-02-09 2007-02-09 構造化文書管理システム及びプログラム

Country Status (1)

Country Link
JP (1) JP4461151B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011089807A1 (ja) * 2010-01-21 2011-07-28 日本電気株式会社 データ情報管理装置、データ情報管理システム及び、データ情報管理方法

Also Published As

Publication number Publication date
JP2008197816A (ja) 2008-08-28

Similar Documents

Publication Publication Date Title
JP4445509B2 (ja) 構造化文書検索システム及びプログラム
US7769768B2 (en) Methods, apparatus and computer programs for visualization and management of data organization within a data processing system
RU2348973C2 (ru) Способы развертывания и свертывания для обеспечения управления свойствами файлов между системами объектов
JP4907936B2 (ja) ウェブベースのデータフォーム
KR101344101B1 (ko) 서버 파일을 서버 파일의 로컬 저장된 카피에 매핑하기위한 방법 및 컴퓨터 판독가능 매체
JP4141556B2 (ja) 構造化文書管理方法及びその実施装置並びにその処理プログラムを記録した媒体
JP4174032B2 (ja) 設定装置、設定方法、プログラム、及び記録媒体
US7627583B2 (en) Methods, apparatus and computer programs for visualization and management of data organisation within a data processing system
US8584009B2 (en) Automatically propagating changes in document access rights for subordinate document components to superordinate document components
US20050246386A1 (en) Hierarchical storage management
JP2011065546A (ja) ファイル検索システム及びプログラム
JP4110154B2 (ja) 情報処理装置、情報処理装置の制御方法、コンピュータプログラム、記憶媒体
WO2004061713A1 (ja) 構造化文書の構造変換装置、構造変換方法、記録媒体
US9652456B2 (en) Automated relationship management for darwin information typing architecture
US20110107198A1 (en) Information processing apparatus, storage medium, and information processing method
US7647588B2 (en) Smart archive for JAR files
JP6015546B2 (ja) 情報処理装置、情報処理方法、プログラム
US20110078552A1 (en) Transclusion Process
JP4461151B2 (ja) 構造化文書管理システム及びプログラム
US20140025691A1 (en) Method and apparatus for dynamic filtering of an object graph in a content repository
JP4199916B2 (ja) 文書管理方法および装置
JP3493354B2 (ja) 文書検索方法
US20130060778A1 (en) Device, method, and program for displaying document list
JP5906810B2 (ja) 全文検索装置、プログラム及び記録媒体
JPH10133934A (ja) 分散型文書管理システムおよびそれを実現するプログラム記憶媒体

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091001

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091006

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091207

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: 20100119

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: 20100215

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: 20130219

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140219

Year of fee payment: 4

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