(57)【要約】【課題】  複数文書を１つの文書として画面に表示し、また編集できるようにすることによってユーザの利便性を高める。【解決手段】  文書処理装置２０は、編集部２４と、複数の処理系と、表示制御部１１０と、階層解析部とを含む。ユーザは、マークアップ言語を用いて、さまざまな文書を作成する。この文書をタグセットとよぶ。複数のタグセットは、階層構造を有するようにユーザが編集でき、複数の処理系によって処理される。処理された複数のタグセットは、編集部２４によって統合され１つの文書として画面上の文書表示領域に表示される。画面上に表示された文書は、表示制御部１１０によって、それぞれ境界が表示される。ユーザが画面上に表示された文書を編集する際、指定した部分に相当する文書の境界は、他の境界と識別可能な態様で表示される。【選択図】  図１
2007004627.tif 000002
【特許請求の範囲】
【請求項１】
特定の階層構造を有する複数のタグセットによりそれぞれ記述された部分文書からなる文書を処理する文書処理装置であって、
前記部分文書のそれぞれを処理する複数の処理系と、
前記部分文書のそれぞれに対して、前記部分文書を表示する文書表示領域を割り当て、前記文書表示領域に、対応する部分文書を表示して、ユーザによる前記部分文書の編集を受け付ける編集部と、
を備えることを特徴とする文書処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ処理技術に関し、とくに、複数の文書からなるデータを処理する文書処理装置に関する。
【背景技術】
【０００２】
近年、コンピュータの普及とネットワーク技術の進展に伴い、ネットワークを介した電子情報の交換が盛んになっている。これにより、従来においては紙ベースで行われていた事務処理の多くが、ネットワークベースの処理に置き換えられつつある。
【０００３】
企業においても、個人の知識や情報を組織全体で活用する、いわゆるナレッジマネジメントが、重要な経営手法となってきている。多くの企業においては、社内にデータベースシステムを有し、従業員からの情報を電子ファイル化して蓄積する。その一方で、従業員も、この社内データベースに蓄積されたファイルにネットワークを介してアクセスする。これによって、組織全体としての業務効率の向上が図られる。
【０００４】
この社内データベースに蓄積されるファイルの多くは、ＨＴＭＬ（Hyper Text Markup Language）とよばれる言語によって作成されている。また、近年においては、ＸＭＬ（eXtensible Markup Language）とよばれる言語を用いて、これらのファイルが作成される例も多くなってきている。
【０００５】
ＨＴＭＬは、ウェブページを記述するための言語である。すなわち、ＨＴＭＬは文書ファイルの表示方法を定義するマークアップ言語の一種である。これに対して、ＸＭＬはＨＴＭＬの様に、直接的にウェブページを記述することを目的とする言語というよりは、むしろ、文書ファイルに含まれるデータのデータ構造を定義する機能を有する言語といえる。ＸＭＬによって作成された文書ファイルは、別に表示レイアウト情報を与えることによって、ウェブページとして表示される。すなわち、ＸＭＬ文書においては、データの構造とその表示レイアウトが別々のものとして扱うことができる。ＸＭＬのように、マークアップ言語を生成するための言語はメタ言語ともよばれる。
【０００６】
ＸＭＬは、ネットワークなどを介して他者とデータを共有するのに適した形式として注目されており、ＸＭＬ文書を作成、表示、編集するためのアプリケーションが開発されている（たとえば、特許文献１参照）。ＸＭＬ文書は、文書型定義などにより定義されたボキャブラリ（タグセット）に基づいて作成されている。
【特許文献１】特開２００１−２９０８０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
企業内の多くの部署では、上述したように、ＸＭＬなどの文書を編集するためのアプリケーションを用いて、電子化された文書ファイルが作成され、また、更新がなされる。このような状況のもと、本発明者は以下の課題を認識した。すなわち、文書ファイルが複数のアプリケーションから作成されている場合、その文書ファイルの作成、編集の際に、その都度、対応するアプリケーションを起動するなどして行わなければならないといった課題である。たとえば、ワードプロセッサ機能を有するアプリケーション、表計算機能を有するアプリケーション、描画機能を有するアプリケーションのそれぞれで文書を作成し、１つのファイルに統合して編集したい場合などが考えられる。
【０００８】
本発明はこうした状況に鑑みてなされたものであり、その目的は、複数のタグセットによって作成された文書を処理可能な文書処理装置および文書処理方法を提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明のある態様の文書処理装置は、特定の階層構造を有する複数のタグセットによりそれぞれ記述された部分文書からなる文書を処理する文書処理装置であって、部分文書のそれぞれを処理する複数の処理系と、部分文書のそれぞれに対して、部分文書を表示する文書表示領域を割り当て、文書表示領域に、対応する部分文書を表示して、ユーザによる部分文書の編集を受け付ける編集部と、を備える。
【００１０】
ここで、「特定の階層構造を有する複数のタグセット」とは、個々のタグセットが、その内部に他のタグセットを有するように階層化されていることを含む。また、「タグセットによりそれぞれ記述された部分文書」とは、特定のマークアップ言語またはボキャブラリにより記述された文書などを含む。「部分文書のそれぞれを処理する複数の処理系」とは、部分文書を記述しているタグセットにかかるマークアップ言語またはボキャブラリを解読して、画面に表示するためのソフトウェアなどを含み、たとえば、ＨＴＭＬ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）、ＳＶＧ（Ｓｃａｌａｂｌｅ  Ｖｅｃｔｏｒ  Ｇｒａｐｈｉｃｓ）などの処理系を含む。
【００１１】
なお、以上の構成要素の任意の組合せや、本発明の構成要素や表現、もしくはそれらの一部を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを格納した記録媒体、データ構造などの間で相互に置換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１２】
本発明によれば、複数のタグセットで記述された構造化文書ファイルに含まれるデータを扱う上でのユーザの利便性を向上させる上で効果がある。
【発明を実施するための最良の形態】
【００１３】
まず、本発明の実施形態にかかる文書処理装置の概要について説明する。文書処理装置は、編集部と、複数の処理系と、表示制御部と、階層解析部とを含む。ユーザは、複数のマークアップ言語または複数のボキャブラリを用いて、さまざまな文書を作成する。この個々のマークアップ言語等はタグセットとよばれる。ユーザは、階層構造を有するように複数のタグセットを記述して文章を編集でき、複数のタグセットはそれぞれ対応する処理系によって処理される。処理された複数のタグセットは、編集部によって統合され１つの文書として画面上の文書表示領域に表示される。画面上に表示された文書は、表示制御部によって、それぞれ境界が表示される。ユーザが画面上に表示された文書を編集する際、指定した部分に相当する文書（以下、「部分文書」と表記する。）の境界は、他の境界と識別可能な態様で表示される。
【００１４】
また、階層解析部は、文書に含まれる処理系の階層構造を解析し、表示制御部は、その名称と階層関係を階層表示領域に表示する。表示された階層をユーザが指定することによって、対応する文書の境界が他の境界と識別可能な態様で表示される。同様に、文書表示領域に表示された文書を指定することによって、対応する階層が他の階層と識別可能な態様で表示される。また、文書に含まれるファイルは、ファイル名表示領域にその名称が表示される。前述と同様に、ファイル名表示領域に表示された名称をユーザが指定することによって、対応する文書、もしくは、対応する階層は、他と識別可能な態様で表示される。
【００１５】
また、処理系は、それぞれ複数の文書編集機能を有している。ユーザが文書表示領域に表示された文書を指定した場合、その文書を処理している処理系の文書編集機能が、メニュー表示領域に表示される。また、ユーザが階層表示領域に表示された階層を指定した場合、その階層にかかる処理系の文書編集機能の名称が、メニュー表示領域に表示される。また、ユーザがファイル名表示領域に表示された階層を指定した場合、そのファイル名にかかる処理系の文書編集機能の名称が、メニュー表示領域に表示される。いずれの場合も、指定にかかる処理系より上位の階層にかかる処理系の文書編集機能の名称も、あわせて、メニュー表示領域に表示してもよい。
【００１６】
以下、本実施例における文書処理装置の構成、動作について説明する。
【００１７】
図１は、本発明の実施形態に関する文書処理装置２０の構成を示す図である。文書処理装置２０は、文書内のデータが階層構造を有する複数の構成要素に分類された構造化文書を処理するが、本実施形態では構造化文書の一例としてＸＭＬ文書を処理する例について説明する。文書処理装置２０は、主制御ユニット２２、編集部２４、表示制御部１１０、文書オブジェクトモデルユニット３０（Ｄｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ  Ｕｎｉｔ。以下、「ＤＯＭユニット３０」と略称する。）、処理系で代表される、カスケーディングスタイルシートユニット４０（Ｃａｓｃａｄｉｎｇ  Ｓｔｙｌｅ  Ｓｈｅｅｔ  Ｕｎｉｔ。以下、「ＣＳＳユニット４０」と略称する。）、ＨＴＭＬユニット５０、ＳＶＧユニット６０、及びボキャブラリコネクションユニット８０（Ｖｏｃａｂｕｌａｒｙ  Ｃｏｎｎｅｃｔｉｏｎ  Ｕｎｉｔ。以下、「ＶＣユニット８０」と略称する。）、とを備える。これらの構成は、ハードウエアコンポーネントでいえば、任意のコンピュータのＣＰＵ、メモリ、メモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【００１８】
主制御ユニット２２は、プラグインのロードや、コマンド実行のフレームワークを提供する。編集部２４は、ＸＭＬ文書を編集するためのフレームワークを提供する。文書処理装置２０における文書の表示及び編集機能は、プラグインにより実現されており、文書の種別に応じて必要なプラグインが主制御ユニット２２又は編集部２４によりロードされる。主制御ユニット２２又は編集部２４は、処理対象となるＸＭＬ文書の名前空間を参照して、ＸＭＬ文書がいずれのボキャブラリにより記述されているかを判別し、そのボキャブラリに対応した表示又は編集用のプラグインをロードして表示や編集を実行させる。例えば、文書処理装置２０には、ＨＴＭＬ文書の表示及び編集を行うＨＴＭＬユニット５０、ＳＶＧ文書の表示及び編集を行うＳＶＧユニット６０など、ボキャブラリ（タグセット）ごとに表示系及び編集系がプラグインとして実装されており、ＨＴＭＬ文書を編集するときはＨＴＭＬユニット５０が、ＳＶＧ文書を編集するときはＳＶＧユニット６０が、それぞれロードされる。後述するように、ＨＴＭＬとＳＶＧの双方の構成要素を含む複合文書が処理対象となっている場合は、ＨＴＭＬユニット５０とＳＶＧユニット６０の双方がロードされる。また、上述のプラグインをロードする際に、プラグインにかかる機能をメニュー表示領域に表示してもよい。
【００１９】
このような構成によれば、ユーザは、必要な機能のみを選択してインストールし、後から適宜機能を追加又は削除することができるので、プログラムを格納するハードディスクなどの記録媒体の記憶領域を有効に活用することができ、また、プログラム実行時にも、メモリの浪費を防ぐことができる。また、機能拡張性に優れており、開発主体としても、プラグインの形で新たなボキャブラリに対応することが可能なので開発が容易となり、ユーザとしても、プラグインの追加により容易かつ低コストにて機能を追加することができる。
【００２０】
編集部２４は、ユーザインターフェースを介してユーザから編集指示のイベントを受け付け、そのイベントを適切なプラグインなどに通知するともに、イベントの再実行（リドゥ）又は実行の取消（アンドゥ）などの処理を制御する。また、ユーザの編集対象となる文書を読み込んだ際に、文書に含まれる部分文書を解析する。具体的には、部分文書を処理するための処理系を選択する。また、部分文書にかかるタグセットの階層構造を解析する。また、部分文書のそれぞれに対して、部分文書を表示する文書表示領域を割り当る。割り当てられた文書表示領域に、対応する部分文書を表示して、ユーザによる部分文書の編集を受け付ける。詳細は後述する。
【００２１】
表示制御部１１０は、編集部２４を介して受け付けたユーザからの指示にもとづいて、画面上の表示を制御する。表示制御部１１０は、文書表示領域の境界を表示する。詳細は後述する。
【００２２】
ＤＯＭユニット３０は、ＤＯＭ提供部３２、ＤＯＭ生成部３４、及び出力部３６を含み、ＸＭＬ文書をデータとして扱うときのアクセス方法を提供するために定められた文書オブジェクトモデル（Ｄｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ。以下、「ＤＯＭ」と略称する。）に準拠した機能を実現する。ＤＯＭ提供部３２は、編集部２４に定義されているインタフェースを満たすＤＯＭの実装である。ＤＯＭ生成部３４は、ＸＭＬ文書からＤＯＭツリーを生成する。後述するように、処理対象となるＸＭＬ文書が、ＶＣユニット８０により他のボキャブラリにマッピングされる場合は、マッピング元のＸＭＬ文書に対応するソースツリーと、マッピング先のＸＭＬ文書に対応するデスティネーションツリーが生成される。出力部３６は、例えば編集終了時に、ＤＯＭツリーをＸＭＬ文書として出力する。
【００２３】
ＣＳＳユニット４０は、ＣＳＳ解析部４２、ＣＳＳ提供部４４、及びレンダリング部４６を含み、ＣＳＳに準拠した表示機能を提供する。ＣＳＳとは、ＨＴＭＬの表示のスタイルを指定するための言語であって、ＨＴＭＬユニット５０に付随する子処理系にあたる。ＣＳＳは、フォント、色の指定などを行うことができる。ＣＳＳ解析部４２は、ＣＳＳの構文を解析するパーサの機能を有する。ＣＳＳ提供部４４は、ＣＳＳオブジェクトの実装であり、ＤＯＭツリーに対してＣＳＳのカスケード処理を行う。レンダリング部４６は、ＣＳＳのレンダリングエンジンであり、ＣＳＳを用いてレイアウトされるＨＴＭＬなどのボキャブラリで記述された文書の表示、描画に用いられる。
【００２４】
ＨＴＭＬユニット５０は、ＨＴＭＬにより記述された文書を表示又は編集する。ＳＶＧユニット６０は、ＳＶＧにより記述された文書を表示又は編集する。これらの表示／編集系は、プラグインの形で実現されており、それぞれ、文書を表示するＨＴＭＬ表示部（Canvas）５６、ＳＶＧ表示部６６、編集指示を含むイベントを送受信するＨＴＭＬ制御部（Editlet）５２、ＳＶＧ制御部６２、編集コマンドを受けてＤＯＭに対して編集を行うＨＴＭＬ編集部（Zone）５４、ＳＶＧ編集部６４を備える。ＨＴＭＬ制御部５２又はＳＶＧ制御部６２が外部からＤＯＭツリーの編集コマンドを受け付けると、ＨＴＭＬ編集部５４又はＳＶＧ編集部６４がＤＯＭツリーを変更し、ＨＴＭＬ表示部５６又はＳＶＧ表示部６６が表示を更新する。これらは、ＭＶＣ（Model-View-Controller）と呼ばれるフレームワークに類似する構成をとっており、概ね、ＨＴＭＬ表示部５６及びＳＶＧ表示部６６が「View」に、ＨＴＭＬ制御部５２及びＳＶＧ制御部６２が「Controller」に、ＨＴＭＬ編集部５４及びＳＶＧ編集部６４とＤＯＭの実体が「Model」に、それぞれ対応する。本実施形態の文書処理装置２０では、ＸＭＬ文書をツリー表示形式で編集するだけでなく、それぞれのボキャブラリに応じた編集を可能とする。例えば、ＨＴＭＬユニット５０は、ＨＴＭＬ文書をワードプロセッサに類似した方式で編集するためのユーザインターフェースを提供し、ＳＶＧユニット６０は、ＳＶＧ文書を画像描画ツールに類似した方式で編集するためのユーザインターフェースを提供する。
【００２５】
ＶＣユニット８０は、マッピング部８２、定義ファイル取得部８４、及び定義ファイル生成部８６を含み、あるボキャブラリにより記述された文書を、他のボキャブラリにマッピングすることにより、マッピング先のボキャブラリに対応した表示編集用プラグインで文書を表示又は編集するためのフレームワークを提供する。本実施形態では、この機能を、ボキャブラリコネクション（Vocabulary Connection：ＶＣ）と呼ぶ。定義ファイル取得部８４は、マッピングの定義を記述したスクリプトファイルを取得する。この定義ファイルは、ノードごとに、ノード間の対応（コネクション）を記述する。このとき、各ノードの要素値や属性値の編集の可否を指定してもよい。また、ノードの要素値や属性値を用いた演算式を記述してもよい。これらの機能については、後で詳述する。マッピング部８２は、定義ファイル取得部８４が取得したスクリプトファイルを参照して、ＤＯＭ生成部３４にデスティネーションツリーを生成させ、ソースツリーとデスティネーションツリーの対応関係を管理する。定義ファイル生成部８６は、ユーザが定義ファイルを生成するためのグラフィカルユーザインターフェースを提供する。
【００２６】
ＶＣユニット８０は、ソースツリーとデスティネーションツリーの間のコネクションを監視し、表示を担当するプラグインにより提供されるユーザインタフェースを介してユーザから編集指示を受け付けると、まずソースツリーの該当するノードを変更する。ＤＯＭユニット３０が、ソースツリーが変更された旨のミューテーションイベントを発行すると、ＶＣユニット８０は、そのミューテーションイベントを受けて、ソースツリーの変更にデスティネーションツリーを同期させるべく、変更されたノードに対応するデスティネーションツリーのノードを変更する。デスティネーションツリーを表示／編集するプラグイン、例えばＨＴＭＬユニット５０は、デスティネーションツリーが変更された旨のミューテーションイベントを受けて、変更されたデスティネーションツリーを参照して表示を更新する。このような構成により、少数のユーザにより利用されるローカルなボキャブラリにより記述された文書であっても、他のメジャーなボキャブラリに変換することで、文書を表示することができるとともに、編集環境が提供される。
【００２７】
文書処理装置２０により文書を表示又は編集する動作について説明する。文書処理装置２０が処理対象となる文書を読み込むと、ＤＯＭ生成部３４が、そのＸＭＬ文書からＤＯＭツリーを生成する。また、主制御ユニット２２又は編集部２４は、名前空間を参照して文書を記述しているボキャブラリを判別する。そのボキャブラリに対応したプラグインが文書処理装置２０にインストールされている場合は、そのプラグインをロードして、文書を表示／編集させる。プラグインがインストールされていない場合は、マッピングの定義ファイルが存在するか否かを確認する。定義ファイルが存在する場合、定義ファイル取得部８４が定義ファイルを取得し、その定義に従って、デスティネーションツリーが生成され、マッピング先のボキャブラリに対応するプラグインにより文書が表示／編集される。複数のボキャブラリを含む複合文書である場合は、後述するように、それぞれのボキャブラリに対応したプラグインにより、文書の該当箇所がそれぞれ表示／編集される。定義ファイルが存在しない場合は、文書のソース又はツリー構造を表示し、その表示画面において編集が行われる。
【００２８】
図２は、図１の文書処理装置２０の処理対象となるＸＭＬ文書の例を示す図である。このＸＭＬ文書は、生徒の成績データを管理するために用いられる。ＸＭＬ文書のトップノードである構成要素「成績」は、配下に、生徒ごとに設けられた構成要素「生徒」を複数有する。構成要素「生徒」は、属性値「名前」と、子要素「国語」、「数学」、「理科」、「社会」を有する。属性値「名前」は、生徒の名前を格納する。構成要素「国語」、「数学」、「理科」、「社会」は、それぞれ、国語、数学、理科、社会の成績を格納する。例えば、名前が「Ａ」である生徒の国語の成績は「９０」、数学の成績は「５０」、理科の成績は「７５」、社会の成績は「６０」である。以下、この文書で使用されているボキャブラリ（タグセット）を、「成績管理ボキャブラリ」と呼ぶ。
【００２９】
本実施形態の文書処理装置２０は、成績管理ボキャブラリの表示／編集に対応したプラグインを有しないので、この文書をソース表示、ツリー表示以外の方法で表示するためには、前述したＶＣ機能が用いられる。すなわち、成績管理ボキャブラリを、プラグインが用意された別のボキャブラリ、例えば、ＨＴＭＬやＳＶＧなどにマッピングするための定義ファイルを用意する必要がある。ユーザ自身が定義ファイルを作成するためのユーザインターフェースについては後述することにして、ここでは、既に定義ファイルが用意されているとして説明を進める。
【００３０】
図３は、図２に示したＸＭＬ文書をＨＴＭＬで記述された表にマッピングする例を示す図である。図３の例では、成績管理ボキャブラリの「生徒」ノードを、ＨＴＭＬにおける表（「TABLE」ノード）の行（「TR」ノード）に対応づけ、各行の第１列には属性値「名前」を、第２列には「国語」ノードの要素値を、第３列には「数学」ノードの要素値を、第４列には「理科」ノードの要素値を、第５列には「社会」ノードの要素値を、それぞれ対応付ける。これにより、図２に示したＸＭＬ文書を、ＨＴＭＬの表形式で表示することができる。また、これらの属性値及び要素値は、編集可能であることが指定されており、ユーザがＨＴＭＬによる表示画面上で、ＨＴＭＬユニット５０の編集機能により、これらの値を編集することができる。第６列には、国語、数学、理科、社会の成績の加重平均を算出する演算式が指定されており、生徒の成績の平均点が表示される。このように、定義ファイルに演算式を指定可能とすることにより、より柔軟な表示が可能となり、編集時のユーザの利便性を向上させることができる。なお、第６列は、編集不可であることが指定されており、平均点のみを個別に編集することができないようにしている。このように、マッピング定義において、編集の可否を指定可能とすることにより、ユーザの誤操作を防ぐことができる。
【００３１】
図４（ａ）及び図４（ｂ）は、図２に示したＸＭＬ文書を図３に示した表にマッピングするための定義ファイルの例を示す。この定義ファイルは、定義ファイル用に定義されたスクリプト言語により記述される。定義ファイルには、コマンドの定義と、表示のテンプレートが記述されている。図４（ａ）（ｂ）の例では、コマンドとして、「生徒の追加」と「生徒の削除」が定義されており、それぞれ、ソースツリーにノード「生徒」を挿入する操作と、ソースツリーからノード「生徒」を削除する操作が対応付けられている。また、テンプレートとして、表の第１行に「名前」、「国語」などの見出しが表示され、第２行以降に、ノード「生徒」の内容が表示されることが記述されている。ノード「生徒」の内容を表示するテンプレート中、「text-of」と記述された項は「編集可能」であることを意味し、「value-of」と記述された項は「編集不可能」であることを意味する。また、ノード「生徒」の内容を表示する行のうち、第６列には、「(src:国語 + src:数学 + src:理科 + src:社会) div 4」という計算式が記述されており、生徒の成績の平均が表示されることを意味する。
【００３２】
図５は、図２に示した成績管理ボキャブラリで記述されたＸＭＬ文書を、図３に示した対応によりＨＴＭＬにマッピングして表示した画面の例を示す。表９０の各行には、左から、各生徒の名前、国語の成績、数学の成績、理科の成績、社会の成績、及び平均点が表示されている。ユーザは、この画面上で、ＸＭＬ文書を編集することができる。たとえば、第２行第３列の値を「７０」に変更すると、このノードに対応するソースツリーの要素値、すなわち、生徒「Ｂ」の数学の成績が「７０」に変更される。このとき、ＶＣユニット８０は、デスティネーションツリーをソースツリーに追従させるべく、デスティネーションツリーの該当箇所を変更し、ＨＴＭＬユニット５０が、変更されたデスティネーションツリーに基づいて表示を更新する。したがって、画面上の表においても、生徒「Ｂ」の数学の成績が「７０」に変更され、更に、平均点が「５５」に変更される。
【００３３】
図５に示した画面には、図４（ａ）（ｂ）に示した定義ファイルに定義されたように、「生徒の追加」及び「生徒の削除」のコマンドがメニューに表示される。ユーザがこれらのコマンドを選択すると、ソースツリーにおいて、ノード「生徒」が追加又は削除される。このように、本実施形態の文書処理装置２０では、階層構造の末端の構成要素の要素値を編集するのみではなく、階層構造を編集することも可能である。このようなツリー構造の編集機能は、コマンドの形でユーザに提供されてもよい。また、例えば、表の行を追加又は削除するコマンドが、ノード「生徒」を追加又は削除する操作に対応づけられてもよい。また、他のボキャブラリを埋め込むコマンドがユーザに提供されてもよい。この表を入力用テンプレートとして、穴埋め形式で新たな生徒の成績データを追加することもできる。以上のように、ＶＣ機能により、ＨＴＭＬユニット５０の表示／編集機能を利用しつつ、成績管理ボキャブラリで記述された文書を編集することが可能となる。
【００３４】
図６は、ユーザが定義ファイルを生成するために、図１の定義ファイル生成部８６がユーザに提示するグラフィカルユーザインタフェースの例を示す図である。画面左側の第１領域９１には、マッピング元のＸＭＬ文書がツリー表示されている。画面右側の第２領域９２には、マッピング先のＸＭＬ文書の画面レイアウトが示されている。この画面レイアウトは、ＨＴＭＬユニット５０により編集可能となっており、ユーザは、画面右側の第２領域９２において、文書を表示するための画面レイアウトを作成する。そして、例えば、マウスなどのポインティングデバイスにより、画面左側の第１領域９１に表示されたマッピング元のＸＭＬ文書のノードを、画面右側の第２領域９２に表示されたＨＴＭＬによる画面レイアウト中へドラッグ＆ドロップ操作を行うことにより、マッピング元のノードと、マッピング先のノードとのコネクションが指定される。例えば、要素「生徒」の子要素である「数学」を、ＨＴＭＬ画面の表９０の第１行第３列にドロップすると、「数学」ノードと、３列目の「ＴＤ」ノードの間にコネクションが張られる。各ノードには、編集の可否が指定できるようになっている。また、表示画面中には、演算式を埋め込むこともできる。画面の編集が終わると、定義ファイル生成部８６は、画面レイアウトとノード間のコネクションを記述した定義ファイルを生成する。
【００３５】
ＸＨＴＭＬ、ＭａｔｈＭＬ、ＳＶＧなどの主要なボキャブラリに対応したビューワやエディタは既に開発されているが、図２に示した文書のようなオリジナルなボキャブラリで記述された文書に対応したビューワやエディタを開発するのは現実的でない。しかし、上記のように、他のボキャブラリにマッピングするための定義ファイルを作成すれば、ビューワやエディタを開発しなくても、ＶＣ機能を利用して、オリジナルなボキャブラリで記述された文書を表示・編集することができる。
【００３６】
図７は、図１の定義ファイル生成部８６により生成された画面レイアウトの他の例を示す図である。図７の例では、成績管理ボキャブラリで記述されたＸＭＬ文書を表示するための画面に、表９０と、円グラフ９３が作成されている。この円グラフ９３は、ＳＶＧにより記述される。後述するように、本実施形態の文書処理装置２０は、一つのＸＭＬ文書内に複数のボキャブラリを含む複合文書を処理することができるので、この例のように、ＨＴＭＬで記述された表９０と、ＳＶＧで記述された円グラフ９３とを、一つの画面上に表示することができる。
【００３７】
図８は、図１の文書処理装置２０によるＸＭＬ文書の編集画面の一例を示す図である。図８の例では、一つの画面が複数に分割されており、それぞれの領域において、処理対象となるＸＭＬ文書を異なる複数の表示形式により表示している。第３領域９４には、文書のソースが表示されており、第４領域９５には、文書のツリー構造が表示されており、第５領域９６には、図５に示したＨＴＭＬにより記述された表が表示されている。これらのいずれの画面上においても、文書の編集が可能であり、いずれかの画面上でユーザが編集を行うと、ソースツリーが変更され、それぞれの画面の表示を担当するプラグインが、ソースツリーの変更を反映すべく画面を更新する。具体的には、ソースツリーの変更を通知するミューテーションイベントのリスナーとして、それぞれの編集画面の表示を担当するプラグインの表示部を登録しておき、いずれかのプラグイン又はＶＣユニット８０によりソースツリーが変更されたときに、編集画面を表示中の全ての表示部が、発行されたミューテーションイベントを受け取って画面を更新する。このとき、プラグインがＶＣ機能により表示を行っている場合は、ＶＣユニット８０がソースツリーの変更に追従してデスティネーションツリーを変更した後、変更されたデスティネーションツリーを参照してプラグインの表示部が画面を更新する。
【００３８】
例えば、ソース表示及びツリー表示を、専用のプラグインにより実現している場合は、ソース表示用プラグインとツリー表示用プラグインは、デスティネーションツリーを用いず、直接ソースツリーを参照して表示を行う。この場合、いずれかの画面において編集が行われると、ソース表示用プラグインとツリー表示用プラグインは、変更されたソースツリーを参照して画面を更新し、第５領域９６の画面を担当しているＨＴＭＬユニット５０は、ソースツリーの変更に追従して変更されたデスティネーションツリーを参照して画面を更新する。
【００３９】
ソース表示及びツリー表示は、ＶＣ機能を利用して実現することもできる。すなわち、ソース、ツリー構造をＨＴＭＬによりレイアウトし、そのＨＴＭＬにＸＭＬ文書をマッピングして、ＨＴＭＬユニット５０により表示してもよい。この場合、ソース形式、ツリー形式、表形式の３つのデスティネーションツリーが生成されることになる。いずれかの画面において編集が行われると、ＶＣユニット８０は、ソースツリーを変更した後、ソース形式、ツリー形式、表形式の３つのデスティネーションツリーをそれぞれ変更し、ＨＴＭＬユニット５０は、それらのデスティネーションツリーを参照して、３つの画面を更新する。
【００４０】
このように、一つの画面上に複数の表示形式で文書を表示することにより、ユーザの利便性を向上させることができる。例えば、ユーザは、ソース表示又はツリー表示により文書の階層構造を把握しつつ、表９０などを用いて視覚的に分かりやすい形式で文書を表示し、編集することができる。上記の例では、一つの画面を分割して複数の表示形式による画面を同時に表示したが、一つの画面に一つの表示形式による画面を表示し、表示形式をユーザの指示により切り替え可能としてもよい。この場合、主制御ユニット２２が、ユーザから表示形式の切り替え要求を受け付け、各プラグインに指示して表示を切り替える。
【００４１】
図９は、文書処理装置２０により編集されるＸＭＬ文書の他の例を示す図である。図９に示したＸＭＬ文書では、ＳＶＧ文書の「foreignObject」タグの中にＸＨＴＭＬ文書が埋め込まれており、さらに、ＸＨＴＭＬ文書の中にＭａｔｈＭＬで記述された数式が入っている。このような場合、編集部２４が、名前空間を参照して、適切な表示系に描画作業を振り分ける。図９の例では、編集部２４は、まず、ＳＶＧユニット６０に四角形を描画させ、つづいて、ＨＴＭＬユニット５０にＸＨＴＭＬ文書を描画させる。さらに、図示しないＭａｔｈＭＬユニットに、数式を描画させる。こうして、複数のボキャブラリを包含する複合文書が適切に表示される。表示結果を図１０に示す。
【００４２】
文書編集中、カーソル（キャリッジ）の位置に応じて、表示されるメニューを切り替えてもよい。すなわち、カーソルが、ＳＶＧ文書が表示された領域内に存在するときは、ＳＶＧユニット６０が提供するメニュー、又はＳＶＧ文書をマッピングするための定義ファイルに定義されたコマンドを表示し、カーソルが、ＸＨＴＭＬ文書が表示された領域内に存在するときは、ＨＴＭＬユニット５０が提供するメニュー、又はＸＨＴＭＬ文書をマッピングするための定義ファイルに定義されたコマンドを表示する。これにより、編集位置に応じて適切なユーザインターフェースを提供することができる。
【００４３】
複合文書において、あるボキャブラリに対応する適切なプラグイン又はマッピング定義ファイルがなかった場合は、そのボキャブラリにより記述された部分は、ソース表示又はツリー表示されてもよい。従来、ある文書に他の文書を埋め込んだ複合文書を開くとき、埋め込まれた文書を表示するアプリケーションがインストールされていないと、その内容を表示することができなかったが、本実施形態では、表示用のアプリケーションが存在しなくても、テキストデータにより構成されたＸＭＬ文書をソース表示又はツリー表示することにより内容を把握することができる。これは、テキストベースであるＸＭＬなどの文書ならではの特徴といえる。
【００４４】
データがテキストベースで記述されることの他の利点として、例えば、複合文書中の、あるボキャブラリにより記述される部分において、同一文書内の他のボキャブラリで記述された部分のデータを参照してもよい。また、文書内で検索を実行する時に、ＳＶＧなどの図に埋め込まれた文字列も検索対象とすることができる。
【００４５】
あるボキャブラリにより記述された文書内に、他のボキャブラリのタグを用いてもよい。このＸＭＬ文書は、妥当（valid）ではないが、整形式（well-formed）であれば、有効なＸＭＬ文書として処理可能である。この場合、挿入された他のボキャブラリのタグは、定義ファイルによりマッピングされてもよい。例えば、ＸＨＴＭＬ文書中に、「重要」、「最重要」などのタグを使用し、これらのタグで囲まれた部分を強調表示してもよいし、重要度の順にソートして表示してもよい。
【００４６】
図１０に示した編集画面において、ユーザにより文書が編集されると、編集された部分を担当するプラグイン又はＶＣユニット８０がソースツリーを変更する。ソースツリーには、ノードごとにミューテーションイベントのリスナーを登録できるようになっており、通常は、各ノードが属するボキャブラリに対応したプラグインの表示部又はＶＣユニット８０がリスナーとして登録される。ＤＯＭ提供部３２は、ソースツリーが変更されると、変更されたノードから上位の階層へたどって、登録されたリスナーがあれば、そのリスナーへミューテーションイベントを発行する。例えば、図９に示した文書において、＜ｈｔｍｌ＞ノードの下位のノードが変更された場合、＜ｈｔｍｌ＞ノードにリスナーとして登録されたＨＴＭＬユニット５０にミューテーションイベントが通知されるとともに、その上位の＜ｓｖｇ＞ノードにリスナーとして登録されたＳＶＧユニット６０にもミューテーションイベントが通知される。このとき、ＨＴＭＬユニット５０は、変更されたソースツリーを参照して表示を更新する。ＳＶＧユニット６０は、自身のボキャブラリに属するノードが変更されていないので、ミューテーションイベントを無視してもよい。
【００４７】
編集の内容によっては、ＨＴＭＬユニット５０による表示の更新に伴って、全体のレイアウトが変わる可能性がある。この場合は、画面のレイアウトを管理する構成、例えば最上位のノードの表示を担当するプラグインにより、プラグインごとの表示領域のレイアウトが更新される。例えば、ＨＴＭＬユニット５０による表示領域が以前より大きくなった場合、ＨＴＭＬユニット５０は、まず自身の担当する部分を描画して、表示領域の大きさを決定する。そして、画面のレイアウトを管理する構成に、変更後の表示領域の大きさを通知し、レイアウトの更新を依頼する。画面のレイアウトを管理する構成は、通知を受けて、プラグインごとの表示領域を再レイアウトする。こうして、編集された部分の表示が適切に更新されるとともに、画面全体のレイアウトが更新される。
【００４８】
ここで、編集部２４について詳細に説明する。編集部２４は、図示しない階層解析部を含む。編集部２４は、特定の階層構造を有する複数のタグセットによりそれぞれ記述された部分文書からなる文書を編集するためのブロックである。階層解析部は、読み込まれた文書にかかるタグセットの階層構造を解析する。編集部２４は、解析結果にもとづいて、それぞれのタグセットを処理する処理系に指令を与える。また、編集部２４は、部分文書のそれぞれに対して、部分文書を表示する文書表示領域を割り当て、文書表示領域に、対応する部分文書を表示して、ユーザによる部分文書の編集を受け付ける。
【００４９】
ここで、表示制御部１１０について詳細に説明する。図１１は、図１の表示制御部１１０の構成例を示す図である。表示制御部１１０は、境界表示部１１２と、名称表示部１１４と、階層構造表示部１１６と、強調処理部１１８と、カーソル位置判定部１２０と、メニュー表示部１２２を含む。
【００５０】
境界表示部１１２は、部分文書の文書表示領域の境界を表示する。また、境界表示部１１２は、編集部２４によって編集の対象となっている部分文書のうち、少なくとも最上位の階層のタグセットにかかる部分文書に割り当てられた文書表示領域３１０の境界を表示する。このさい、編集の対象となっている部分文書に含まれる全ての階層における境界をあわせて表示してもよい。
【００５１】
階層構造表示部１１６は、編集部において編集される文書と並列して、同一画面上に、編集部２４における図示しない階層解析部によって解析されたそれぞれの階層のタグセットにかかる処理系の名称を階層表示領域に表示する。
【００５２】
名称表示部１１４は、文書に含まれる複数のファイルのそれぞれの名称をファイル名表示領域に表示する。
【００５３】
メニュー表示部１２２は、編集部２４の階層解析部によって解析された階層構造にしたがって、同一画面上に、タグセットにかかる処理系が提供する文書編集機能の名称をメニュー表示領域に表示する。また、メニュー表示部１２２は、編集部において編集の対象となっている部分文書に対応するタグセットより上位の階層のタグセットにかかる処理系が提供する文書編集機能の名称も、あわせて表示してもよい。メニュー表示領域は、基本メニューと、プラグインされた機能にかかるメニューとを表示する領域を含む。たとえば、基本メニューには、文書の保存、読出し、単語の検索、置換などの機能が含まれる。また、プラグインされた機能にかかるメニューには、上付文字とする機能、指定された領域に存在する数値を合計するための機能、ユーザによるマクロ機能などが含まれる。
【００５４】
カーソル位置判定部１２０は、ユーザが編集処理を行う際にマウスなどを操作することによって表示されたポインタ、または、カーソルなどの画面上の位置を判定する。ユーザは、画面に表示された複数の部分文書のうち、編集を行いたい部分文書が表示されている位置にこのポインタ等を移動し、マウスのボタンを押し下げるなどの行為によって、その指定された部分文書を編集対象とできる。以下においては、説明を簡易なものとするために、「ユーザが編集処理を行う際にマウスなどを操作することによって画面上に表示されたポインタ、または、カーソルを移動し、所定の個所を選択して指定する」ことを、単に「ユーザが指定する」または「ユーザの指定による」などと略記して表現することとする。
【００５５】
強調処理部１１８は、境界表示部１１２によって部分文書の境界を表示する際に、他の文書表示領域の境界と比べて識別可能な態様で表示する。また、階層構造表示部１１６において表示する編集の対象となっている部分文書の階層について、その部分文書に対応する処理系にかかる階層を他の処理系にかかる階層と比べて識別可能な態様で階層表示領域に表示する。また、名称表示部１１４において表示する編集の対象となっている部分文書について、その部分文書に対応するファイルの名称を他のファイルの名称と識別可能な態様でファイル名表示領域に表示する。また、メニュー表示部１２２において文書編集機能の名称を表示する際に、編集部において編集の対象となっている部分文書に対応する処理系が提供する文書編集機能の名称を他の文書編集機能の名称と識別可能な態様でメニュー表示領域に表示する。
【００５６】
ここで、識別可能な態様とは、たとえば、境界を実線と破線とで分けて表示し、または、境界の線の色彩、濃淡を変えて表示し、または、境界の線の太さを変えて表示することなどを含む。また、強弱をつけて表示することなどを含み、たとえば、実線と破線で分けて表示することによって識別可能な態様としてもよく、また、色彩、濃淡に変化をつけて表示することによって識別可能な態様としてもよい。また、一方の領域の背景を、他方の領域の背景とは異なるように、特定の色彩、もしくは模様により描画してもい。また、一方を表示し、他方を表示しないことによって識別可能な態様としてもよい。
【００５７】
また、強調処理部１１８は、階層構造表示部１１６によって行われる表示処理と連動して、ユーザの指定による階層に対応した部分文書の文書表示領域の境界を他の文書表示領域の境界と比べて識別可能な態様で表示する。さらに、対応するファイルの名称も、他のファイルの名称と比べて識別可能な態様でファイル名表示領域に、連動して表示する。
【００５８】
また、強調処理部１１８は、名称表示部１１４によって行われる表示処理と連動して、ユーザの指定によるファイルの名称に対応した部分文書の境界を他の部分文書の境界と比べて識別可能な態様で表示する。さらに、指定されたファイルの名称に対応する部分文書にかかる処理系を示す階層も、他の処理系にかかる階層と比べて識別可能な態様で階層表示領域に、連動して表示する。
【００５９】
また、強調処理部１１８は、ユーザがメニュー指定動作を行う際のメニュー表示領域における強調処理も行う。具体的には、ユーザによるメニュー指定動作中に、すでにユーザによって指定されていた部分文書、もしくは、部分文書にかかる階層、または、部分文書に含まれるファイルについての強調処理に連動して、対応する処理系が提供する文書編集機能の名称についてもあわせて強調処理を行う。
【００６０】
以上のような構成をとることにより、画面に表示されている複数の部分文書、もしくは、階層表示領域に表示されている処理系の階層構造、または、ファイル名表示領域に表示されているファイル名のいずれかをユーザが指定することによって、それぞれ対応する部分文書、階層、ファイル名をそれ以外の表示と明瞭に区別できるように表示することができる。また、他の表示と明瞭に区別することができるので編集が容易となり、ユーザの利便性を向上することができる。
【００６１】
以下、表示制御部１１０による動作の結果表示される画面の例について、図１２（ａ）〜（ｅ）を用いて説明する。まずはじめに、図１２（ａ）を用いて、表示される画面の全体について説明する。つぎに、図１２（ｂ）を用いて、文書を表示する領域において、各文書の境界をすべて表示した場合について説明する。つぎに、図１２（ｃ）と図１２（ｄ）を用いて、文書を表示する領域においていずれかの部分文書が指定された場合、その指定と連動して、対応する階層と、対応するファイル名とが強調して表示される場合について説明する。最後に、図１２（ｅ）を用いて、それぞれの処理系が提供する文書編集機能をメニュー表示領域に表示した場合について説明する。
【００６２】
図１２（ａ）は、図１１の表示制御部１１０の動作の結果表示される画面の第１の表示例を示す図である。第１の表示例において、画面は、ランチャ表示領域３００と、文書表示領域３１０と、階層表示領域３２０と、ファイル名表示領域３３０と、メニュー表示領域３４０で代表される第１メニュー表示領域３４２と第２メニュー表示領域３４４とを含む。
【００６３】
なお、ランチャ表示領域３００は、「Ｌａｕｎｃｈｅｒ」と表示された領域を起点とした、画面下方までの領域を含む。また、文書表示領域３１０は、「Ｄｏｃｕｍｅｎｔ  Ｖｉｅｗ」と表示された領域を起点とした、画面下方までの領域を含む。また、階層表示領域３２０は、「Ｃｏｍｐｏｎｅｎｔｓ」と表示された領域を起点とした、画面下方までの領域を含む。また、ファイル名表示領域３３０は、「Ｆｉｌｅｓ」と表示された領域を起点とした、画面下方までの領域を含む。
【００６４】
また、メニュー表示領域３４０は、図１２（ａ）中において破線で囲った部分の領域であって、「Ｆｉｌｅ」と、「Ｅｄｉｔ」と、「Ｓｈｏｗ」と、「Ｆａｖｏｒｉｔｅ」と、「Ｔｏｏｌｓ」と、「Ｈｅｌｐ」と、「Ｉｎｓｅｒｔ」、「Ｆｏｒｍａｔ」と、「Ｓｅｃｔｉｏｎ」と、「Ｇｒａｐｈ」と、「Ｈｅｌｐ」と、「Ｄｅｂｕｇ」と、の名称が表示されている領域を含む。また、第１メニュー表示領域３４２は、メニュー表示領域３４０のうち、基本メニューを表示するための領域である。基本メニューは、「Ｆｉｌｅ」と、「Ｅｄｉｔ」と、「Ｓｈｏｗ」と、「Ｆａｖｏｒｉｔｅ」と、「Ｔｏｏｌｓ」と、「Ｈｅｌｐ」と、を含む。また、第２メニュー表示領域３４４は、プラグインされた機能を表示するための領域である。ここでは、プラグインされた機能として、「Ｉｎｓｅｒｔ」と、「Ｆｏｒｍａｔ」と、「Ｓｅｃｔｉｏｎ」と、「Ｇｒａｐｈ」と、「Ｈｅｌｐ」と、「Ｄｅｂｕｇ」と、を含む。
【００６５】
ランチャ表示領域３００は、テンプレート表示領域３０２と、ブックマーク表示領域３０６とヒストリー表示領域３０８とを含む領域である。ここで、ランチャとは、各種処理系を用いた文書の編集を補助するための機能を含み、ランチャ表示領域３００とは、文書の編集を補助するための機能の名称を表示する領域を含む。
【００６６】
また、テンプレートとは、タグセットのひな形を含む。ひな形は、そのタグセットのエディタであるとも言え、文書表示領域３１０に、直接、文章を記述することによって、文章を含むタグセットを作成することができる。テンプレート表示領域３０２とは、指定可能な部分文書にかかる処理系の名称と、いずれの処理系のテンプレートが選択されているかを示すチェックボックスと、を含む。たとえば、図１２（ａ）中においては、テンプレートとして、ＳＶＧ３０３と、ＸＨＴＭＬ３０４とが表示されている。ここで、それぞれの表示の左側に表示されたチェックボックスをユーザが指定することによって、文書表示領域３１０において編集する文書の処理が選択される。
【００６７】
また、ブックマークとは、ユーザがした文書の編集において、いずれかの時点においてユーザが指定したことにより記憶させた文書の名称、もしくは文書内の位置を含み、単に「しおり」ともよばれる。ブックマーク表示領域３０６には、文書の名称、もしくは文書の位置を行番号、もしくは、座標として、記憶された順序で列挙される。また、ヒストリーとは、ユーザが過去に編集した文書、または、ユーザがした文書の編集のうち、特定の処理を行った事実の時系列を含み、単に「履歴」ともよばれる。ヒストリー表示領域３０８には、ユーザが過去に編集した文書の名称、または、ユーザが行った特定の処理の名称が時系列順に表示される。ここで、特定の処理とは、たとえば、文書のいずれかの部分を消去する処理や、後に貼り付けるために記憶させるカット処理、または、記憶した部分を貼り付けるペースト処理、または、新たな部分文書を追加する処理などを含む。ヒストリー表示領域３０８に表示されたヒストリーのいずれかをユーザが指定することによって、その指定にかかる処理の状態に戻す、いわゆるアンドウ処理を行えるようにしてもよい。
【００６８】
文書表示領域３１０は、文書を表示するための領域であって、複数のタグセットにより記述された文書を表示してもよく、また、処理系にかかるタグセットの記述自体を表示してもよい。また、文書表示領域３１０は、文書表示領域３１０においてそれぞれの部分文書の境界を表示させるための表示スイッチ３２８を含む。この表示スイッチ３２８をユーザが指定することによって、境界表示の有無が切り替わる。図１２（ａ）においては、境界を表示しないモード「ＯＦＦ」になっているので、文書表示領域３１０の文書において境界は表示されていない。
【００６９】
階層表示領域３２０は、文書表示領域３１０に表示された文書における階層構造を表示する領域である。文書表示領域３１０に表示された文書は、複数の部分文書から構成されており、それぞれの部分文書は、対応する処理系で処理されるように対応するタグセットで記述されている。個々のタグセットは、その内部に他のタグセットを有するように階層化されていてもよい。ここで、階層表示領域３２０に表示されるのは、タグセットを処理するための処理系の名称である。たとえば、階層表示領域３２０には、６つの処理系の名称が表示され、最上位の処理系は第１ＨＴＭＬ３２２において「ＨＴＭＬ」であることが明示されている。
【００７０】
さらに、第１ＨＴＭＬ３２２の「ＨＴＭＬ」の１つ下の階層には、第１ＳＶＧ３２３と第３ＳＶＧ３２７において「ＳＶＧ」が２つ存在する。また、一方の第１ＳＶＧ３２３の下位には、第２ＨＴＭＬ３２４において「ＨＴＭＬ」が存在することを示している。さらに、第２ＨＴＭＬ３２４の「ＨＴＭＬ」の下位の階層には、ＭａｔｈＭＬ３２５において「ＭａｔｈＭＬ」と、第２ＳＶＧ３２６において「ＳＶＧ」とが存在することを示している。
【００７１】
ここで、階層表示領域３２０に表示されたそれぞれの階層の左側に表示された「−」と「＋」について説明する。「−」は、その右側に表示された処理系が下位の階層を有することを示している。また、「＋」は、その右側に表示された処理系が下位の階層を有することを示しており、かつ、その下位の階層が階層表示領域３２０に表示されていないことを示している。「＋」の場合においては、ユーザの指定により、下位の階層を表示させることができる。この場合、「＋」の表示が「−」に変化する。また、「−」も「＋」も表示されていないＭａｔｈＭＬ３２５と第２ＳＶＧ３２６は、その階層より下位の階層が存在しないことを示している。
【００７２】
文書表示領域３１０に表示された部分文書が外部ファイルを含んでいる、もしくは、参照している部分文書が存在する場合がある。ファイル名表示領域３３０は、そのような場合に、その外部ファイルの名称を表示する領域である。図１２（ａ）中においては、文書表示領域３１０中の部分文書に含まれている２つの外部ファイルとして、第１ファイル３３５と第２ファイル３３６を表示している。
【００７３】
図１２（ｂ）は、図１１の表示制御部１１０の動作の結果表示される画面の第２の表示例を示す図である。第２の表示例は、文書表示領域３１０において、それぞれの部分文書の境界を表示した例である。いいかえると、第２の表示例は、第１の表示例において、表示スイッチ３２８を「ＯＮ」としてそれぞれの部分文書の境界を表示させた場合の表示例であるともいえる。これらの境界の表示は、図１１の境界表示部１１２によって実行される。なお、図１２（ａ）と同一の部分については、同一の符号を付して、説明を省略する。
【００７４】
第２の表示例においては、文書表示領域３１０に、それぞれの部分文書ごとに、その境界を表示している。この境界表示においては、第１境界３１２と、第２境界３１３と、第３境界３１４と、第４境界３１５と、第５境界３１６とが破線で表示されている。また、それぞれの境界は、部分文書の境界でもあり、内側の境界内の部分文書ほど、その部分文書を記述しているタグセットにかかる階層が下層に存在することを示している。たとえば、第２境界３１３は、第１境界３１２の内側に存在するので、対応する部分文書にかかる階層は、第２境界３１３のほうが第１境界３１２よりも下層となる。
【００７５】
また、同一の境界内に２つ以上の境界が存在する場合、それらの階層は同一の階層となる。たとえば、第４境界３１５と第５境界３１６は、双方とも第３境界３１４の内部に存在し、かつ、第４境界３１５と第５境界３１６は、互いに他方を含んでいないので、双方は同一の階層となる。ここで、それぞれのタグセットにおいて定義された領域によっては、第４境界３１５と第５境界３１６のように、境界が互いに重なり合う場合もありうる。いずれの境界内の表示を優先して表示するかについて、タグセット内の記述によって決定してもよい。
【００７６】
ここで、図１２（ｃ）〜図１２（ｅ）の説明をする前に、図１２（ｂ）に表示されたそれぞれの部分文書と、階層と、ファイルとの対応関係について説明する。第１境界３１２の内側における部分文書は、第１ＨＴＭＬ３２２に対応している。また、第２境界３１３の内側における部分文書は、第１ＳＶＧ３２３に対応している。また、第３境界３１４の内側における部分文書は、第２ＨＴＭＬ３２４に対応している。また、第４境界３１５の内側における部分文書は、第２ＨＴＭＬ３２４と、第１ファイル３３５とに対応している。また、第５境界３１６はの内側における部分文書は、第２ＳＶＧ３２６と、第２ファイル３３６とに対応している。また、第３ＳＶＧ３２７に対応する部分文書は、図１２（ａ）中の画面上には表示されておらず、ユーザが画面をスクロールすることによって表示される部分文書に対応しているものとする。以下においては、上述の対応関係のもとにおける、画面の表示例について説明する。
【００７７】
図１２（ｃ）は、図１１の表示制御部１１０の動作の結果表示される画面の第３の表示例を示す図である。なお、図１２（ａ）と同一の部分については、同一の符号を付して、説明を省略する。
【００７８】
第３の表示例は、文書表示領域３１０に表示された複数の部分文書、階層表示領域３２０に表示された複数の処理系、もしくは、ファイル名表示領域３３０に表示された複数のファイルの名称のいずれかをユーザが指定した場合の強調表示についての表示例である。ここでは、ユーザの指定と連動して、それぞれ対応する部分文書の境界、階層、ファイルの名称を強調して表示することについて例を用いて説明する。なお、表示スイッチ３２８は「ＯＮ」になっていると仮定して説明する。以下における強調処理は、図１１のカーソル位置判定部１２０によってユーザの指定個所を判定し、その判定にしたがって対応する表示に対し、強調処理部１１８によって行われている。
【００７９】
ここで、ユーザによって、階層表示領域３２０内のＭａｔｈＭＬ３２５が指定されたと仮定する。この場合、まず、階層表示領域３２０内のＭａｔｈＭＬ３２５が強調して表示される。ここでは、強調表示の一例として、ＭａｔｈＭＬ３２５の処理系を表す六角形を複数の斜線からなる模様を付した。さらに、この強調表示に連動して、文書表示領域３１０中の対応する部分文書の第４境界３１５が強調して表示される。ここでは、破線で第４境界３１５を破線で表示し、他の境界を表示しないといった態様で強調処理を行っている。また、ファイル名表示領域３３０において、対応する第１ファイル３３５が連動して強調処理される。ここでは、ＭａｔｈＭＬ３２５の強調処理との対応を明確にするため、同様の強調処理を施している。なお、第４境界３１５と他の境界の双方を実線で表示し、第４境界３１５の実線を他の境界と区別できるような色彩で表してもよい。また、第４境界３１５を実線で表示し、他の境界を破線で表示してもよい。
【００８０】
なお、文書表示領域３１０に表示されたいずれかの部分文書をユーザが指定することにより、その部分文書は、編集対象となり、ユーザが編集可能な状態となる。同様に、階層表示領域３２０に表示されたいずれかの階層、もしくは、ファイル名表示領域３３０に表示されたいずれかのファイルをユーザが指定することによって、指定に対応する部分文書は、強調して表示されるとともに、編集可能な状態となる。また、部分文書、階層、ファイルのいずれかをユーザが指定することによって、対応する処理系が提供するメニューが第２メニュー表示領域３４４に表示される。
【００８１】
図１２（ｄ）は、図１１の表示制御部１１０の動作の結果表示される画面の第４の表示例を示す図である。なお、図１２（ａ）と同一の部分については、同一の符号を付して、説明を省略する。
【００８２】
第４の表示例は、図１２（ｃ）と同様に、文書表示領域３１０内の複数の部分文書、階層表示領域３２０内の複数の処理系、もしくは、ファイル名表示領域３３０内の複数のファイルの名称のいずれかをユーザが指定した場合の強調表示についての表示例である。ここでは、ユーザの指定が、階層構造のうち、最下層でない階層にかかるものである場合についての表示例を示す。具体的には、指定された階層と、その階層より下の階層を対象として、それぞれの階層に対応する部分文書の境界をあわせて表示する。なお、表示スイッチ３２８は「ＯＮ」になっていると仮定して説明する。以下における強調処理は、図１１のカーソル位置判定部１２０によってユーザの指定個所を判定し、その判定にしたがって対応する表示に対し、強調処理部１１８によって行われている。
【００８３】
ここで、ユーザによって、階層表示領域３２０内の第２ＨＴＭＬ３２４が指定されたと仮定する。この場合、まず、階層表示領域３２０内の第２ＨＴＭＬ３２４を強調して表示する。さらに、第２ＨＴＭＬ３２４より下層に存在するＭａｔｈＭＬ３２５と第２ＳＶＧ３２６についても、同様に強調処理を行う。ここでは、強調表示の一例として、第２ＨＴＭＬ３２４の処理系を表す六角形を複数の斜線からなる模様を付した。また、同様に強調処理を行うＭａｔｈＭＬ３２５と第２ＳＶＧ３２６は、それぞれを別個に識別できるように、第２ＨＴＭＬ３２４とは異なった強調処理となるような態様で表示した。
【００８４】
さらに、この強調表示に連動して、文書表示領域３１０内の対応する部分文書の第３境界３１４が強調して表示される。さらに、第２ＨＴＭＬ３２４より下層に存在するＭａｔｈＭＬ３２５と第２ＳＶＧ３２６とに対応する第４境界３１５、第５境界３１６の強調処理をあわせて行う。ここでは、第３境界３１４の境界を実線で表示し、また、第４境界３１５、第５境界３１６の境界を破線で表示することによって、それぞれを識別可能な態様としている。なお、指定された階層にかかる第３境界３１４の第３境界３１４のみを表示し、下層にかかる第４境界３１５、第５境界３１６を表示しないことによって、識別可能な態様としてもよい。
【００８５】
また、ファイル名表示領域３３０において、ＭａｔｈＭＬ３２５に対応する第１ファイル３３５が連動して強調処理される。また、第２ＳＶＧ３２６に対応する第２ファイル３３６が連動して強調処理される。ここでは、ＭａｔｈＭＬ３２５、第２ＳＶＧ３２６との強調処理との対応を明確にするため、それぞれ同様の強調処理を施している。
【００８６】
図１２（ｅ）は、図１１の表示制御部１１０の動作の結果表示される画面の第５の表示例を示す図である。なお、図１２（ａ）と同一の部分については、同一の符号を付して、説明を省略する。
【００８７】
第５の表示例は、図１２（ｄ）と同様に、文書表示領域３１０に表示された複数の部分文書、階層表示領域３２０に表示された複数の処理系、もしくは、ファイル名表示領域３３０に表示された複数のファイルの名称のいずれかをユーザが指定した場合の強調表示についての表示例である。ここでは、さらに、ユーザにより第２メニュー表示領域３４４のいずれかが指定された場合のメニュー表示について説明する。具体的には、指定された階層と、その階層より上位の階層とを対象として、それぞれの階層に対応する処理系が提供する文書編集機能の名称をあわせて表示する。なお、表示スイッチ３２８は「ＯＮ」になっていると仮定して説明する。また、以下における表示処理は、図１１のカーソル位置判定部１２０によってユーザの指定個所を判定し、その判定にしたがった対応する表示に対し、メニュー表示部１２２によって行われている。また、強調処理は、強調処理部１１８によって行われている。
【００８８】
ここで、ユーザによって指定された処理系は第２ＨＴＭＬ３２４であり、その指定の後、さらに、第２メニュー表示領域３４４に表示された文書編集機能のうち、「Ｆｏｒｍａｔ」が指定されたと仮定する。この場合、まず、第２メニュー表示領域３４４の直下に第３メニュー表示領域３４６が表示される。第３メニュー表示領域３４６には、文書編集機能として、Ａｒｒａｎｇｅ機能３４８とＩｎｄｅｎｔ機能３４９が表示される。また、ユーザの指定にかかる第２ＨＴＭＬ３２４の上位の処理系である第１ＳＶＧ３２３が提供する文書編集機能として、Ｓｔｙｌｅ機能３４７も、あわせて第３メニュー表示領域３４６に表示される。
【００８９】
上位の処理系にかかる文書編集機能も表示させることによって、その処理系より下位の処理系にかかる文書を直接編集できるといった効果を得ることができる。たとえば、下位の処理系にかかる全ての文書の書体を一時に変えたい場合や、文書自体を回転して表示させたいような場合、個々の部分文書ごとに処理するよりも、まとめて処理したほうが正確性、時間コストの低減につながるからである。
【００９０】
また、この場合において、ユーザの指定した処理系にかかるＡｒｒａｎｇｅ機能３４８とＩｎｄｅｎｔ機能は、第３メニュー表示領域３４６と区別可能な態様で表示される。ここでは、Ａｒｒａｎｇｅ機能３４８とＩｎｄｅｎｔ機能３４９の名称の下にアンダーラインを付した態様で表示することによって、識別可能としている。
【００９１】
以上、本実施例における文書処理技術の特徴をまとめると次の通りである。画面に表示されている文書のうち、ユーザが指定した文書の境界を識別可能な態様で表示することによって、それ以外の文書との境界を明瞭に区別することができる。また、他の文書との境界を明瞭に区別することができるので編集が容易となり、ユーザの利便性を向上することができる。画面に表示されている複数の部分文書、もしくは、階層表示領域に表示されている処理系の階層構造、または、ファイル名表示領域に表示されているファイル名のいずれかをユーザが指定することによって、それぞれ対応する部分文書、階層、ファイル名をそれ以外の表示と明瞭に区別できるように表示することができる。また、他の表示と明瞭に区別することができるので編集が容易となり、ユーザの利便性を向上することができる。また、企業などの業務組織において取り扱われる文書ファイルのデータ整合性を保持しやすくなり、コストを低減できる。
【００９２】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【図面の簡単な説明】
【００９３】
【図１】本発明の実施形態に関する文書処理装置の構成を示す図である。
【図２】図１の文書処理装置の処理対象となるＸＭＬ文書の例を示す図である。
【図３】図２に示したＸＭＬ文書をＨＴＭＬで記述された表にマッピングする例を示す図である。
【図４（ａ）】図２に示したＸＭＬ文書を図３に示した表にマッピングするための定義ファイルの例を示す図である。
【図４（ｂ）】図２に示したＸＭＬ文書を図３に示した表にマッピングするための定義ファイルの例を示す図である。
【図５】図２に示した成績管理ボキャブラリで記述されたＸＭＬ文書を、図３に示した対応によりＨＴＭＬにマッピングして表示した画面の例を示す図である。
【図６】図１の定義ファイル生成部がユーザに提示するグラフィカルユーザインタフェースの例を示す図である。
【図７】図１の定義ファイル生成部により生成された画面レイアウトの他の例を示す図である。
【図８】図１の文書処理装置によるＸＭＬ文書の編集画面の一例を示す図である。
【図９】図１の文書処理装置により編集されるＸＭＬ文書の他の例を示す図である。
【図１０】図９に示した文書を表示した画面の例を示す図である。
【図１１】図１の表示制御部の構成例を示す図である。
【図１２（ａ）】図１１の表示制御部の動作の結果表示される画面の第１の表示例を示す図である。
【図１２（ｂ）】図１１の表示制御部の動作の結果表示される画面の第２の表示例を示す図である。
【図１２（ｃ）】図１１の表示制御部の動作の結果表示される画面の第３の表示例を示す図である。
【図１２（ｄ）】図１１の表示制御部の動作の結果表示される画面の第４の表示例を示す図である。
【図１２（ｅ）】図１１の表示制御部の動作の結果表示される画面の第５の表示例を示す図である。
【符号の説明】
【００９４】
２０  文書処理装置、  ２４  編集部、  １００  文書処理装置、  １１０  表示制御部、  ３１０  文書表示領域、  ３２０  階層表示領域、  ３３０  ファイル名表示領域、  ３４０  メニュー表示領域。
【図１】
2007004627.tif 000003
【図２】
2007004627.tif 000004
【図３】
2007004627.tif 000005
【図４（ａ）】
2007004627.tif 000006
【図４（ｂ）】
2007004627.tif 000007
【図５】
2007004627.tif 000008
【図６】
2007004627.tif 000009
【図７】
2007004627.tif 000010
【図８】
2007004627.tif 000011
【図９】
2007004627.tif 000012
【図１０】
2007004627.tif 000013
【図１１】
2007004627.tif 000014
【図１２（ａ）】
2007004627.tif 000015
【図１２（ｂ）】
2007004627.tif 000016
【図１２（ｃ）】
2007004627.tif 000017
【図１２（ｄ）】
2007004627.tif 000018
【図１２（ｅ）】
2007004627.tif 000019