(57)【要約】【課題】直接的、間接的に参照している参照文書を特定するとともに、参照文書間で整合性を検証することを目的とする。【解決手段】文書間リビジョン管理装置１０は、文書処理装置２０が既存文書を参照する新規文書を作成する度に、既存データとそのリビジョンと、新規データとそのリビジョンとの対応関係を示す対応情報をリビジョン履歴蓄積部１２に蓄積する。文書間リビジョン管理装置１０は、蓄積した対応情報が示す対応関係から、所定のリビジョンの所定のデータが参照するリビジョンの既存データを参照データとして特定するとともに、特定した参照データが参照するリビジョンの既存データも参照データとして特定する。さらに、文書間リビジョン管理装置１０は、複数の参照データを特定した場合に、特定した複数の参照データから同一のデータであって、リビジョンの異なるデータが含まれるか否かを判定する。【選択図】図１
2010211341.tif 000002
【特許請求の範囲】
【請求項１】
所定のリビジョンの既存データと、前記所定のリビジョンの前記既存データを参照する所定のリビジョンの新規データとの対応関係を示す対応情報を記憶装置に蓄積する対応情報蓄積部と、
前記対応情報蓄積部が蓄積した対応情報が示す対応関係から、所定のリビジョンの所定のデータが参照するリビジョンの既存データを参照データとして処理装置により特定するとともに、特定した参照データが参照するリビジョンの既存データも参照データとして処理装置により特定する参照データ特定部と
を備えることを特徴とするデータ間リビジョン管理装置。
【請求項２】
前記参照データ特定部は、特定した参照データが参照する参照先データがなくなるまで、参照データが参照するリビジョンの既存データを参照データとして特定する処理を繰り返す
ことを特徴とする請求項１に記載のデータ間リビジョン管理装置。
【請求項３】
前記データ間リビジョン管理装置は、さらに、
前記参照データ特定部が複数の参照データを特定した場合に、前記複数の参照データから同一のデータであって、リビジョンの異なるリビジョン競合データが含まれるか否かを処理装置により判定するリビジョン競合判定部
を備えることを特徴とする請求項１又は２に記載のデータ間リビジョン管理装置。
【請求項４】
前記データ間リビジョン管理装置は、さらに、
前記既存データのうち前記新規データに参照される箇所を示す参照箇所情報を記憶装置に記憶する参照箇所記憶部を備え、
前記リビジョン競合判定部は、第１リビジョンデータと第２リビジョンデータとが前記リビジョン競合データである場合に、前記参照箇所記憶部が記憶した参照箇所情報が示す参照される箇所について、前記第１リビジョンデータと前記第２リビジョンデータとが異なるか否かを判定する
ことを特徴とする請求項３に記載のデータ間リビジョン管理装置。
【請求項５】
前記リビジョン競合判定部は、第１参照データから参照される第１リビジョンデータと第２参照データから参照される第２リビジョンデータとが前記リビジョン競合データである場合に、
前記参照箇所情報が示す前記第１参照データから参照される箇所について、前記第１リビジョンデータと前記第２リビジョンデータとが異なるか否かを判定するとともに、
前記参照箇所情報が示す前記第２参照データから参照される箇所について、前記第１リビジョンデータと前記第２リビジョンデータとが異なるか否かを判定する
ことを特徴とする請求項４に記載のデータ間リビジョン管理装置。
【請求項６】
所定のリビジョンの既存データと、前記所定のリビジョンの前記既存データを参照する所定のリビジョンの新規データとの対応関係を示す対応情報を記憶装置が蓄積する対応情報蓄積ステップと、
前記対応情報蓄積ステップで蓄積した対応情報が示す対応関係から、所定のリビジョンの所定のデータが参照するリビジョンの既存データを参照データとして処理装置が特定するとともに、特定した参照データが参照するリビジョンの既存データも参照データとして処理装置が特定する参照データ特定ステップと
を備えることを特徴とするデータ間リビジョン管理方法。
【請求項７】
所定のリビジョンの既存データと、前記所定のリビジョンの前記既存データを参照する所定のリビジョンの新規データとの対応関係を示す対応情報を蓄積する対応情報蓄積処理と、
前記対応情報蓄積処理で蓄積した対応情報が示す対応関係から、所定のリビジョンの所定のデータが参照するリビジョンの既存データを参照データとして特定するとともに、特定した参照データが参照するリビジョンの既存データも参照データとして特定する参照データ特定処理と
をコンピュータに実行させることを特徴とするデータ間リビジョン管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えば、複数のデータ間のリビジョンを管理する技術に関する。
【背景技術】
【０００２】
システムの動作定義や表示スタイル定義の記述等さまざまな場面でＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）文書が用いられる。ＸＭＬ等の文書を作成、編集する場合に、他の文書を参照して情報を記述することがある。この場合、参照元の文書と参照先の文書との間の参照関係（依存関係）を特定するとともに、その参照関係から文書間の整合性の検証を行う必要がある。
【０００３】
文書の変更履歴を管理するツール（以下、リビジョン管理ツールと呼ぶ）を用いることにより、各リビジョン（版）の文書を管理しておき、古いリビジョンの文書を取得することができる。しかし、リビジョン管理ツールは、文書単位でリビジョンを管理するものである。そのため、あるリビジョンの文書がどのリビジョンの文書を参照しているという文書間の参照関係を特定することはできない。したがって、文書間の整合性の検証を行うことができない。このため、人が文書間の参照関係を確認しながら、文書間の整合性が合うように管理する必要がある。現状では、例えば、人が手作業により、バージョンタグを付けて文書を管理する。
【０００４】
特許文献１には、プログラムとそのプログラムから直接呼び出される他のプログラムと間でバージョン間の互換情報を保持して整合性を検証する技術についての記載がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−２５５４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１に記載された技術では、プログラムとそのプログラムから直接呼び出されるプログラムとの２つのプログラム間の整合性のみ検証可能である。つまり、プログラムが他のプログラムを介して間接的に参照しているプログラムとの間の整合性まで検証することはできない。また、この技術は、プログラム間の互換性が予め取得できることを前提としている。したがって、互換性を予め取得できない文書間の整合性を判定することができない。
この発明は、間接的に参照している文書を含む参照文書を特定すること、及び、間接的に参照している文書間で整合性を検証することを目的とする。
【課題を解決するための手段】
【０００７】
この発明に係るデータ間リビジョン管理装置は、例えば、
所定のリビジョンの既存データと、前記所定のリビジョンの前記既存データを参照する所定のリビジョンの新規データとの対応関係を示す対応情報を記憶装置に蓄積する対応情報蓄積部と、
前記対応情報蓄積部が蓄積した対応情報が示す対応関係から、所定のリビジョンの所定のデータが参照するリビジョンの既存データを参照データとして処理装置により特定するとともに、特定した参照データが参照するリビジョンの既存データも参照データとして処理装置により特定する参照データ特定部と
を備えることを特徴とする。
【発明の効果】
【０００８】
この発明に係るデータ間リビジョン管理装置は、既存データを参照する新規データについて、新規データ及びそのリビジョンと、既存データ及びそのリビジョンとの対応情報を蓄積しておく。これにより、所定のリビジョンの所定のデータが直接参照する参照データとそのリビジョンを特定するとともに、間接的に参照する参照データとそのリビジョンを特定することができる。
【図面の簡単な説明】
【０００９】
【図１】文書間リビジョン管理システム１の構成図。
【図２】エディタ２１及び文書の関係の一例を示す図。
【図３】参照ルール７０の一例を示す図。
【図４】対応情報８０の一例を示す図。
【図５】参照文書リスト９０の一例を示す図。
【図６】対応情報８０の更新処理の流れを示すフローチャート。
【図７】参照文書リスト９０の作成処理の流れを示すフローチャート。
【図８】文書間のリビジョンの競合を判定する処理の流れを示すフローチャート。
【図９】リビジョン番号「１１」のコンテナ定義文書６２と、リビジョン番号「２０」のコンテナ定義文書６２とを示す図。
【図１０】ハードウェア構成の一例を示す図。
【発明を実施するための形態】
【００１０】
以下、図に基づき、この発明の実施の形態について説明する。
なお、以下の説明において、処理装置とは、後述するＣＰＵ９１１等である。また、記憶装置とは、後述するＲＯＭ９１３、ＲＡＭ９１４、磁気ディスク装置９２０等である。また、入力装置とは、後述するキーボード９１２、通信ボード９１５等である。また、通信装置とは、後述する通信ボード９１５等である。
また、以下の説明では、文書として、ＸＭＬ文書を例として用いる。しかし、文書は、これに限定されるものではなく、他の文書であってもよい。また、文書ではなくても、他のデータを参照する構造のデータであればよい。つまり、以下の説明において、「文書」は、「データ」と読み替えることができる。
【００１１】
実施の形態１．
図１は、文書間リビジョン管理システム１の構成図である。
文書間リビジョン管理システム１は、文書間リビジョン管理装置１０、文書処理装置２０、リビジョン管理ツール３０、リポジトリ４０を備える。
文書間リビジョン管理装置１０は、文書処理装置２０とリビジョン管理ツール３０とネットワークにより接続されている。ここでは、文書間リビジョン管理装置１０と文書処理装置２０とは直接ネットワークにより接続され、文書間リビジョン管理装置１０とリビジョン管理ツール３０とは、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を介して接続されている。また、リビジョン管理ツール３０とリポジトリ４０とはネットワークにより接続されている。
【００１２】
文書処理装置２０は、文書を作成、編集する。文書処理装置２０は、エディタ２１Ａ−エディタ２１Ｍの複数のエディタ２１を備える。
各エディタ２１は、それぞれ異なる所定の文書を作成、編集して記憶装置に記憶する。例えば、エディタ２１Ａは、文書Ａを作成、編集する。エディタ２１Ｂは、文書Ｂを作成、編集する。
また、一部又は全てのエディタ２１は、他のエディタ２１で作成、編集された他の文書を参照して文書を作成、編集する。例えば、エディタ２１Ｂは、エディタ２１Ａが作成した文書Ａを参照して、文書Ｂを作成、編集する。
また、例えば、各エディタ２１が文書を作成した場合には、その文書のリビジョンを示すリビジョン番号は「１」となる。各エディタ２１が文書を編集した場合には、その文書のリビジョンを示すリビジョン番号は、１加算される。つまり、リビジョン番号「２」の文書を編集した場合、その文書のリビジョン番号は「３」になる。
【００１３】
リビジョン管理ツール３０は、文書処理装置２０の各エディタ２１が作成、編集した文書の変更履歴をリポジトリ４０に記憶する。つまり、リビジョン管理ツール３０は、各エディタ２１が作成、編集した各リビジョンの文書を全てリポジトリ４０に記憶する。リビジョン管理ツール３０は、例えば、Ｓｕｂｖｅｒｓｉｏｎ（登録商標）等である。
【００１４】
文書間リビジョン管理装置１０は、文書処理装置２０とリビジョン管理ツール３０との間で文書間のリビジョンの関係を管理する。文書間リビジョン管理装置１０は、制御部１１、リビジョン履歴蓄積部１２（対応情報蓄積部）、参照文書特定部１３、参照文書リスト記憶部１４、文書参照ルール記憶部１５（参照箇所記憶部）、リビジョン競合判定部１６を備える。
制御部１１は、文書間リビジョン管理装置１０の各機能の制御と、文書処理装置２０と文書間リビジョン管理装置１０の間の制御を処理装置により行う。
リビジョン履歴蓄積部１２は、文書処理装置２０のエディタ２１が作成、編集して生成された文書（新規文書）及びその文書のリビジョンと、文書を作成した時に参照した既存文書及びその既存文書のリビジョンとの対応関係を示す対応情報８０を記憶装置に蓄積する。
参照文書特定部１３は、リビジョン履歴蓄積部１２が蓄積した対応情報８０から、指定したリビジョンの文書を作成した時に直接参照した文書とその文書のリビジョンを示すリビジョン番号とを処理装置により特定し、直接参照文書を特定する。また、参照文書特定部１３は、特定した直接参照文書を作成した時に参照した文書とその文書のリビジョンを示すリビジョン番号とを特定して、間接参照文書を特定する。さらに、参照文書特定部１３は、特定した間接参照文書を作成した時に参照した文書とその文書のリビジョンを示すリビジョン番号とを特定する処理を繰り返す。参照文書特定部１３は、特定したリビジョン番号の文書をリビジョン管理ツール３０を介してリポジトリ４０から取得する。
参照文書リスト記憶部１４は、参照文書特定部１３が特定した文書とその文書のリビジョンを示すリビジョン番号との一覧を参照文書リスト９０として一時的に記憶装置に記憶する。つまり、参照文書リスト記憶部１４は、指定した文書が直接参照する文書と間接的に参照する文書との全ての文書を一覧にした参照文書リスト９０を記憶装置に記憶する。
文書参照ルール記憶部１５は、文書毎に、その文書を作成、編集する時に参照する文書と、参照する文書のうち、どの部分を参照するかを示す参照箇所情報との参照ルール７０を記憶装置に記憶する。ここでは、上記の通り、エディタ２１毎に作成、編集する文書が決まっているため、文書参照ルール記憶部１５は、エディタ２１毎に、参照する文書と、参照箇所情報とを記憶しているということもできる。
リビジョン競合判定部１６は、参照文書リスト９０に従い、指定した文書が参照する参照文書（直接参照文書及び間接参照文書）において、リビジョンの競合が発生しているか否かを処理装置により判定する。リビジョンが競合しているとは、参照文書が同一の文書であって、リビジョンの異なる文書であることをいう。リビジョンが競合している文書をリビジョン競合文書と呼ぶ。また、リビジョン競合判定部１６は、リビジョンの競合が発生している場合、参照ルール７０の参照箇所情報に従い、リビジョン競合文書間で整合性が取れているか否かを処理装置により判定する。
【００１５】
図２は、エディタ２１及び文書の関係の一例を示す図である。
フローエディタ５１、コンテナエディタ５２、コンポーネントエディタ５３、ルーティングエディタ５４は、それぞれ文書処理装置２０のエディタ２１である。フローエディタ５１によって作成、編集される文書がフロー定義文書６１であり、コンテナエディタ５２によって作成、編集される文書がコンテナ定義文書６２であり、コンポーネントエディタ５３によって作成、編集される文書がコンポーネント定義文書６３であり、ルーティングエディタ５４によって作成、編集される文書がルーティング定義文書６４である。
フローエディタ５１とコンテナエディタ５２とは、他の文書を参照することなく、フロー定義文書６１とコンテナ定義文書６２とを作成、編集する。コンポーネントエディタ５３は、フロー定義文書６１とコンテナ定義文書６２とを参照して、コンポーネント定義文書６３を作成、編集する。ルーティングエディタ５４は、コンテナ定義文書６２とコンポーネント定義文書６３とを参照して、ルーティング定義文書６４を作成、編集する。
ここで、各文書は、対応するエディタにより作成、編集される。例えば、フロー定義文書６１はフローエディタ５１により作成、編集されるのであり、コンテナエディタ５２等によって作成、編集されることはない。
【００１６】
図３は、文書参照ルール記憶部１５が記憶する参照ルール７０の一例を示す図である。なお、図３に示す参照ルール７０は、図２に示すエディタ２１及び文書の関係を前提としている。
参照ルール７０は、ルール名７１、エディタ名７２、出力文書名７３、参照文書名７４、参照数７５、参照箇所７６を備える。
ルール名７１は、参照ルールの識別名称である。エディタ名７２は、文書を作成、編集するエディタ２１の識別名称である。出力文書名７３は、エディタ名７２が示すエディタ２１で作成、編集される文書の識別名称である。参照文書名７４は、出力文書名７３が示す文書が作成、編集される時に参照される文書の識別名称である。参照数７５は、出力文書名７３が示す文書に参照される参照文書名７４が示す文書の数である。参照箇所７６は、出力文書名７３が示す文書が作成、編集される時に、参照文書名７４が示す文書のどの部分が参照されるかを示す情報である。参照箇所７６は、例えば、Ｘｐａｔｈ式を用いてＸＭＬ文書の参照要素を指定してもよいし、参照箇所のリストを取得する処理を記述したＪａｖａ（登録商標）クラス名を指定してもよい。
【００１７】
図４は、リビジョン履歴蓄積部１２が蓄積する対応情報８０の一例を示す図である。なお、図４に示す対応情報８０は、図２に示すエディタ２１及び文書の関係と、図３に示す参照ルール７０とを前提としている。
対応情報８０は、生成文書８１（新規文書）、エディタ名８５、参照文書８６を備える。
生成文書８１は、作成、編集された文書についての情報である。生成文書８１は、文書名８２、ファイルパス８３、リビジョン８４を備える。文書名８２は、作成、編集された文書の識別名称である。ファイルパス８３は、作成、編集された文書の位置を示すパス情報である。リビジョン８４は、作成、編集された文書のリビジョンを示すリビジョン番号である。
エディタ名８５は、生成文書８１が示す文書を作成、編集したエディタ２１の識別名称である。
参照文書８６は、生成文書８１が示す文書を作成、編集した時に参照した既存文書についての情報である。参照文書８６は、文書名８７、ファイルパス８８、リビジョン８９を備える、文書名８７は、既存文書の識別名称である。ファイルパス８８は、既存文書の位置を示すパス情報である。リビジョン８９は、既存文書のリビジョンを示すリビジョン番号である。
【００１８】
図５は、参照文書リスト記憶部１４が記憶する参照文書リスト９０の一例を示す図である。なお、図５に示す参照文書リスト９０は、図４に示す対応情報８０を前提として、ルーティング定義文書６４について作成されたものである。
参照文書リスト９０は、参照文書名９１、ファイルパス９２、リビジョン９３、参照エディタ名９４、整合性９５を備える。
参照文書名９１は、参照される文書の識別名称である。ファイルパス９２は、参照文書名９１が示す文書の位置を示すパス情報である。リビジョン９３は、参照文書名９１が示す文書のリビジョンを示すリビジョン番号である。参照エディタ名９４は、参照文書名９１が示す文書を参照する文書を作成するエディタ２１の識別名称である。整合性９５は、リビジョン競合データ間で整合性が取れるか否かを示す情報である。
【００１９】
図６は、リビジョン履歴蓄積部１２が記憶する対応情報８０の更新処理の流れを示すフローチャートである。ここでは、コンポーネントエディタ５３がコンポーネント定義文書６３を編集する場合を例として説明する。
まず、コンポーネントエディタ５３は、コンポーネント定義文書６３をオープンする（Ｓ１０１）。コンポーネントエディタ５３は、（Ｓ１０１）でオープンしたコンポーネント定義文書６３が参照するフロー定義文書６１とコンテナ定義文書６２とを他のリビジョンのフロー定義文書６１とコンテナ定義文書６２とに変更するか否かを判定する（Ｓ１０２）。例えば、コンポーネントエディタ５３は、コンポーネントエディタ５３の使用者の指示に従い、参照する文書を他のリビジョンの文書に変更するか否かを判定する。
参照する文書を他のリビジョンの文書に変更する場合（Ｓ１０２でＹＥＳ）、コンポーネントエディタ５３は、参照する文書（フロー定義文書６１とコンテナ定義文書６２）の識別名称と文書のファイルパスを選択する（Ｓ１０３）。すると、リビジョン履歴蓄積部１２は、リビジョン管理ツール３０と同期して、参照する文書（フロー定義文書６１とコンテナ定義文書６２）の最新のリビジョンを示すリビジョン番号を取得する（Ｓ１０４）。そして、コンポーネントエディタ５３は、（Ｓ１０３）で選択した文書を参照して、コンポーネント定義文書６３を編集する（Ｓ１０５）。コンポーネント定義文書６３を編集した後、リビジョン履歴蓄積部１２は、リビジョン管理ツール３０と同期して、生成したコンポーネント定義文書６３をリポジトリ４０に登録する（Ｓ１０６）。（Ｓ１０６）の処理は、（Ｓ１０３）が実行された後に、文書をリポジトリ４０に登録する操作が行われた場合に実行される処理である。さらに、リビジョン履歴蓄積部１２は、コンポーネント定義文書６３と（Ｓ１０６）でリポジトリ４０に登録した時のリビジョンを示すリビジョン番号と、（Ｓ１０４）で取得した文書とその文書のリビジョン番号とを対応付けした対応情報８０を記憶装置に記憶する（Ｓ１０７）。
一方、参照する文書を他のリビジョンの文書に変更しない場合（Ｓ１０２でＮＯ）、（Ｓ１０３）−（Ｓ１０４）は実行されず、コンポーネントエディタ５３は、元々参照していた文書を参照してコンポーネント定義文書６３を編集する（Ｓ１０５）。コンポーネント定義文書６３を編集した後、リビジョン履歴蓄積部１２は、リビジョン管理ツール３０と同期して、生成したコンポーネント定義文書６３をリポジトリ４０に登録する（Ｓ１０６）。さらに、リビジョン履歴蓄積部１２は、コンポーネント定義文書６３と（Ｓ１０６）でリポジトリ４０に登録した時のリビジョンを示すリビジョン番号と、変更前のコンポーネント定義文書６３が参照する文書とその文書のリビジョン番号とを対応付けした対応情報８０を記憶装置に記憶する（Ｓ１０７）。なお、変更前のコンポーネント定義文書６３が参照する文書のリビジョン番号は、リビジョン履歴蓄積部１２が過去に蓄積済であるため、取得可能である。
上記説明では、コンポーネント定義文書６３を編集する場合について説明した。コンポーネント定義文書６３を新規に作成する場合は、（Ｓ１０３）から処理が開始されることになる。
以上の処理により、エディタ２１により文書を編集した時に、文書間の参照関係を記録することができる。
【００２０】
図７は、参照文書リスト９０の作成処理の流れを示すフローチャートである。
まず、参照文書特定部１３は、文書を１つ指定する（Ｓ２０１）。つまり、参照文書特定部１３は、参照する参照文書の一覧を取得したい参照元の文書を指定する。文書は、文書の識別名称とファイルパスとリビジョン番号とにより指定する。参照文書特定部１３は、指定した文書を対象リストに登録する。対象リストは、検索対照とする文書を保持するキューである。
参照文書特定部１３は、対象リストが空であるか否かを判定する（Ｓ２０２）。対象リストが空である場合（Ｓ２０２でＹＥＳ）、参照文書特定部１３は処理を終了する。一方、対象リストが空でない場合（Ｓ２０２でＮＯ）、参照文書特定部１３は対象リストから検索対象とする文書を１件取得する（Ｓ２０３）。なお、参照文書特定部１３は、取得した文書を対象リストから削除する。参照文書特定部１３は、リビジョン履歴蓄積部１２が記憶する対応情報８０から、（Ｓ２０３）で取得した検索対象の文書が参照する参照文書の情報（対応情報８０の参照文書８６）を取得する（Ｓ２０４）。つまり、文書の識別名称とファイルパスとリビジョン番号とにより、対応情報８０の生成文書８１から該当のレコードを検索することにより、参照文書の情報（対応情報８０の参照文書８６）を取得する。そして、参照文書リスト記憶部１４は、（Ｓ２０４）で参照文書特定部１３が取得した参照文書の情報を参照文書リスト９０に追加する（Ｓ２０５）。また、参照文書特定部１３は、取得した参照文書の識別名称とリビジョン番号とを対象リストに追加する（Ｓ２０６）。そして、参照文書特定部１３は、（Ｓ２０２）へ戻り、処理を繰り返す。
なお、（Ｓ２０５）で参照文書リスト記憶部１４は、既に同一の文書名、同一のファイルパスで、同一のリビジョン番号の参照文書が参照文書リスト９０に登録されていた場合、取得した参照文書の情報を参照文書リスト９０に追加することなく、既に参照文書リスト９０に登録された文書名とリビジョン番号が一致したレコードに参照エディタ名９４の情報だけを追加する。つまり、取得した参照文書の文書名８７、ファイルパス８８が参照文書リスト９０の参照文書名９１、ファイルパス９２とが同一であって、取得した参照文書のリビジョン８９と、参照文書リスト９０のリビジョン９３とが同一であるレコードが参照文書リスト９０に登録されている場合、参照文書リスト記憶部１４はそのレコードに参照エディタ名９４の情報だけを追加する。これ以外の場合には、参照文書リスト記憶部１４は、参照文書リスト９０に新たなレコードを作成して、取得した参照文書の情報を登録する。
また、（Ｓ２０６）で参照文書特定部１３は、（Ｓ２０５）と同様に、既に同一の文書名、ファイルパスで同一のリビジョン番号の参照文書が参照文書リスト９０に登録されていた場合、その参照文書を対象リストへ追加しない。
以上の処理により、指定した文書が参照する文書の一覧である参照文書リスト９０を作成できる。
【００２１】
図８は、文書間のリビジョンの競合を判定する処理の流れを示すフローチャートである。
まず、リビジョン競合判定部１６は、図７の処理により作成された参照文書リスト９０から参照文書名９１、ファイルパス９２が同一で、リビジョン９３が異なる文書（リビジョン競合文書）の識別名称、ファイルパスと各リビジョン番号とを抽出して、抽出リストへ追加する（Ｓ３０１）。なお、リビジョン競合判定部１６は、リビジョン競合文書を識別名称、ファイルパス毎に抽出リストに追加する。例えば、図５に示す参照文書リスト９０を例とすると、コンポーネントエディタ５３から参照されるリビジョン番号「１１」のコンテナ定義文書６２と、ルーティングエディタ５４から参照されるリビジョン番号「２０」のコンテナ定義文書６２とが参照文書リスト９０にある場合、識別名称「コンテナ定義文書６２」と、リビジョン番号「１１」と「２０」と抽出される。そして、識別名称「コンテナ定義文書６２」、ファイルパス「ｃｏｎｔａｉｎｅｒｄｅｆ．ｘｍｌ」と、リビジョン番号「１１」と「２０」とが１件のレコードとして抽出リストに登録される。
リビジョン競合判定部１６は、抽出リストが空であるか否かを判定する（Ｓ３０２）。抽出リストが空である場合（Ｓ３０２でＹＥＳ）、リビジョン競合判定部１６は処理を終了する。一方、抽出リストが空でない場合（Ｓ３０２でＮＯ）、リビジョン競合判定部１６は、抽出リストから１件のレコードを取得する（Ｓ３０３）。なお、参照文書特定部１３は、取得したレコードを対象リストから削除する。
リビジョン競合判定部１６は、（Ｓ３０３）で取得したレコードの識別名称、ファイルパスが示す文書（以下、参照文書）についての全ての参照エディタ名９４を参照文書リスト９０から取得する（Ｓ３０４）。上記例では、「コンポーネントエディタ５３」と「ルーティングエディタ５４」との識別名称が抽出される。
リビジョン競合判定部１６は、（Ｓ３０４）で取得した全ての参照エディタ名９４を参照ルール７０のエディタ名７２から検索して、そのエディタ２１の参照文書についての参照箇所情報を取得する（Ｓ３０５）。上記例では、コンポーネントエディタ５３のコンテナ定義文書６２についての参照箇所７６「ＸＰａｔｈ：／／ｃｏｎｔａｉｎｅｒｄｅｆ／ｃｏｎｔａｉｎｅｒ／＠ｎａｍｅ」と、ルーティングエディタ５４のコンテナ定義文書６２についての参照箇所７６「ＸＰａｔｈ：／／ｃｏｎｔａｉｎｅｒｄｅｆ／ｃｏｎｔａｉｎｅｒ」とが取得される。
リビジョン競合判定部１６は、（Ｓ３０３）で取得したレコードが示すリビジョン競合文書を全てリビジョン管理ツール３０を介してリポジトリ４０から取得する（Ｓ３０６）。つまり、リビジョン競合判定部１６は、（Ｓ３０３）で取得したレコードの識別名称、ファイルパスが示す文書であって、そのレコードの各リビジョン番号が示すリビジョンの文書を全て取得する。上記例では、リビジョン番号「１１」のコンテナ定義文書６２と、リビジョン番号「２０」のコンテナ定義文書６２とが取得される。
リビジョン競合判定部１６は、（Ｓ３０５）で取得した各参照元文書の参照箇所情報が示す参照箇所について、（Ｓ３０６）で取得した各リビジョン競合文書が同一か否かを判定する（Ｓ３０７）。上記例では、リビジョン番号「１１」のコンテナ定義文書６２と、リビジョン番号「２０」のコンテナ定義文書６２とについて、コンポーネントエディタ５３の参照箇所７６「ＸＰａｔｈ：／／ｃｏｎｔａｉｎｅｒｄｅｆ／ｃｏｎｔａｉｎｅｒ／＠ｎａｍｅ」が同一か否かが判定される。また、リビジョン番号「１１」のコンテナ定義文書６２と、リビジョン番号「２０」のコンテナ定義文書６２とについて、ルーティングエディタ５４の参照箇所７６「ＸＰａｔｈ：／／ｃｏｎｔａｉｎｅｒｄｅｆ／ｃｏｎｔａｉｎｅｒ」が同一か否かが判定される。参照箇所が同一であった場合、リビジョン競合判定部１６は、その参照元文書が参照する文書の整合性は取れると判定する。一方、参照箇所が同一でない文書が含まれる場合、リビジョン競合判定部１６は、その参照元文書が参照する文書の整合性は取れないと判定する。リビジョン競合判定部１６は、判定結果に従い、参照文書リスト９０の整合性９５を更新する。整合性が取れると判定した場合、リビジョン競合判定部１６は参照文書リスト９０の整合性９５を“○”に更新する。一方、整合性が取れないと判定した場合、リビジョン競合判定部１６は参照文書リスト９０の整合性９５を“×”に更新する。上記例では、コンポーネントエディタ５３がリビジョン番号「１１」のコンテナ定義文書６２を参照する参照箇所７６「ＸＰａｔｈ：／／ｃｏｎｔａｉｎｅｒｄｅｆ／ｃｏｎｔａｉｎｅｒ」についての判定結果に従い、参照文書リスト９０のリビジョン番号「１１」のコンテナ定義文書６２についての整合性９５が更新される。同様に、ルーティングエディタ５４リビジョン番号「２０」のコンテナ定義文書６２を参照する参照箇所７６「ＸＰａｔｈ：／／ｃｏｎｔａｉｎｅｒｄｅｆ／ｃｏｎｔａｉｎｅｒ／＠ｎａｍｅ」についての判定結果に従い、参照文書リスト９０のリビジョン番号「２０」のコンテナ定義文書６２についての整合性９５が更新される。
そして、リビジョン競合判定部１６は、（Ｓ３０２）へ戻り、処理を繰り返す。
【００２２】
図９に基づき、（Ｓ３０６）で、参照箇所が同一か否かを判定する処理の例を説明する。図９は、リビジョン番号「１１」のコンテナ定義文書６２と、リビジョン番号「２０」のコンテナ定義文書６２とを示す図である。
リビジョン番号「１１」のコンテナ定義文書６２では、コンテナ定義として「コンテナＡ」と「コンテナＢ」とが定義されている。リビジョン番号「２０」のコンテナ定義文書６２でも、コンテナ定義として「コンテナＡ」と「コンテナＢ」とが定義されている。しかし、リビジョン番号「２０」のコンテナ定義文書６２では、「コンテナＢ」の「ＵＲＬ」が変更され、「コンテナ属性」の「ｍｏｎｉｔｏｒｉｎｇ値」も変更されている。なお、図９では、相違部分を下線で示す。
まず、コンポーネントエディタ５３がリビジョン番号「１１」のコンテナ定義文書６２を参照する参照箇所７６「ＸＰａｔｈ：／／ｃｏｎｔａｉｎｅｒｄｅｆ／ｃｏｎｔａｉｎｅｒ」が、リビジョン番号「２０」のコンテナ定義文書６２と同一か否かを判定する。リビジョン番号「１１」のコンテナ定義文書６２とリビジョン番号「２０」のコンテナ定義文書６２とでは、上述したようにコンテナ要素が一部変更されている。したがって、参照箇所は同一ではなく、整合性が取れないと判定される。よって、リビジョン番号「１１」のコンテナ定義文書６２の整合性９５は「×」となる。
次に、ルーティングエディタ５４がリビジョン番号「２０」のコンテナ定義文書６２を参照する参照箇所７６「ＸＰａｔｈ：／／ｃｏｎｔａｉｎｅｒｄｅｆ／ｃｏｎｔａｉｎｅｒ／＠ｎａｍｅ」が、リビジョン番号「１１」のコンテナ定義文書６２と同一か否かを判定する。ここでは、参照箇所がコンテナ要素のうち、ｎａｍｅ属性を示している。リビジョン番号「１１」のコンテナ定義文書６２とリビジョン番号「２０」のコンテナ定義文書６２とでは、コンテナ要素のｎａｍｅ属性はいずれも「コンテナＡ」と「コンテナＢ」とであり、変更されていない。したがって、参照箇所は同一であり、整合性が取れると判定される。よって、リビジョン番号「２０」のコンテナ定義文書６２の整合性９５は「○」となる。
【００２３】
以上の処理により、ＸＭＬ文書の参照箇所を記載した参照ルール７０に基づき、リビジョン競合文書における整合性を判定することができる。
また、エディタ２１で文書を作成、編集する際、参照する文書を指定したときに、整合性の判定処理を行うことにより、参照した定義では整合性が取れないことを予め警告することができる。あるいは、エディタ２１で作成、編集する際、参照する文書を選択するときに、予め整合性の判定処理を行い、整合性の取れる文書のみを選択候補に挙げしてもよい。
【００２４】
つまり、文書間リビジョン管理装置１０によれば、既存文書を参照する文書を作成する場合に、参照する既存文書が変更されてリビジョンが変わったときにも、変更前の既存文書と変更後の既存文書との間で整合性を判定することが可能となる。特に、参照関係が多段に渡る場合であっても、間接的に参照している文書間の整合性判定も求められる。
また、文書間リビジョン管理装置１０によれば、リビジョン履歴蓄積部１２を用いることにより、作成時に参照した文書とその文書のリビジョンとを特定することが可能となる。
【００２５】
以上をまとめると、次のようになる。
文書間リビジョン管理装置１０は、文書を参照して新たなＸＭＬ文書を作成する文書処理装置２０と
文書のリビジョン（変更履歴）を管理するリビジョン管理ツール３０との間に介在し、
文書の参照関係のある文書間のリビジョンを記録する
ことを特徴とする。
【００２６】
文書間リビジョン管理装置１０は、文書処理装置２０のエディタ２１毎に、参照する文書と作成・編集する文書の対応関係と参照箇所を参照規則（参照ルール７０）として記述しておくことにより、エディタ２１における文書の参照箇所を特定することを可能とする
ことを特徴とする。
【００２７】
文書間リビジョン管理装置１０は、文書処理装置２０で作成された文書に対して、文書を作成するために直接参照した文書と間接的に参照した文書をリビジョン管理ツール３０から取得し、参照する文書の一覧を提示することを可能とする
ことを特徴とする。
【００２８】
文書間リビジョン管理装置１０は、文書処理装置２０で作成された文書の参照する文書に対して、文書の参照経路が異なるが同じ文書を参照していた場合に、リビジョンの競合を検出する
ことを特徴とする。
【００２９】
文書間リビジョン管理装置１０は、文書処理装置２０の所定のエディタ２１で作成された文書の参照する文書間でリビジョンの競合が検出された場合に、エディタ２１が参照する文書の参照箇所を記載した参照ルール７０に基づいて、異なるリビジョン間で参照箇所の値を判定することにより、リビジョン間で整合性を判定することを可能とする
ことを特徴とする。
【００３０】
次に、文書間リビジョン管理装置１０、文書処理装置２０、リビジョン管理ツール３０のハードウェア構成について説明する。
図１０は、文書間リビジョン管理装置１０、文書処理装置２０、リビジョン管理ツール３０のハードウェア構成の一例を示す図である。
図１０に示すように、文書間リビジョン管理装置１０、文書処理装置２０、リビジョン管理ツール３０は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、ＬＣＤ９０１（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）、キーボード９０２（Ｋ／Ｂ）、通信ボード９１５、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置９２０（固定ディスク装置）の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。磁気ディスク装置９２０は、所定の固定ディスクインタフェースを介して接続される。
【００３１】
ＲＯＭ９１３、磁気ディスク装置９２０は、不揮発性メモリの一例である。ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３とＲＡＭ９１４と磁気ディスク装置９２０とは、記憶装置（メモリ）の一例である。また、キーボード９０２、通信ボード９１５は、入力装置の一例である。また、通信ボード９１５は、通信装置（ネットワークインタフェース）の一例である。さらに、ＬＣＤ９０１は、表示装置の一例である。
【００３２】
磁気ディスク装置９２０又はＲＯＭ９１３などには、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。
【００３３】
プログラム群９２３には、上記の説明において「制御部１１」、「リビジョン履歴蓄積部１２」、「参照文書特定部１３」、「参照文書リスト記憶部１４」、「文書参照ルール記憶部１５」、「リビジョン競合判定部１６」、「エディタ２１」等として説明した機能を実行するソフトウェアやプログラムやその他のプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
ファイル群９２４には、上記の説明において「参照ルール７０」、「対応情報８０」、「参照文書リスト９０」等の情報やデータや信号値や変数値やパラメータが、「ファイル」や「データベース」の各項目として記憶される。「ファイル」や「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵ９１１の動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵ９１１の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【００３４】
また、上記の説明におけるフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、その他光ディスク等の記録媒体やＩＣチップに記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体や電波によりオンライン伝送される。
また、上記の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。また、「〜装置」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。さらに、「〜処理」として説明するものは「〜ステップ」であっても構わない。すなわち、「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、ＲＯＭ９１３等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、上記で述べた「〜部」としてコンピュータ等を機能させるものである。あるいは、上記で述べた「〜部」の手順や方法をコンピュータ等に実行させるものである。
【符号の説明】
【００３５】
１  文書間リビジョン管理システム、１０  文書間リビジョン管理装置、１１  制御部、１２  リビジョン履歴蓄積部、１３  参照文書特定部、１４  参照文書リスト記憶部、１５  文書参照ルール記憶部、１６  リビジョン競合判定部、２０  文書処理装置、２１  エディタ、３０  リビジョン管理ツール、４０  リポジトリ、５１  フローエディタ、５２  コンテナエディタ、５３  コンポーネントエディタ、５４  ルーティングエディタ、６１  フロー定義文書、６２  コンテナ定義文書、６３  コンポーネント定義文書、６４  ルーティング定義文書、７０  参照ルール、７１  ルール名、７２  エディタ名、７３  出力文書名、７４  参照文書名、７５  参照数、７６  参照箇所、８０  対応情報、８１  生成文書、８２  文書名、８３  ファイルパス、８４  リビジョン、８５  エディタ名、８６  参照文書、８７  文書名、８８  ファイルパス、８９  リビジョン、９０  参照文書リスト、９１  参照文書名、９２  ファイルパス、９３  リビジョン、９４  参照エディタ名、９５  整合性。
【図１】
2010211341.tif 000003
【図２】
2010211341.tif 000004
【図３】
2010211341.tif 000005
【図４】
2010211341.tif 000006
【図５】
2010211341.tif 000007
【図６】
2010211341.tif 000008
【図７】
2010211341.tif 000009
【図８】
2010211341.tif 000010
【図９】
2010211341.tif 000011
【図１０】
2010211341.tif 000012