(57)【要約】【課題】構造化文書データベースに登録される構造化文書に一意の番号を簡単に且つ効率的に割り当てることができるようにする。【解決手段】ＤＢサーバ２０の発番管理部２３は、番号の発行と発行された番号の埋め込みとを指定する特定のノードを含む構造化文書を構造化文書ＤＢ１０に登録することがクライアント端末４０から要求された場合、登録されるべき構造化文書に含まれている特定のノードの指定に基づいて一意の番号を発行する。ドキュメント管理部２４は、登録されるべき構造化文書に含まれている特定のノードを発番管理部２３によって発行された番号に置き換えて、この置き換えられた番号を含む構造化文書を構造化文書ＤＢ１０に登録する。【選択図】      図１
2007172341.tif 000002
【特許請求の範囲】
【請求項１】
構造化文書を格納する構造化文書データベースを有する構造化文書管理システムにおいて、
番号の発行と発行された番号の埋め込みとを指定する特定のノードを含む構造化文書を前記データベースに登録することがクライアント端末から要求された場合、前記登録されるべき構造化文書に含まれている前記特定のノードの指定に基づいて一意の番号を発行する発番管理手段と、
前記登録されるべき構造化文書に含まれている前記特定のノードを前記発番管理手段によって発行された番号に置き換えて、この置き換えられた番号を含む構造化文書を前記データベースに登録するドキュメント管理手段と
を具備することを特徴とする構造化文書管理システム。
【請求項２】
前記ドキュメント管理手段は、前記データベースに構造化文書を登録することを要求するためのクライアント端末からの文書登録要求に応じて、前記登録されるべき構造化文書に前記特定のノードが含まれているかを判定する判定手段と、前記特定のノードが含まれている場合、当該特定のノードの指定に基づく番号の発行を前記発番管理手段に要求する発番要求手段とを含み、
前記発番管理手段は、前記発番要求手段によって要求された番号を発行する発番手段と、前記発番手段によって発行された番号を前記ドキュメント管理手段に通知する番号通知手段とを含む
ことを特徴とする請求項１記載の構造化文書管理システム。
【請求項３】
前記特定のノードは、発行された番号が埋め込まれるノードのタイプを指定するタイプ指定記述を含み、
前記ドキュメント管理手段は、前記特定のノードを、前記発番管理手段の前記番号通知手段によって通知された番号が埋め込まれた前記タイプ指定記述によって指定されたタイプのノードに置き換える置換手段を含む
ことを特徴とする請求項２記載の構造化文書管理システム。
【請求項４】
一意の番号を発行するための発番規則を有する発番管理台帳を格納する記憶手段を更に具備し、
前記特定のノードは、任意の発番管理台帳を指定する台帳指定記述を含み、
前記発番手段は、前記発番要求手段からの要求に応じ、前記特定のノードに含まれている前記台帳指定記述で指定された前記記憶手段に格納されている発番管理台帳に基づいて一意の番号を発行する
ことを特徴とする請求項２記載の構造化文書管理システム。
【請求項５】
前記発番管理手段は、前記クライアント端末から新規に発番管理台帳を生成することが要求された場合、要求された発番管理台帳を生成して当該生成された発番管理台帳を前記記憶手段に格納する発番管理台帳生成手段を含むことを特徴とする請求項４記載の構造化文書管理システム。
【請求項６】
実行中のトランザクション毎に、そのトランザクション内で最も最近に発行された番号をカレント番号として保存するための記憶手段を更に具備し、
前記発番管理手段は、前記クライアント端末によるトランザクションの実行中に当該クライアント端末からの要求に応じて前記発番手段によって番号が発行された場合、当該発行された番号をカレント番号として、該当する前記トランザクションに対応付けて前記記憶手段に保存する発行番号保存処理手段と、前記クライアント端末によって登録が要求された前記構造化文書の前記特定のノードにカレント番号を指定するカレント番号指定記述が含まれている場合、当該クライアント端末によって実行中のトランザクションに対応付けて前記記憶手段に保存されている番号を前記発番手段に代わって取得する番号取得手段とを含み、
前記番号通知手段は、前記番号取得手段によって番号が取得された場合、当該取得された番号を前記ドキュメント管理手段に通知する
ことを特徴とする請求項２記載の構造化文書管理システム。
【請求項７】
構造化文書を格納する構造化文書データベースを有する構造化文書管理システムに適用される構造化文書管理プログラムであって、
コンピュータに、
前記データベースに構造化文書を登録することがクライアント端末から要求された場合、前記登録されるべき構造化文書に番号の発行と発行された番号の埋め込みとを指定する特定のノードが含まれているかを判定するステップと、
前記登録されるべき構造化文書に前記特定のノードが含まれている場合、当該特定のノードの指定に基づいて一意の番号を発行するステップと、
前記登録されるべき構造化文書に含まれている前記特定のノードを前記発行された番号に置き換えるステップと、
前記置き換えられた番号を含む構造化文書を前記データベースに登録するステップと
を実行させるための構造化文書管理プログラム。
【請求項８】
前記特定のノードは、発行された番号が埋め込まれるノードのタイプを指定するタイプ指定記述を含み、
前記置き換えるステップでは、前記特定のノードが、前記発行された番号が埋め込まれた前記タイプ指定記述によって指定されたタイプのノードに置き換えられる
ことを特徴とする請求項７記載の構造化文書管理プログラム。
【請求項９】
前記特定のノードは、一意の番号を発行するための発番規則を有する発番管理台帳を指定する台帳指定記述を含み、
前記番号を発行するステップでは、前記特定のノードに含まれている前記台帳指定記述で指定された発番管理台帳に基づいて番号が発行される
ことを特徴とする請求項７記載の構造化文書管理プログラム。
【請求項１０】
前記コンピュータに実行させるための、
前記クライアント端末からの要求に応じて発行された番号をカレント番号として、当該クライアント端末によって実行中のトランザクションに対応付けて記憶手段に保存するステップと、
前記クライアント端末によって登録が要求された前記構造化文書の前記特定のノードにカレント番号を指定するカレント番号指定記述が含まれている場合、当該クライアント端末によって実行中のトランザクションに対応付けて前記記憶手段に保存されている番号を取得するステップとを更に具備し、
前記置き換えるステップでは、前記特定のノードに前記カレント番号指定記述が含まれている場合、当該特定のノードが前記取得された番号に置き換えられる
ことを特徴とする請求項７記載の構造化文書管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、構造化文書を格納する構造化文書データベースを有する構造化文書管理システム及び同システムに適用される構造化文書管理プログラムに関する。
【背景技術】
【０００２】
一般にリレーショナルデータベース（ＲＤＢ）システムでは、ＲＤＢサーバにデータの検索、登録、更新等を要求するためのＳＱＬと呼ばれる構造化問い合わせ言語（Structured Query Language）が用いられる。ＲＤＢシステムではまた、ＲＤＢに登録されるテーブルの構造が定義される。ここでは、例えば各ＲＤＢベンダが提供するＳＱＬの拡張機能により、テーブルの特定の列に、識別子（ＩＤ）として用いられる番号（例えばシリアル番号）を自動発行（自動発番）するかを予め定義できる。つまり、テーブルの特定の列に自動発番の属性を付与できる。このため、ＳＱＬ文を用いてテーブルにデータ（タプル）を登録（挿入）する際に、上記特定の列の名前（つまり列名）を指定するだけで、当該データが登録されるテーブルの行位置の特定の列に、例えば当該テーブル内で一意の番号（識別番号）を自動挿入することができる。このような発番手法（番号の発行手法）を第１の発番手法と呼ぶ。
【０００３】
また、ＳＱＬの拡張機能として順序(SEQUENCE)という機能が知られている（例えば、非特許文献１参照）。「順序」とは、データベース・オブジェクトの１つである。一般にＲＤＢシステムでは、この「順序」機能を更新系のＳＱＬ文に組み込むことによって、現在の番号(currval)と次の番号(nextval)とを取得することができる。ここで、発番（番号の発行）を管理する発番管理台帳がＲＤＢシステムに１つだけ用意される場合には、テーブルに登録されるデータにシステム内で一意の番号を割り当てることができる。また、テーブル毎に発番管理台帳が用意される場合には、データが登録されるテーブル内で一意の番号を当該データに割り当てることができる。このような発番手法を第２の発番手法と呼ぶ。
【０００４】
一方、近年は、ＸＭＬ（Extensible Markup Language）文書やＨＴＭＬ（HyperText Markup Language）文書のような構造化文書が登録されたデータベースが出現している。このようなデータベースは、構造化文書データベースと呼ばれる。構造化文書は、意味的な構造、あるいは表示のための構造を持つ文書として知られている。構造化文書データベースの標準的な問い合わせ言語としては、ＸＰａｔｈやＸＱｕｅｒｙが知られている。
【０００５】
最近、構造化文書データベースに登録される構造化文書にも、ＲＤＢに登録されるデータに対するのと同様に、一意の番号を識別番号として割り当てることが要求されている。そこで、一意の番号を構造化文書中に組み込むために、アプリケーションで発番を管理することが行われている。
【非特許文献１】スティーブンＭ．ボブロフスキー著、富士ソフトウエア訳・編「Ｏｒａｃｌｅ７クライアント／サーバコンピューティング」、富士ソフトウエア株式会社、１９９４年１０月３日、ｐ．５２３−５２４
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところが、アプリケーションで発番を管理すると、システムにおけるパフォーマンスの低下を招く。また、アプリケーション間の発番のための排他処理によって処理の並列性が失われる可能性が高くなる。
【０００７】
本発明は上記事情を考慮してなされたものでその目的は、構造化文書データベースに登録される構造化文書に一意の番号を簡単に且つ効率的に割り当てることができる構造化文書管理システム及び同システムに適用される構造化文書管理プログラムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明の１つの観点によれば、構造化文書を格納する構造化文書データベースを有する構造化文書管理システムが提供される。このシステムは、番号の発行と発行された番号の埋め込みとを指定する特定のノードを含む構造化文書を前記データベースに登録することがクライアント端末から要求された場合、前記登録されるべき構造化文書に含まれている前記特定のノードの指定に基づいて一意の番号を発行する発番管理手段と、前記登録されるべき構造化文書に含まれている前記特定のノードを前記発番管理手段によって発行された番号に置き換えて、この置き換えられた番号を含む構造化文書を前記データベースに登録するドキュメント管理手段とを具備する。
【発明の効果】
【０００９】
本発明によれば、構造化文書データベースに登録されるべき構造化文書中の番号を埋め込みたい箇所に特定のノードを記述しておくだけで、構造化文書管理システム側で自動的に一意の番号を発行して、その発行された番号を当該特定のノードに置き換えて埋め込むことができる。このため、クライアント端末で動作するアプリケーションの処理負荷、開発負荷が減り、また、番号発行処理によって発生しがちな処理並列性の阻害を未然に防ぐことが可能になる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態につき図面を参照して説明する。  
図１は本発明の一実施形態に係る構造化文書管理システムの構成を示すブロック図である。構造化文書管理システムは、構造化文書データベース（構造化文書ＤＢ）１０と、データベースサーバ（ＤＢサーバ）２０とから構成される。構造化文書ＤＢ１０は、構造化文書を格納する。本実施形態では、構造化文書はＸＭＬ文書（ＸＭＬドキュメント）である。構造化文書ＤＢ１０は、例えばハードディスクドライブに保存される。ＤＢサーバ２０は、ローカルエリアネットワーク（ＬＡＮ）のようなネットワーク３０を介してクライアント端末４０を含む複数のクライアント端末と接続されている。なお、図１にはクライアント端末４０以外のクライアント端末は省略されている。
【００１１】
ＤＢサーバ２０は、コマンド管理部２１、記憶部２２、発行番号管理部（発番管理部）２３、ドキュメント管理部２４及びファイル管理部２５を含むコンピュータである。  
コマンド管理部２１は、ネットワーク３０を介して転送されるクライアント端末からのコマンドの実行を管理する。コマンド管理部２１は、発番管理部２３及びドキュメント管理部２４のうちクライアント端末４０からのコマンドを実行すべき管理部を決定する。コマンド管理部２１は特に、発番管理台帳を新規に生成することを指定する台帳生成要求に応じて、発番管理部２３による発番管理台帳生成を管理する。またコマンド管理部２１は、構造化文書ＤＢ１０に登録すべきＸＭＬ文書にテキストノードまたは属性ノードとして一意の番号（つまり非重複番号）を設定する（埋め込む）ことを指定する文書登録要求に応じてドキュメント管理部２４の動作を管理する。
【００１２】
記憶部２２は、少なくとも１つの発番管理台帳を格納する。図１の例では、記憶部２２にはｎ個の発番管理台帳２２１-1〜２２１-nが格納されている。発番管理台帳２２１-1〜２２１-nには、当該台帳２２１-1〜２２１-nを識別するための例えば名前（つまり台帳名）が付与されている。ここでは発番管理台帳２２１-1〜２２１-nの台帳名は、台帳1〜台帳nである。発行番号記憶部２２はまたカレント番号領域２２２を含む。カレント番号領域２２２は、実行中のトランザクション毎に、そのトランザクション内で最も最近に発行された番号をカレント番号として保存するのに用いられる。
【００１３】
記憶部２２は、主記憶のようなメモリユニットである。この場合、記憶部２２の内容（特に発番管理台帳２２１-1〜２２１-n）を再利用可能なように適宜（例えばＤＢサーバ２０のシャットダウン時に）上記ハードディスクドライブに保存しておき、必要に応じて（例えばＤＢサーバ２０の立ち上げ時に）当該記憶部２２にロードすると良い。また記憶部２２に、フラッシュメモリのような書き換え可能な不揮発性メモリを用いるならば、当該記憶部２２の内容をハードディスクドライブに必ずしも保存する必要はない。また書き換え可能な不揮発性メモリには、バッテリバックアップされたメモリも含まれるものとする。
【００１４】
発番管理部２３は、コマンド管理部２１から要求される発番管理台帳の生成を管理する。発番管理部２３はまた、ドキュメント管理部２４から要求される番号を発行番号管理台帳２２-1〜２２-nのうちの１つ、またはカレント番号領域２２２に保存されている情報に基づいて取得して、その番号を当該ドキュメント管理部２４に通知する。
【００１５】
ドキュメント管理部２４は、クライアント端末からコマンド管理部２１を介して要求されたＸＭＬ文書（新規ＸＭＬ文書）をファイル管理部２５を介して構造化文書ＤＢ１０に登録する。ドキュメント管理部２４はまた、要求されたＸＭＬ文書に番号を埋め込むことが指定されている場合、当該ＸＭＬ文書に埋め込むべき番号の発番を発番管理部２３に要求する。ファイル管理部２５は、ドキュメント管理部２４の制御のもとで、構造化文書ＤＢ１０へのＸＭＬ文書の登録（格納）、当該構造化文書ＤＢ１０からのＸＭＬ文書の読み出しを管理する。
【００１６】
本実施形態において、ＤＢサーバ２０のコマンド管理部２１、発番管理部２３、ドキュメント管理部２４及びファイル管理部２５は、当該ＤＢサーバ（ＤＢサーバコンピュータ）２０が特定のプログラム（構造化文書管理プログラム）を読み取って実行することによって実現される。このプログラムは、コンピュータ読み取り可能な記憶媒体に予め格納して頒布可能である。また、このプログラムが、ネットワーク３０を介してＤＢサーバ２０にダウンロードされても構わない。
【００１７】
クライアント端末４０は、アプリケーション（アプリケーションプログラム）４１及びアプリケーションプログラムインタフェース（ＡＰＩ４２）を含む。アプリケーション４１は、クライアント端末４０上で動作する。ＡＰＩ４２は、アプリケーション４１からの要求を受け付ける。ＡＰＩ４２は、アプリケーション４１からＤＢサーバ２０に対する要求が発行された場合、当該要求をネットワーク３０を介してＤＢサーバ２０に送出する。
【００１８】
図２は図１中の発番管理部２３の構成を示すブロック図である。発番管理部２３は、発番管理台帳生成部２３０、判定部２３１、発番部２３２、番号通知部２３３、発行番号保存処理部２３４及び番号取得部２３５を含む。
【００１９】
発番管理台帳生成部２３０は、コマンド管理部２１から与えられる台帳生成要求の指定する発番管理台帳を生成する。生成された発番管理台帳は記憶部２２に格納される。判定部２３１は、ドキュメント管理部２４から与えられる発番要求が新規発番を指定しているか否かを判定する。発番部２３２は、新規発番が指定されている場合、要求された番号を記憶部２２に格納されている発番管理台帳２２-1〜２２-nの１つに基づいて発行（つまり発番）する。番号通知部２３３は、発行された番号をドキュメント管理部２４に通知する。
【００２０】
発行番号保存処理部２３４は、発番部２３２によって発行された番号を、要求元の実行中トランザクションに対応付けて記憶部２２のカレント番号領域２２２に保存する。番号取得部２３５は、発番要求が新規発番を指定していない場合、要求された番号をカレント番号領域２２２から取得する。
【００２１】
図３は図１中のドキュメント管理部２４の構成を示すブロック図である。ドキュメント管理部２４は、解析部２４１、判定部２４２、発番要求部２４３、置換部２４４及び文書保存処理部２４５を含む。
【００２２】
解析部２４１は、コマンド管理部２１により渡された文書登録要求を解析する。判定部２４２は、解析された要求が新規発番を必要とするか否かを判定する。発番要求部２４３は、判定部２４２の判定結果に基づき、新規発番が必要か否かを指定する発番要求を発番管理部２３に送出する。置換部２４４は発番管理部２３により通知された番号が埋め込まれるべきノードを指定のタイプに置き換える。文書保存処理部２４５は、番号を含まないＸＭＬ文書、または番号が埋め込まれたノードを含むＸＭＬ文書を、ファイル管理部２５により構造化文書ＤＢ１０に保存（登録）させる。
【００２３】
次に、本実施形態におけるＤＢサーバ２０の動作について説明する。まず、クライアント端末４０のアプリケーション４１により、新たな発番管理台帳の生成を要求するための台帳生成要求が発生された場合のＤＢサーバ２０の動作について、図４のフローチャートを参照して説明する。
【００２４】
今、クライアント端末４０のアプリケーション４１により、ＸＭＬ文書を識別するための番号の発行を一元管理するために、台帳生成要求が発生されたものとする。すると、クライアント端末４０のＡＰＩ４２は、アプリケーション４１により発生された台帳生成要求をネットワーク３０を介してＤＢサーバ２０に送出する。
【００２５】
ＤＢサーバ２０のコマンド管理部２１は、ＡＰＩ４２からの台帳生成要求を受け付ける（ステップＳ１）。この台帳生成要求は、新規に生成すべき発番管理台帳を識別する台帳識別情報（例えば台帳名）、及び発番規則情報を含む。発番規則情報は、例えば、番号を発行する際の規則（発番規則）に加えて、開始番号と、発行する番号の上限（つまり終了番号）または発行する番号の数の上限と、次に発行すべき番号を含む。発番規則は、例えば開始番号からシーケンシャルに番号を生成するか、或いは開始番号から一定数ｋの間隔で番号を生成するかなどを示す。次に発行すべき番号は、初期状態において開始番号に一致する。
【００２６】
コマンド管理部２１は、ＡＰＩ４２からの台帳生成要求を受け付けると、その台帳生成要求を発番管理部２３に渡す（ステップＳ２）。すると発番管理部２３の発番管理台帳生成部２３０は、台帳生成要求に従い、要求された発番規則の発番規則情報を含む発番管理台帳を新規に生成する（ステップＳ３）。このステップＳ３において発番管理台帳生成部２３０は、生成された発番管理台帳を記憶部２２に保存する。ここでは、図１に示される発番管理台帳２２１-nが記憶部２２に保存されたものとする。発番管理部２３は、発番管理台帳２２１-nが生成されたことを示す応答（台帳生成通知）をコマンド管理部２１に返す（ステップＳ４）。するとコマンド管理部２１は、当該応答をクライアント端末４０のＡＰＩ４２に返す（ステップＳ５）。
【００２７】
次に、クライアント端末４０のアプリケーション４１により、ＸＭＬ文書を構造化文書ＤＢ１０に登録することを要求するための文書登録要求が発生された場合のＤＢサーバ２０の動作について、図５乃至図７のフローチャートを参照して説明する。図５は、文書登録要求発生時のＤＢサーバ２０の動作を説明するためのフローチャート、図６は図５におけるステップＳ１３の処理（文書登録処理）の詳細な手順を示すフローチャート、図７は発番管理部２３による発番処理の手順を示すフローチャートである。
【００２８】
今、クライアント端末４０のアプリケーション４１があるトランザクションＴＲを実行中であり、このアプリケーション４１により文書登録要求が発生したものとする。クライアント端末４０のＡＰＩ４２は、アプリケーション４１により文書登録要求が発生すると、当該要求をネットワーク３０を介してＤＢサーバ２０に送出する。ＤＢサーバ２０のコマンド管理部２１は、ＡＰＩ４２からの文書登録要求を受け付ける（ステップＳ１１）。コマンド管理部２１は、ＡＰＩ４２からの文書登録要求を受け付けると、その文書登録要求をドキュメント管理部２４に渡す（ステップＳ１２）。この文書登録要求は、構造化文書ＤＢ１０に登録されるべきＸＭＬ文書を含む。
【００２９】
本実施形態では、ＸＭＬ文書の所望の箇所に当該ＸＭＬ文書を識別するための一意の番号をノードとして埋め込むことを、当該ＸＭＬ文書によって指定可能である。ここでは、番号が埋め込まれるべきＸＭＬ文書の箇所を指定するための印として、その箇所に記述された特定の要素ノードが用いられる。この特定の要素ノードを番号埋め込み指定ノードと呼ぶ。本実施形態では、ＸＭＬ文書に番号が埋め込まれるべきノードのタイプとして、テキストノード及び属性ノード等が適用可能である。番号埋め込み指定ノードは、番号の発行に用いられる発番管理台帳の名前（台帳名）Xを指定する文字列「ledger name="X"」と、番号が埋め込まれるべきノードのタイプ（type）Yを指定する文字列「type="Y"」とを含む。また、番号埋め込み指定ノードに、トランザクションＴＲを実行中のアプリケーション４１からの文書登録要求に応じて既に発行されたカレントな番号を埋め込むことを指定する文字列「発番形式="current"」を付加することも可能である。この文字列「発番形式="current"」が付加されていない番号埋め込み指定ノードは、ledger name="X"で指定される台帳名の発番管理台帳に基づき、新規に番号を発行すべきことを指定する。なお、番号埋め込み指定ノードに、特定のテキストノードまたは特定の属性ノードを用いることも可能である。
【００３０】
図８は、番号埋め込み指定ノードが記述された２つのＸＭＬ文書８１及び８２の例を示す。図８（ａ）は番号が埋め込まれるべきＸＭＬ文書８１中のノードのタイプとしてテキストノードが指定される例を示す。図８（ａ）の例は、文字列「<xmldb:ledger name="台帳1" type="text"/>」を含む２つの番号埋め込み指定ノード８１１及び８１２が、いずれも、「台帳1」という台帳名（ledger name）の発番管理台帳２２１-1を用いて発行される番号を、当該番号埋め込み指定ノードにテキストノードとして埋め込むことを表す。ここでは、台帳指定記述「ledger name="台帳1"」により発番管理台帳２２１-1の台帳名が指定され、タイプ指定記述「type="text"」によりテキストノードが指定される。
【００３１】
図８（ｂ）は、番号が埋め込まれるべきＸＭＬ文書７２中のノードのタイプとして属性ノードが指定される例を示す。図８（ｂ）の例は、文字列「<xmldb:台帳 name="台帳1" type="attribute" attname="id" />を含む２つの番号埋め込み指定ノード８２１及び８２２が、いずれも、「台帳1」という台帳名の発番管理台帳２２１-1を用いて発行される番号を、当該番号埋め込み指定ノードの親ノードの属性ノードとして、属性名「id」で埋め込むことを表す。ここでは、タイプ指定記述「type="attribute"」により属性ノードが指定され、属性名指定記述「attname="id"」により属性名「id」が指定される。
【００３２】
ドキュメント管理部２４は、コマンド管理部２１から文書登録要求を受け取ると、当該要求に含まれているＸＭＬ文書を構造化文書ＤＢ１０に登録するための文書登録処理を実行する（ステップＳ１３）。またドキュメント管理部２４はこの文書登録処理において、登録されるべきＸＭＬ文書中の番号埋め込み指定ノードに従って発番管理部２３に発番要求を送出することにより当該発番管理部２３から番号を取得し、当該指定ノードに取得された番号を埋め込む。
【００３３】
ドキュメント管理部２４は、要求されたＸＭＬ文書を構造化文書ＤＢ１０に登録すると（ステップＳ１３）、文書登録完了通知をコマンド管理部２１に送出する（ステップＳ１４）。コマンド管理部２１は、この文書登録完了通知をネットワーク３０を介してクライアント端末４０のＡＰＩ４２に送出する（ステップＳ１５）。
【００３４】
次に、上記ステップＳ１３における文書登録処理の手順について、図６のフローチャートを参照して説明する。まずドキュメント管理部２４の解析部２４１は、コマンド管理部２１から渡された文書登録要求に含まれている登録されるべきＸＭＬ文書の文字列を順次解析する（ステップＳ２１）。ドキュメント管理部２４の判定部２４２は解析部２４１による解析結果に基づいて、解析された文字列が番号埋め込み指定ノードの文字列であるか否かを判定する（ステップＳ２２）。もし、番号埋め込み指定ノードの文字列であるならば、ドキュメント管理部２４の発番要求部２４３は発番管理部２３に対して当該番号埋め込み指定ノードに基づく発番要求を送出する（ステップＳ２３）。この発番要求は、対応する番号埋め込み指定ノードの文字列を含む。発番管理部２３は、発番要求部２４３からの発番要求に基づき、要求された番号を取得するための発番処理を実行する。この発番処理の手順については後述する。発番管理部２３は、発番処理の最後で、取得された番号をドキュメント管理部２４に通知するための番号通知を送出する。
【００３５】
ドキュメント管理部２４の置換部２４４は、発番要求に対する応答として発番管理部２３から発番通知が返されると、当該発番通知を受け取る（ステップＳ２４）。置換部２４４は、ステップＳ２２で判定された番号埋め込み指定ノードを当該ノードで指定されたタイプのノードに変換して、その変換されたノードに発番通知により通知された番号を埋め込む（ステップＳ２５）。即ち置換部２４４は、番号埋め込み指定ノードを、発番通知により通知された番号が埋め込まれた当該ノードで指定されたタイプのノードに置き換える。
【００３６】
文書保存処理部２４５は、置換部２４４によって置き換えられたノードを、登録されるべきＸＭＬ文書の一部としてファイル管理部２５を用いて構造化文書ＤＢ１０に保存する（ステップＳ２６）。また文書保存処理部２４５は、解析された文字列が番号埋め込み指定ノードの文字列でないと判定された場合には（ステップＳ２２）、当該文字列を登録されるべきＸＭＬ文書の一部として構造化文書ＤＢ１０に保存する（ステップＳ２６）。以上の処理は、登録されるべきＸＭＬ文書の最後の文字列まで繰り返される（ステップＳ２７）。
【００３７】
図９は、図８に示すＸＭＬ文書８１及び８２の登録が要求された場合に、構造化文書ＤＢ１０に実際に登録されるＸＭＬ文書９１及び９２の例を示す。ＸＭＬ文書９１は、ＸＭＬ文書８１中の番号埋め込み指定ノード８１１及び８１２に対応する、番号「10」及び「11」が埋め込まれたテキストノード９１１及び９１２を含む。一方、ＸＭＬ文書９２は、ＸＭＬ文書８２中の番号埋め込み指定ノード８２１及び８２２に対応する、番号「12」及び「13」が属性名「id」の属性値として埋め込まれた属性ノード９２１及び９２２を含む。
【００３８】
このように本実施形態によれば、クライアント端末４０のユーザは、構造化文書ＤＢ１０に登録されるべきＸＭＬ文書８１または８２中の番号を埋め込みたい箇所に番号埋め込み指定ノードを記述しておくだけで、構造化文書管理システムのＤＢサーバ２０側で自動的に一意の番号を発行して、その発行された番号を当該番号埋め込み指定ノードに置き換えて埋め込むことができる。このため、クライアント端末４０で動作するアプリケーション４１の処理負荷、開発負荷が減り、また、番号発行処理によって発生しがちな処理並列性の阻害を未然に防ぐことが可能になる。しかも本実施形態においては、発行された番号が埋め込まれるノードのタイプを番号埋め込み指定ノード中のタイプ指定記述で指定することもできる。
【００３９】
次に、発番管理部２３による発番処理の手順について、図７のフローチャートを参照して説明する。今、ドキュメント管理部２４の発番要求部２４３から発番管理部２３に対して発番要求が送出されたものとする（図６ステップＳ２３）。
【００４０】
すると発番管理部２３の判定部２３１は、発番要求部２４３からの発番要求に含まれている番号埋め込み指定ノードの文字列から、新規発番が要求されているか否かを判定する（ステップＳ３１）。この判定は、番号埋め込み指定ノードの文字列にカレント番号指定記述「発番形式="current"」が含まれていないかを調べることにより達成される。図８に示す番号埋め込み指定ノード８１１，８１２，８２１または８２２のように、「発番形式="current"」が含まれていない場合、判定部２３１は新規発番が要求されていると判定する。
【００４１】
新規発番が要求されていると判定された場合、発番管理部２３の発番部２３２は、発番管理台帳２２１-1〜２２１-nのうち、発番要求に含まれている番号埋め込み指定ノードの指定する発番管理台帳に基づいて、新たな番号を発行する（ステップＳ３２）。
【００４２】
すると発行番号保存処理部２３４は、発番部２３２によって発行された番号、つまり発番要求元のアプリケーション４１によるトランザクションＴＲの実行中に最も最近に発行された番号を、カレント番号として当該トランザクションＴＲに対応付けて記憶部２２のカレント番号領域２２２に保存する（ステップＳ３３）。
【００４３】
一方、番号通知部２３３は番号通知の送出により、発番部２３２によって発行された番号をドキュメント管理部２４に通知する（ステップＳ３４）。
【００４４】
これに対し、新規発番が要求されていないと判定された場合、発番管理部２３の番号取得部２３５は、カレント番号領域２２２から、発番要求元のアプリケーション４１が実行中のトランザクションＴＲに対応付けられているカレント番号を、要求された番号として取得する（ステップＳ３５）。番号通知部２３３は番号通知の送出により、番号取得部２３５によって取得された番号をドキュメント管理部２４に通知する（ステップＳ３４）。
【００４５】
このように本実施形態においては、番号埋め込み指定ノード中でカレント番号指定記述を用いることにより、同一トランザクション内であれば、既に他のユーザによって次の番号が発行されてしまった後であっても、当該トランザクションに対応付けてカレント番号領域２２２に保存されているカレント番号、つまり当該トランザクション内で最も最近に発行された番号を取得することができる。この機能を利用して、クライアント端末４０のアプリケーション４１によって実行中のトランザクション内で最も最近に発行された番号（カレント番号）を当該アプリケーション４１からの要求によりＤＢサーバ２０から当該アプリケーション４１に通知することも可能である。この場合、ＸＭＬ文書中の番号埋め込み指定ノード以外の箇所にも当該ノードの箇所に埋め込まれる番号を利用することができる。
【００４６】
上記実施形態では、番号埋め込み指定ノードにより指定される、ＸＭＬ文書に番号が埋め込まれるべきノードのタイプがテキストノード及び属性ノードの２種類である場合を想定している。しかし、ＸＭＬ文書に番号が埋め込まれるべきノードのタイプとして、コメントノードを適用することも可能である。例えば、図８（ａ）に示すＸＭＬ文書８１中の番号埋め込み指定ノード８１１の文字列「<xmldb:ledger name="台帳1" type="text"/>」に代えて、「<xmldb:ledger name="台帳1" type="comment"/>」を用いることも可能である。この場合、図９（ａ）に示すテキストノード９１１に代えてコメントノード「<!--10-->」を含むＸＭＬ文書が構造化文書ＤＢ１０に保存される。また、ＣＤＡＴＡセクションを用いることも可能である。例えば、「<xmldb:ledger name="台帳1" type="text"/>」中の「type="text"」に代えて、「type="CDATA section"」のようなタイプ指定記述を用いるならば、番号１０が埋め込まれたＣＤＡＴＡセクション「<![CDATA[10]]>」を含むＸＭＬ文書を構造化文書ＤＢ１０に保存することができる。
【００４７】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
【図面の簡単な説明】
【００４８】
【図１】本発明の一実施形態に係る構造化文書管理システムの構成を示すブロック図。
【図２】図１中の発番管理部２３の構成を示すブロック図。
【図３】図１中のドキュメント管理部２４の構成を示すブロック図。
【図４】台帳生成要求発生時のＤＢサーバ２０の動作を説明するためのフローチャート。
【図５】文書登録要求発生時のＤＢサーバ２０の動作を説明するためのフローチャート。
【図６】図５におけるステップＳ１３の処理の詳細な手順を示すフローチャート。
【図７】発番管理部２３による発番処理の手順を示すフローチャート。
【図８】番号埋め込み指定ノードが記述された２つのＸＭＬ文書８１及び８２の例を示す図。
【図９】図８に示すＸＭＬ文書８１及び８２の登録が要求された場合に、構造化文書ＤＢ１０に実際に登録されるＸＭＬ文書９１及び９２の例を示す図。
【符号の説明】
【００４９】
１０…構造化文書データベース（構造化文書ＤＢ）、２０…データベースサーバ（ＤＢサーバ）、２１…コマンド管理部、２２…記憶部、２３…発番管理部、２４…ドキュメント管理部、２５…ファイル管理部、３０…ネットワーク、４０…クライアント端末、４１…アプリケーション、４２…アプリケーションプログラムインタフェース（ＡＰＩ）、８１，８２，９１，９２…ＸＭＬ文書、２３０…発番管理台帳生成部、２３１，２４２…判定部、２３２…発番部、２３３…番号通知部、２３４…発行番号保存処理部、２３５…番号取得部、２４１…解析部、２４３…発番要求部、２４４…置換部、２４５…文書保存処理部、８１１，８１２，８２１，８２２…番号埋め込み指定ノード（特定の要素ノード），９１１，９１２…テキストノード、９２１，９２２…属性ノード。
【図１】
2007172341.tif 000003
【図２】
2007172341.tif 000004
【図３】
2007172341.tif 000005
【図４】
2007172341.tif 000006
【図５】
2007172341.tif 000007
【図６】
2007172341.tif 000008
【図７】
2007172341.tif 000009
【図８】
2007172341.tif 000010
【図９】
2007172341.tif 000011