文書処理装置
【課題】 複数文書を1つの文書として画面に表示し、また編集できるようにすることによってユーザの利便性を高める。
【解決手段】 文書処理装置20は、編集部24と、複数の処理系と、表示制御部110と、階層解析部とを含む。ユーザは、マークアップ言語を用いて、さまざまな文書を作成する。この文書をタグセットとよぶ。複数のタグセットは、階層構造を有するようにユーザが編集でき、複数の処理系によって処理される。処理された複数のタグセットは、編集部24によって統合され1つの文書として画面上の文書表示領域に表示される。画面上に表示された文書は、表示制御部110によって、それぞれ境界が表示される。ユーザが画面上に表示された文書を編集する際、指定した部分に相当する文書の境界は、他の境界と識別可能な態様で表示される。
【解決手段】 文書処理装置20は、編集部24と、複数の処理系と、表示制御部110と、階層解析部とを含む。ユーザは、マークアップ言語を用いて、さまざまな文書を作成する。この文書をタグセットとよぶ。複数のタグセットは、階層構造を有するようにユーザが編集でき、複数の処理系によって処理される。処理された複数のタグセットは、編集部24によって統合され1つの文書として画面上の文書表示領域に表示される。画面上に表示された文書は、表示制御部110によって、それぞれ境界が表示される。ユーザが画面上に表示された文書を編集する際、指定した部分に相当する文書の境界は、他の境界と識別可能な態様で表示される。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、データ処理技術に関し、とくに、複数の文書からなるデータを処理する文書処理装置に関する。
【背景技術】
【0002】
近年、コンピュータの普及とネットワーク技術の進展に伴い、ネットワークを介した電子情報の交換が盛んになっている。これにより、従来においては紙ベースで行われていた事務処理の多くが、ネットワークベースの処理に置き換えられつつある。
【0003】
企業においても、個人の知識や情報を組織全体で活用する、いわゆるナレッジマネジメントが、重要な経営手法となってきている。多くの企業においては、社内にデータベースシステムを有し、従業員からの情報を電子ファイル化して蓄積する。その一方で、従業員も、この社内データベースに蓄積されたファイルにネットワークを介してアクセスする。これによって、組織全体としての業務効率の向上が図られる。
【0004】
この社内データベースに蓄積されるファイルの多くは、HTML(Hyper Text Markup Language)とよばれる言語によって作成されている。また、近年においては、XML(eXtensible Markup Language)とよばれる言語を用いて、これらのファイルが作成される例も多くなってきている。
【0005】
HTMLは、ウェブページを記述するための言語である。すなわち、HTMLは文書ファイルの表示方法を定義するマークアップ言語の一種である。これに対して、XMLはHTMLの様に、直接的にウェブページを記述することを目的とする言語というよりは、むしろ、文書ファイルに含まれるデータのデータ構造を定義する機能を有する言語といえる。XMLによって作成された文書ファイルは、別に表示レイアウト情報を与えることによって、ウェブページとして表示される。すなわち、XML文書においては、データの構造とその表示レイアウトが別々のものとして扱うことができる。XMLのように、マークアップ言語を生成するための言語はメタ言語ともよばれる。
【0006】
XMLは、ネットワークなどを介して他者とデータを共有するのに適した形式として注目されており、XML文書を作成、表示、編集するためのアプリケーションが開発されている(たとえば、特許文献1参照)。XML文書は、文書型定義などにより定義されたボキャブラリ(タグセット)に基づいて作成されている。
【特許文献1】特開2001−290804号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
企業内の多くの部署では、上述したように、XMLなどの文書を編集するためのアプリケーションを用いて、電子化された文書ファイルが作成され、また、更新がなされる。このような状況のもと、本発明者は以下の課題を認識した。すなわち、文書ファイルが複数のアプリケーションから作成されている場合、その文書ファイルの作成、編集の際に、その都度、対応するアプリケーションを起動するなどして行わなければならないといった課題である。たとえば、ワードプロセッサ機能を有するアプリケーション、表計算機能を有するアプリケーション、描画機能を有するアプリケーションのそれぞれで文書を作成し、1つのファイルに統合して編集したい場合などが考えられる。
【0008】
本発明はこうした状況に鑑みてなされたものであり、その目的は、複数のタグセットによって作成された文書を処理可能な文書処理装置および文書処理方法を提供することにある。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本発明のある態様の文書処理装置は、特定の階層構造を有する複数のタグセットによりそれぞれ記述された部分文書からなる文書を処理する文書処理装置であって、部分文書のそれぞれを処理する複数の処理系と、部分文書のそれぞれに対して、部分文書を表示する文書表示領域を割り当て、文書表示領域に、対応する部分文書を表示して、ユーザによる部分文書の編集を受け付ける編集部と、を備える。
【0010】
ここで、「特定の階層構造を有する複数のタグセット」とは、個々のタグセットが、その内部に他のタグセットを有するように階層化されていることを含む。また、「タグセットによりそれぞれ記述された部分文書」とは、特定のマークアップ言語またはボキャブラリにより記述された文書などを含む。「部分文書のそれぞれを処理する複数の処理系」とは、部分文書を記述しているタグセットにかかるマークアップ言語またはボキャブラリを解読して、画面に表示するためのソフトウェアなどを含み、たとえば、HTML(Hyper Text Markup Language)、SVG(Scalable Vector Graphics)などの処理系を含む。
【0011】
なお、以上の構成要素の任意の組合せや、本発明の構成要素や表現、もしくはそれらの一部を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを格納した記録媒体、データ構造などの間で相互に置換したものもまた、本発明の態様として有効である。
【発明の効果】
【0012】
本発明によれば、複数のタグセットで記述された構造化文書ファイルに含まれるデータを扱う上でのユーザの利便性を向上させる上で効果がある。
【発明を実施するための最良の形態】
【0013】
まず、本発明の実施形態にかかる文書処理装置の概要について説明する。文書処理装置は、編集部と、複数の処理系と、表示制御部と、階層解析部とを含む。ユーザは、複数のマークアップ言語または複数のボキャブラリを用いて、さまざまな文書を作成する。この個々のマークアップ言語等はタグセットとよばれる。ユーザは、階層構造を有するように複数のタグセットを記述して文章を編集でき、複数のタグセットはそれぞれ対応する処理系によって処理される。処理された複数のタグセットは、編集部によって統合され1つの文書として画面上の文書表示領域に表示される。画面上に表示された文書は、表示制御部によって、それぞれ境界が表示される。ユーザが画面上に表示された文書を編集する際、指定した部分に相当する文書(以下、「部分文書」と表記する。)の境界は、他の境界と識別可能な態様で表示される。
【0014】
また、階層解析部は、文書に含まれる処理系の階層構造を解析し、表示制御部は、その名称と階層関係を階層表示領域に表示する。表示された階層をユーザが指定することによって、対応する文書の境界が他の境界と識別可能な態様で表示される。同様に、文書表示領域に表示された文書を指定することによって、対応する階層が他の階層と識別可能な態様で表示される。また、文書に含まれるファイルは、ファイル名表示領域にその名称が表示される。前述と同様に、ファイル名表示領域に表示された名称をユーザが指定することによって、対応する文書、もしくは、対応する階層は、他と識別可能な態様で表示される。
【0015】
また、処理系は、それぞれ複数の文書編集機能を有している。ユーザが文書表示領域に表示された文書を指定した場合、その文書を処理している処理系の文書編集機能が、メニュー表示領域に表示される。また、ユーザが階層表示領域に表示された階層を指定した場合、その階層にかかる処理系の文書編集機能の名称が、メニュー表示領域に表示される。また、ユーザがファイル名表示領域に表示された階層を指定した場合、そのファイル名にかかる処理系の文書編集機能の名称が、メニュー表示領域に表示される。いずれの場合も、指定にかかる処理系より上位の階層にかかる処理系の文書編集機能の名称も、あわせて、メニュー表示領域に表示してもよい。
【0016】
以下、本実施例における文書処理装置の構成、動作について説明する。
【0017】
図1は、本発明の実施形態に関する文書処理装置20の構成を示す図である。文書処理装置20は、文書内のデータが階層構造を有する複数の構成要素に分類された構造化文書を処理するが、本実施形態では構造化文書の一例としてXML文書を処理する例について説明する。文書処理装置20は、主制御ユニット22、編集部24、表示制御部110、文書オブジェクトモデルユニット30(Document Object Model Unit。以下、「DOMユニット30」と略称する。)、処理系で代表される、カスケーディングスタイルシートユニット40(Cascading Style Sheet Unit。以下、「CSSユニット40」と略称する。)、HTMLユニット50、SVGユニット60、及びボキャブラリコネクションユニット80(Vocabulary Connection Unit。以下、「VCユニット80」と略称する。)、とを備える。これらの構成は、ハードウエアコンポーネントでいえば、任意のコンピュータのCPU、メモリ、メモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【0018】
主制御ユニット22は、プラグインのロードや、コマンド実行のフレームワークを提供する。編集部24は、XML文書を編集するためのフレームワークを提供する。文書処理装置20における文書の表示及び編集機能は、プラグインにより実現されており、文書の種別に応じて必要なプラグインが主制御ユニット22又は編集部24によりロードされる。主制御ユニット22又は編集部24は、処理対象となるXML文書の名前空間を参照して、XML文書がいずれのボキャブラリにより記述されているかを判別し、そのボキャブラリに対応した表示又は編集用のプラグインをロードして表示や編集を実行させる。例えば、文書処理装置20には、HTML文書の表示及び編集を行うHTMLユニット50、SVG文書の表示及び編集を行うSVGユニット60など、ボキャブラリ(タグセット)ごとに表示系及び編集系がプラグインとして実装されており、HTML文書を編集するときはHTMLユニット50が、SVG文書を編集するときはSVGユニット60が、それぞれロードされる。後述するように、HTMLとSVGの双方の構成要素を含む複合文書が処理対象となっている場合は、HTMLユニット50とSVGユニット60の双方がロードされる。また、上述のプラグインをロードする際に、プラグインにかかる機能をメニュー表示領域に表示してもよい。
【0019】
このような構成によれば、ユーザは、必要な機能のみを選択してインストールし、後から適宜機能を追加又は削除することができるので、プログラムを格納するハードディスクなどの記録媒体の記憶領域を有効に活用することができ、また、プログラム実行時にも、メモリの浪費を防ぐことができる。また、機能拡張性に優れており、開発主体としても、プラグインの形で新たなボキャブラリに対応することが可能なので開発が容易となり、ユーザとしても、プラグインの追加により容易かつ低コストにて機能を追加することができる。
【0020】
編集部24は、ユーザインターフェースを介してユーザから編集指示のイベントを受け付け、そのイベントを適切なプラグインなどに通知するともに、イベントの再実行(リドゥ)又は実行の取消(アンドゥ)などの処理を制御する。また、ユーザの編集対象となる文書を読み込んだ際に、文書に含まれる部分文書を解析する。具体的には、部分文書を処理するための処理系を選択する。また、部分文書にかかるタグセットの階層構造を解析する。また、部分文書のそれぞれに対して、部分文書を表示する文書表示領域を割り当る。割り当てられた文書表示領域に、対応する部分文書を表示して、ユーザによる部分文書の編集を受け付ける。詳細は後述する。
【0021】
表示制御部110は、編集部24を介して受け付けたユーザからの指示にもとづいて、画面上の表示を制御する。表示制御部110は、文書表示領域の境界を表示する。詳細は後述する。
【0022】
DOMユニット30は、DOM提供部32、DOM生成部34、及び出力部36を含み、XML文書をデータとして扱うときのアクセス方法を提供するために定められた文書オブジェクトモデル(Document Object Model。以下、「DOM」と略称する。)に準拠した機能を実現する。DOM提供部32は、編集部24に定義されているインタフェースを満たすDOMの実装である。DOM生成部34は、XML文書からDOMツリーを生成する。後述するように、処理対象となるXML文書が、VCユニット80により他のボキャブラリにマッピングされる場合は、マッピング元のXML文書に対応するソースツリーと、マッピング先のXML文書に対応するデスティネーションツリーが生成される。出力部36は、例えば編集終了時に、DOMツリーをXML文書として出力する。
【0023】
CSSユニット40は、CSS解析部42、CSS提供部44、及びレンダリング部46を含み、CSSに準拠した表示機能を提供する。CSSとは、HTMLの表示のスタイルを指定するための言語であって、HTMLユニット50に付随する子処理系にあたる。CSSは、フォント、色の指定などを行うことができる。CSS解析部42は、CSSの構文を解析するパーサの機能を有する。CSS提供部44は、CSSオブジェクトの実装であり、DOMツリーに対してCSSのカスケード処理を行う。レンダリング部46は、CSSのレンダリングエンジンであり、CSSを用いてレイアウトされるHTMLなどのボキャブラリで記述された文書の表示、描画に用いられる。
【0024】
HTMLユニット50は、HTMLにより記述された文書を表示又は編集する。SVGユニット60は、SVGにより記述された文書を表示又は編集する。これらの表示/編集系は、プラグインの形で実現されており、それぞれ、文書を表示するHTML表示部(Canvas)56、SVG表示部66、編集指示を含むイベントを送受信するHTML制御部(Editlet)52、SVG制御部62、編集コマンドを受けてDOMに対して編集を行うHTML編集部(Zone)54、SVG編集部64を備える。HTML制御部52又はSVG制御部62が外部からDOMツリーの編集コマンドを受け付けると、HTML編集部54又はSVG編集部64がDOMツリーを変更し、HTML表示部56又はSVG表示部66が表示を更新する。これらは、MVC(Model-View-Controller)と呼ばれるフレームワークに類似する構成をとっており、概ね、HTML表示部56及びSVG表示部66が「View」に、HTML制御部52及びSVG制御部62が「Controller」に、HTML編集部54及びSVG編集部64とDOMの実体が「Model」に、それぞれ対応する。本実施形態の文書処理装置20では、XML文書をツリー表示形式で編集するだけでなく、それぞれのボキャブラリに応じた編集を可能とする。例えば、HTMLユニット50は、HTML文書をワードプロセッサに類似した方式で編集するためのユーザインターフェースを提供し、SVGユニット60は、SVG文書を画像描画ツールに類似した方式で編集するためのユーザインターフェースを提供する。
【0025】
VCユニット80は、マッピング部82、定義ファイル取得部84、及び定義ファイル生成部86を含み、あるボキャブラリにより記述された文書を、他のボキャブラリにマッピングすることにより、マッピング先のボキャブラリに対応した表示編集用プラグインで文書を表示又は編集するためのフレームワークを提供する。本実施形態では、この機能を、ボキャブラリコネクション(Vocabulary Connection:VC)と呼ぶ。定義ファイル取得部84は、マッピングの定義を記述したスクリプトファイルを取得する。この定義ファイルは、ノードごとに、ノード間の対応(コネクション)を記述する。このとき、各ノードの要素値や属性値の編集の可否を指定してもよい。また、ノードの要素値や属性値を用いた演算式を記述してもよい。これらの機能については、後で詳述する。マッピング部82は、定義ファイル取得部84が取得したスクリプトファイルを参照して、DOM生成部34にデスティネーションツリーを生成させ、ソースツリーとデスティネーションツリーの対応関係を管理する。定義ファイル生成部86は、ユーザが定義ファイルを生成するためのグラフィカルユーザインターフェースを提供する。
【0026】
VCユニット80は、ソースツリーとデスティネーションツリーの間のコネクションを監視し、表示を担当するプラグインにより提供されるユーザインタフェースを介してユーザから編集指示を受け付けると、まずソースツリーの該当するノードを変更する。DOMユニット30が、ソースツリーが変更された旨のミューテーションイベントを発行すると、VCユニット80は、そのミューテーションイベントを受けて、ソースツリーの変更にデスティネーションツリーを同期させるべく、変更されたノードに対応するデスティネーションツリーのノードを変更する。デスティネーションツリーを表示/編集するプラグイン、例えばHTMLユニット50は、デスティネーションツリーが変更された旨のミューテーションイベントを受けて、変更されたデスティネーションツリーを参照して表示を更新する。このような構成により、少数のユーザにより利用されるローカルなボキャブラリにより記述された文書であっても、他のメジャーなボキャブラリに変換することで、文書を表示することができるとともに、編集環境が提供される。
【0027】
文書処理装置20により文書を表示又は編集する動作について説明する。文書処理装置20が処理対象となる文書を読み込むと、DOM生成部34が、そのXML文書からDOMツリーを生成する。また、主制御ユニット22又は編集部24は、名前空間を参照して文書を記述しているボキャブラリを判別する。そのボキャブラリに対応したプラグインが文書処理装置20にインストールされている場合は、そのプラグインをロードして、文書を表示/編集させる。プラグインがインストールされていない場合は、マッピングの定義ファイルが存在するか否かを確認する。定義ファイルが存在する場合、定義ファイル取得部84が定義ファイルを取得し、その定義に従って、デスティネーションツリーが生成され、マッピング先のボキャブラリに対応するプラグインにより文書が表示/編集される。複数のボキャブラリを含む複合文書である場合は、後述するように、それぞれのボキャブラリに対応したプラグインにより、文書の該当箇所がそれぞれ表示/編集される。定義ファイルが存在しない場合は、文書のソース又はツリー構造を表示し、その表示画面において編集が行われる。
【0028】
図2は、図1の文書処理装置20の処理対象となるXML文書の例を示す図である。このXML文書は、生徒の成績データを管理するために用いられる。XML文書のトップノードである構成要素「成績」は、配下に、生徒ごとに設けられた構成要素「生徒」を複数有する。構成要素「生徒」は、属性値「名前」と、子要素「国語」、「数学」、「理科」、「社会」を有する。属性値「名前」は、生徒の名前を格納する。構成要素「国語」、「数学」、「理科」、「社会」は、それぞれ、国語、数学、理科、社会の成績を格納する。例えば、名前が「A」である生徒の国語の成績は「90」、数学の成績は「50」、理科の成績は「75」、社会の成績は「60」である。以下、この文書で使用されているボキャブラリ(タグセット)を、「成績管理ボキャブラリ」と呼ぶ。
【0029】
本実施形態の文書処理装置20は、成績管理ボキャブラリの表示/編集に対応したプラグインを有しないので、この文書をソース表示、ツリー表示以外の方法で表示するためには、前述したVC機能が用いられる。すなわち、成績管理ボキャブラリを、プラグインが用意された別のボキャブラリ、例えば、HTMLやSVGなどにマッピングするための定義ファイルを用意する必要がある。ユーザ自身が定義ファイルを作成するためのユーザインターフェースについては後述することにして、ここでは、既に定義ファイルが用意されているとして説明を進める。
【0030】
図3は、図2に示したXML文書をHTMLで記述された表にマッピングする例を示す図である。図3の例では、成績管理ボキャブラリの「生徒」ノードを、HTMLにおける表(「TABLE」ノード)の行(「TR」ノード)に対応づけ、各行の第1列には属性値「名前」を、第2列には「国語」ノードの要素値を、第3列には「数学」ノードの要素値を、第4列には「理科」ノードの要素値を、第5列には「社会」ノードの要素値を、それぞれ対応付ける。これにより、図2に示したXML文書を、HTMLの表形式で表示することができる。また、これらの属性値及び要素値は、編集可能であることが指定されており、ユーザがHTMLによる表示画面上で、HTMLユニット50の編集機能により、これらの値を編集することができる。第6列には、国語、数学、理科、社会の成績の加重平均を算出する演算式が指定されており、生徒の成績の平均点が表示される。このように、定義ファイルに演算式を指定可能とすることにより、より柔軟な表示が可能となり、編集時のユーザの利便性を向上させることができる。なお、第6列は、編集不可であることが指定されており、平均点のみを個別に編集することができないようにしている。このように、マッピング定義において、編集の可否を指定可能とすることにより、ユーザの誤操作を防ぐことができる。
【0031】
図4(a)及び図4(b)は、図2に示したXML文書を図3に示した表にマッピングするための定義ファイルの例を示す。この定義ファイルは、定義ファイル用に定義されたスクリプト言語により記述される。定義ファイルには、コマンドの定義と、表示のテンプレートが記述されている。図4(a)(b)の例では、コマンドとして、「生徒の追加」と「生徒の削除」が定義されており、それぞれ、ソースツリーにノード「生徒」を挿入する操作と、ソースツリーからノード「生徒」を削除する操作が対応付けられている。また、テンプレートとして、表の第1行に「名前」、「国語」などの見出しが表示され、第2行以降に、ノード「生徒」の内容が表示されることが記述されている。ノード「生徒」の内容を表示するテンプレート中、「text-of」と記述された項は「編集可能」であることを意味し、「value-of」と記述された項は「編集不可能」であることを意味する。また、ノード「生徒」の内容を表示する行のうち、第6列には、「(src:国語 + src:数学 + src:理科 + src:社会) div 4」という計算式が記述されており、生徒の成績の平均が表示されることを意味する。
【0032】
図5は、図2に示した成績管理ボキャブラリで記述されたXML文書を、図3に示した対応によりHTMLにマッピングして表示した画面の例を示す。表90の各行には、左から、各生徒の名前、国語の成績、数学の成績、理科の成績、社会の成績、及び平均点が表示されている。ユーザは、この画面上で、XML文書を編集することができる。たとえば、第2行第3列の値を「70」に変更すると、このノードに対応するソースツリーの要素値、すなわち、生徒「B」の数学の成績が「70」に変更される。このとき、VCユニット80は、デスティネーションツリーをソースツリーに追従させるべく、デスティネーションツリーの該当箇所を変更し、HTMLユニット50が、変更されたデスティネーションツリーに基づいて表示を更新する。したがって、画面上の表においても、生徒「B」の数学の成績が「70」に変更され、更に、平均点が「55」に変更される。
【0033】
図5に示した画面には、図4(a)(b)に示した定義ファイルに定義されたように、「生徒の追加」及び「生徒の削除」のコマンドがメニューに表示される。ユーザがこれらのコマンドを選択すると、ソースツリーにおいて、ノード「生徒」が追加又は削除される。このように、本実施形態の文書処理装置20では、階層構造の末端の構成要素の要素値を編集するのみではなく、階層構造を編集することも可能である。このようなツリー構造の編集機能は、コマンドの形でユーザに提供されてもよい。また、例えば、表の行を追加又は削除するコマンドが、ノード「生徒」を追加又は削除する操作に対応づけられてもよい。また、他のボキャブラリを埋め込むコマンドがユーザに提供されてもよい。この表を入力用テンプレートとして、穴埋め形式で新たな生徒の成績データを追加することもできる。以上のように、VC機能により、HTMLユニット50の表示/編集機能を利用しつつ、成績管理ボキャブラリで記述された文書を編集することが可能となる。
【0034】
図6は、ユーザが定義ファイルを生成するために、図1の定義ファイル生成部86がユーザに提示するグラフィカルユーザインタフェースの例を示す図である。画面左側の第1領域91には、マッピング元のXML文書がツリー表示されている。画面右側の第2領域92には、マッピング先のXML文書の画面レイアウトが示されている。この画面レイアウトは、HTMLユニット50により編集可能となっており、ユーザは、画面右側の第2領域92において、文書を表示するための画面レイアウトを作成する。そして、例えば、マウスなどのポインティングデバイスにより、画面左側の第1領域91に表示されたマッピング元のXML文書のノードを、画面右側の第2領域92に表示されたHTMLによる画面レイアウト中へドラッグ&ドロップ操作を行うことにより、マッピング元のノードと、マッピング先のノードとのコネクションが指定される。例えば、要素「生徒」の子要素である「数学」を、HTML画面の表90の第1行第3列にドロップすると、「数学」ノードと、3列目の「TD」ノードの間にコネクションが張られる。各ノードには、編集の可否が指定できるようになっている。また、表示画面中には、演算式を埋め込むこともできる。画面の編集が終わると、定義ファイル生成部86は、画面レイアウトとノード間のコネクションを記述した定義ファイルを生成する。
【0035】
XHTML、MathML、SVGなどの主要なボキャブラリに対応したビューワやエディタは既に開発されているが、図2に示した文書のようなオリジナルなボキャブラリで記述された文書に対応したビューワやエディタを開発するのは現実的でない。しかし、上記のように、他のボキャブラリにマッピングするための定義ファイルを作成すれば、ビューワやエディタを開発しなくても、VC機能を利用して、オリジナルなボキャブラリで記述された文書を表示・編集することができる。
【0036】
図7は、図1の定義ファイル生成部86により生成された画面レイアウトの他の例を示す図である。図7の例では、成績管理ボキャブラリで記述されたXML文書を表示するための画面に、表90と、円グラフ93が作成されている。この円グラフ93は、SVGにより記述される。後述するように、本実施形態の文書処理装置20は、一つのXML文書内に複数のボキャブラリを含む複合文書を処理することができるので、この例のように、HTMLで記述された表90と、SVGで記述された円グラフ93とを、一つの画面上に表示することができる。
【0037】
図8は、図1の文書処理装置20によるXML文書の編集画面の一例を示す図である。図8の例では、一つの画面が複数に分割されており、それぞれの領域において、処理対象となるXML文書を異なる複数の表示形式により表示している。第3領域94には、文書のソースが表示されており、第4領域95には、文書のツリー構造が表示されており、第5領域96には、図5に示したHTMLにより記述された表が表示されている。これらのいずれの画面上においても、文書の編集が可能であり、いずれかの画面上でユーザが編集を行うと、ソースツリーが変更され、それぞれの画面の表示を担当するプラグインが、ソースツリーの変更を反映すべく画面を更新する。具体的には、ソースツリーの変更を通知するミューテーションイベントのリスナーとして、それぞれの編集画面の表示を担当するプラグインの表示部を登録しておき、いずれかのプラグイン又はVCユニット80によりソースツリーが変更されたときに、編集画面を表示中の全ての表示部が、発行されたミューテーションイベントを受け取って画面を更新する。このとき、プラグインがVC機能により表示を行っている場合は、VCユニット80がソースツリーの変更に追従してデスティネーションツリーを変更した後、変更されたデスティネーションツリーを参照してプラグインの表示部が画面を更新する。
【0038】
例えば、ソース表示及びツリー表示を、専用のプラグインにより実現している場合は、ソース表示用プラグインとツリー表示用プラグインは、デスティネーションツリーを用いず、直接ソースツリーを参照して表示を行う。この場合、いずれかの画面において編集が行われると、ソース表示用プラグインとツリー表示用プラグインは、変更されたソースツリーを参照して画面を更新し、第5領域96の画面を担当しているHTMLユニット50は、ソースツリーの変更に追従して変更されたデスティネーションツリーを参照して画面を更新する。
【0039】
ソース表示及びツリー表示は、VC機能を利用して実現することもできる。すなわち、ソース、ツリー構造をHTMLによりレイアウトし、そのHTMLにXML文書をマッピングして、HTMLユニット50により表示してもよい。この場合、ソース形式、ツリー形式、表形式の3つのデスティネーションツリーが生成されることになる。いずれかの画面において編集が行われると、VCユニット80は、ソースツリーを変更した後、ソース形式、ツリー形式、表形式の3つのデスティネーションツリーをそれぞれ変更し、HTMLユニット50は、それらのデスティネーションツリーを参照して、3つの画面を更新する。
【0040】
このように、一つの画面上に複数の表示形式で文書を表示することにより、ユーザの利便性を向上させることができる。例えば、ユーザは、ソース表示又はツリー表示により文書の階層構造を把握しつつ、表90などを用いて視覚的に分かりやすい形式で文書を表示し、編集することができる。上記の例では、一つの画面を分割して複数の表示形式による画面を同時に表示したが、一つの画面に一つの表示形式による画面を表示し、表示形式をユーザの指示により切り替え可能としてもよい。この場合、主制御ユニット22が、ユーザから表示形式の切り替え要求を受け付け、各プラグインに指示して表示を切り替える。
【0041】
図9は、文書処理装置20により編集されるXML文書の他の例を示す図である。図9に示したXML文書では、SVG文書の「foreignObject」タグの中にXHTML文書が埋め込まれており、さらに、XHTML文書の中にMathMLで記述された数式が入っている。このような場合、編集部24が、名前空間を参照して、適切な表示系に描画作業を振り分ける。図9の例では、編集部24は、まず、SVGユニット60に四角形を描画させ、つづいて、HTMLユニット50にXHTML文書を描画させる。さらに、図示しないMathMLユニットに、数式を描画させる。こうして、複数のボキャブラリを包含する複合文書が適切に表示される。表示結果を図10に示す。
【0042】
文書編集中、カーソル(キャリッジ)の位置に応じて、表示されるメニューを切り替えてもよい。すなわち、カーソルが、SVG文書が表示された領域内に存在するときは、SVGユニット60が提供するメニュー、又はSVG文書をマッピングするための定義ファイルに定義されたコマンドを表示し、カーソルが、XHTML文書が表示された領域内に存在するときは、HTMLユニット50が提供するメニュー、又はXHTML文書をマッピングするための定義ファイルに定義されたコマンドを表示する。これにより、編集位置に応じて適切なユーザインターフェースを提供することができる。
【0043】
複合文書において、あるボキャブラリに対応する適切なプラグイン又はマッピング定義ファイルがなかった場合は、そのボキャブラリにより記述された部分は、ソース表示又はツリー表示されてもよい。従来、ある文書に他の文書を埋め込んだ複合文書を開くとき、埋め込まれた文書を表示するアプリケーションがインストールされていないと、その内容を表示することができなかったが、本実施形態では、表示用のアプリケーションが存在しなくても、テキストデータにより構成されたXML文書をソース表示又はツリー表示することにより内容を把握することができる。これは、テキストベースであるXMLなどの文書ならではの特徴といえる。
【0044】
データがテキストベースで記述されることの他の利点として、例えば、複合文書中の、あるボキャブラリにより記述される部分において、同一文書内の他のボキャブラリで記述された部分のデータを参照してもよい。また、文書内で検索を実行する時に、SVGなどの図に埋め込まれた文字列も検索対象とすることができる。
【0045】
あるボキャブラリにより記述された文書内に、他のボキャブラリのタグを用いてもよい。このXML文書は、妥当(valid)ではないが、整形式(well-formed)であれば、有効なXML文書として処理可能である。この場合、挿入された他のボキャブラリのタグは、定義ファイルによりマッピングされてもよい。例えば、XHTML文書中に、「重要」、「最重要」などのタグを使用し、これらのタグで囲まれた部分を強調表示してもよいし、重要度の順にソートして表示してもよい。
【0046】
図10に示した編集画面において、ユーザにより文書が編集されると、編集された部分を担当するプラグイン又はVCユニット80がソースツリーを変更する。ソースツリーには、ノードごとにミューテーションイベントのリスナーを登録できるようになっており、通常は、各ノードが属するボキャブラリに対応したプラグインの表示部又はVCユニット80がリスナーとして登録される。DOM提供部32は、ソースツリーが変更されると、変更されたノードから上位の階層へたどって、登録されたリスナーがあれば、そのリスナーへミューテーションイベントを発行する。例えば、図9に示した文書において、<html>ノードの下位のノードが変更された場合、<html>ノードにリスナーとして登録されたHTMLユニット50にミューテーションイベントが通知されるとともに、その上位の<svg>ノードにリスナーとして登録されたSVGユニット60にもミューテーションイベントが通知される。このとき、HTMLユニット50は、変更されたソースツリーを参照して表示を更新する。SVGユニット60は、自身のボキャブラリに属するノードが変更されていないので、ミューテーションイベントを無視してもよい。
【0047】
編集の内容によっては、HTMLユニット50による表示の更新に伴って、全体のレイアウトが変わる可能性がある。この場合は、画面のレイアウトを管理する構成、例えば最上位のノードの表示を担当するプラグインにより、プラグインごとの表示領域のレイアウトが更新される。例えば、HTMLユニット50による表示領域が以前より大きくなった場合、HTMLユニット50は、まず自身の担当する部分を描画して、表示領域の大きさを決定する。そして、画面のレイアウトを管理する構成に、変更後の表示領域の大きさを通知し、レイアウトの更新を依頼する。画面のレイアウトを管理する構成は、通知を受けて、プラグインごとの表示領域を再レイアウトする。こうして、編集された部分の表示が適切に更新されるとともに、画面全体のレイアウトが更新される。
【0048】
ここで、編集部24について詳細に説明する。編集部24は、図示しない階層解析部を含む。編集部24は、特定の階層構造を有する複数のタグセットによりそれぞれ記述された部分文書からなる文書を編集するためのブロックである。階層解析部は、読み込まれた文書にかかるタグセットの階層構造を解析する。編集部24は、解析結果にもとづいて、それぞれのタグセットを処理する処理系に指令を与える。また、編集部24は、部分文書のそれぞれに対して、部分文書を表示する文書表示領域を割り当て、文書表示領域に、対応する部分文書を表示して、ユーザによる部分文書の編集を受け付ける。
【0049】
ここで、表示制御部110について詳細に説明する。図11は、図1の表示制御部110の構成例を示す図である。表示制御部110は、境界表示部112と、名称表示部114と、階層構造表示部116と、強調処理部118と、カーソル位置判定部120と、メニュー表示部122を含む。
【0050】
境界表示部112は、部分文書の文書表示領域の境界を表示する。また、境界表示部112は、編集部24によって編集の対象となっている部分文書のうち、少なくとも最上位の階層のタグセットにかかる部分文書に割り当てられた文書表示領域310の境界を表示する。このさい、編集の対象となっている部分文書に含まれる全ての階層における境界をあわせて表示してもよい。
【0051】
階層構造表示部116は、編集部において編集される文書と並列して、同一画面上に、編集部24における図示しない階層解析部によって解析されたそれぞれの階層のタグセットにかかる処理系の名称を階層表示領域に表示する。
【0052】
名称表示部114は、文書に含まれる複数のファイルのそれぞれの名称をファイル名表示領域に表示する。
【0053】
メニュー表示部122は、編集部24の階層解析部によって解析された階層構造にしたがって、同一画面上に、タグセットにかかる処理系が提供する文書編集機能の名称をメニュー表示領域に表示する。また、メニュー表示部122は、編集部において編集の対象となっている部分文書に対応するタグセットより上位の階層のタグセットにかかる処理系が提供する文書編集機能の名称も、あわせて表示してもよい。メニュー表示領域は、基本メニューと、プラグインされた機能にかかるメニューとを表示する領域を含む。たとえば、基本メニューには、文書の保存、読出し、単語の検索、置換などの機能が含まれる。また、プラグインされた機能にかかるメニューには、上付文字とする機能、指定された領域に存在する数値を合計するための機能、ユーザによるマクロ機能などが含まれる。
【0054】
カーソル位置判定部120は、ユーザが編集処理を行う際にマウスなどを操作することによって表示されたポインタ、または、カーソルなどの画面上の位置を判定する。ユーザは、画面に表示された複数の部分文書のうち、編集を行いたい部分文書が表示されている位置にこのポインタ等を移動し、マウスのボタンを押し下げるなどの行為によって、その指定された部分文書を編集対象とできる。以下においては、説明を簡易なものとするために、「ユーザが編集処理を行う際にマウスなどを操作することによって画面上に表示されたポインタ、または、カーソルを移動し、所定の個所を選択して指定する」ことを、単に「ユーザが指定する」または「ユーザの指定による」などと略記して表現することとする。
【0055】
強調処理部118は、境界表示部112によって部分文書の境界を表示する際に、他の文書表示領域の境界と比べて識別可能な態様で表示する。また、階層構造表示部116において表示する編集の対象となっている部分文書の階層について、その部分文書に対応する処理系にかかる階層を他の処理系にかかる階層と比べて識別可能な態様で階層表示領域に表示する。また、名称表示部114において表示する編集の対象となっている部分文書について、その部分文書に対応するファイルの名称を他のファイルの名称と識別可能な態様でファイル名表示領域に表示する。また、メニュー表示部122において文書編集機能の名称を表示する際に、編集部において編集の対象となっている部分文書に対応する処理系が提供する文書編集機能の名称を他の文書編集機能の名称と識別可能な態様でメニュー表示領域に表示する。
【0056】
ここで、識別可能な態様とは、たとえば、境界を実線と破線とで分けて表示し、または、境界の線の色彩、濃淡を変えて表示し、または、境界の線の太さを変えて表示することなどを含む。また、強弱をつけて表示することなどを含み、たとえば、実線と破線で分けて表示することによって識別可能な態様としてもよく、また、色彩、濃淡に変化をつけて表示することによって識別可能な態様としてもよい。また、一方の領域の背景を、他方の領域の背景とは異なるように、特定の色彩、もしくは模様により描画してもい。また、一方を表示し、他方を表示しないことによって識別可能な態様としてもよい。
【0057】
また、強調処理部118は、階層構造表示部116によって行われる表示処理と連動して、ユーザの指定による階層に対応した部分文書の文書表示領域の境界を他の文書表示領域の境界と比べて識別可能な態様で表示する。さらに、対応するファイルの名称も、他のファイルの名称と比べて識別可能な態様でファイル名表示領域に、連動して表示する。
【0058】
また、強調処理部118は、名称表示部114によって行われる表示処理と連動して、ユーザの指定によるファイルの名称に対応した部分文書の境界を他の部分文書の境界と比べて識別可能な態様で表示する。さらに、指定されたファイルの名称に対応する部分文書にかかる処理系を示す階層も、他の処理系にかかる階層と比べて識別可能な態様で階層表示領域に、連動して表示する。
【0059】
また、強調処理部118は、ユーザがメニュー指定動作を行う際のメニュー表示領域における強調処理も行う。具体的には、ユーザによるメニュー指定動作中に、すでにユーザによって指定されていた部分文書、もしくは、部分文書にかかる階層、または、部分文書に含まれるファイルについての強調処理に連動して、対応する処理系が提供する文書編集機能の名称についてもあわせて強調処理を行う。
【0060】
以上のような構成をとることにより、画面に表示されている複数の部分文書、もしくは、階層表示領域に表示されている処理系の階層構造、または、ファイル名表示領域に表示されているファイル名のいずれかをユーザが指定することによって、それぞれ対応する部分文書、階層、ファイル名をそれ以外の表示と明瞭に区別できるように表示することができる。また、他の表示と明瞭に区別することができるので編集が容易となり、ユーザの利便性を向上することができる。
【0061】
以下、表示制御部110による動作の結果表示される画面の例について、図12(a)〜(e)を用いて説明する。まずはじめに、図12(a)を用いて、表示される画面の全体について説明する。つぎに、図12(b)を用いて、文書を表示する領域において、各文書の境界をすべて表示した場合について説明する。つぎに、図12(c)と図12(d)を用いて、文書を表示する領域においていずれかの部分文書が指定された場合、その指定と連動して、対応する階層と、対応するファイル名とが強調して表示される場合について説明する。最後に、図12(e)を用いて、それぞれの処理系が提供する文書編集機能をメニュー表示領域に表示した場合について説明する。
【0062】
図12(a)は、図11の表示制御部110の動作の結果表示される画面の第1の表示例を示す図である。第1の表示例において、画面は、ランチャ表示領域300と、文書表示領域310と、階層表示領域320と、ファイル名表示領域330と、メニュー表示領域340で代表される第1メニュー表示領域342と第2メニュー表示領域344とを含む。
【0063】
なお、ランチャ表示領域300は、「Launcher」と表示された領域を起点とした、画面下方までの領域を含む。また、文書表示領域310は、「Document View」と表示された領域を起点とした、画面下方までの領域を含む。また、階層表示領域320は、「Components」と表示された領域を起点とした、画面下方までの領域を含む。また、ファイル名表示領域330は、「Files」と表示された領域を起点とした、画面下方までの領域を含む。
【0064】
また、メニュー表示領域340は、図12(a)中において破線で囲った部分の領域であって、「File」と、「Edit」と、「Show」と、「Favorite」と、「Tools」と、「Help」と、「Insert」、「Format」と、「Section」と、「Graph」と、「Help」と、「Debug」と、の名称が表示されている領域を含む。また、第1メニュー表示領域342は、メニュー表示領域340のうち、基本メニューを表示するための領域である。基本メニューは、「File」と、「Edit」と、「Show」と、「Favorite」と、「Tools」と、「Help」と、を含む。また、第2メニュー表示領域344は、プラグインされた機能を表示するための領域である。ここでは、プラグインされた機能として、「Insert」と、「Format」と、「Section」と、「Graph」と、「Help」と、「Debug」と、を含む。
【0065】
ランチャ表示領域300は、テンプレート表示領域302と、ブックマーク表示領域306とヒストリー表示領域308とを含む領域である。ここで、ランチャとは、各種処理系を用いた文書の編集を補助するための機能を含み、ランチャ表示領域300とは、文書の編集を補助するための機能の名称を表示する領域を含む。
【0066】
また、テンプレートとは、タグセットのひな形を含む。ひな形は、そのタグセットのエディタであるとも言え、文書表示領域310に、直接、文章を記述することによって、文章を含むタグセットを作成することができる。テンプレート表示領域302とは、指定可能な部分文書にかかる処理系の名称と、いずれの処理系のテンプレートが選択されているかを示すチェックボックスと、を含む。たとえば、図12(a)中においては、テンプレートとして、SVG303と、XHTML304とが表示されている。ここで、それぞれの表示の左側に表示されたチェックボックスをユーザが指定することによって、文書表示領域310において編集する文書の処理が選択される。
【0067】
また、ブックマークとは、ユーザがした文書の編集において、いずれかの時点においてユーザが指定したことにより記憶させた文書の名称、もしくは文書内の位置を含み、単に「しおり」ともよばれる。ブックマーク表示領域306には、文書の名称、もしくは文書の位置を行番号、もしくは、座標として、記憶された順序で列挙される。また、ヒストリーとは、ユーザが過去に編集した文書、または、ユーザがした文書の編集のうち、特定の処理を行った事実の時系列を含み、単に「履歴」ともよばれる。ヒストリー表示領域308には、ユーザが過去に編集した文書の名称、または、ユーザが行った特定の処理の名称が時系列順に表示される。ここで、特定の処理とは、たとえば、文書のいずれかの部分を消去する処理や、後に貼り付けるために記憶させるカット処理、または、記憶した部分を貼り付けるペースト処理、または、新たな部分文書を追加する処理などを含む。ヒストリー表示領域308に表示されたヒストリーのいずれかをユーザが指定することによって、その指定にかかる処理の状態に戻す、いわゆるアンドウ処理を行えるようにしてもよい。
【0068】
文書表示領域310は、文書を表示するための領域であって、複数のタグセットにより記述された文書を表示してもよく、また、処理系にかかるタグセットの記述自体を表示してもよい。また、文書表示領域310は、文書表示領域310においてそれぞれの部分文書の境界を表示させるための表示スイッチ328を含む。この表示スイッチ328をユーザが指定することによって、境界表示の有無が切り替わる。図12(a)においては、境界を表示しないモード「OFF」になっているので、文書表示領域310の文書において境界は表示されていない。
【0069】
階層表示領域320は、文書表示領域310に表示された文書における階層構造を表示する領域である。文書表示領域310に表示された文書は、複数の部分文書から構成されており、それぞれの部分文書は、対応する処理系で処理されるように対応するタグセットで記述されている。個々のタグセットは、その内部に他のタグセットを有するように階層化されていてもよい。ここで、階層表示領域320に表示されるのは、タグセットを処理するための処理系の名称である。たとえば、階層表示領域320には、6つの処理系の名称が表示され、最上位の処理系は第1HTML322において「HTML」であることが明示されている。
【0070】
さらに、第1HTML322の「HTML」の1つ下の階層には、第1SVG323と第3SVG327において「SVG」が2つ存在する。また、一方の第1SVG323の下位には、第2HTML324において「HTML」が存在することを示している。さらに、第2HTML324の「HTML」の下位の階層には、MathML325において「MathML」と、第2SVG326において「SVG」とが存在することを示している。
【0071】
ここで、階層表示領域320に表示されたそれぞれの階層の左側に表示された「−」と「+」について説明する。「−」は、その右側に表示された処理系が下位の階層を有することを示している。また、「+」は、その右側に表示された処理系が下位の階層を有することを示しており、かつ、その下位の階層が階層表示領域320に表示されていないことを示している。「+」の場合においては、ユーザの指定により、下位の階層を表示させることができる。この場合、「+」の表示が「−」に変化する。また、「−」も「+」も表示されていないMathML325と第2SVG326は、その階層より下位の階層が存在しないことを示している。
【0072】
文書表示領域310に表示された部分文書が外部ファイルを含んでいる、もしくは、参照している部分文書が存在する場合がある。ファイル名表示領域330は、そのような場合に、その外部ファイルの名称を表示する領域である。図12(a)中においては、文書表示領域310中の部分文書に含まれている2つの外部ファイルとして、第1ファイル335と第2ファイル336を表示している。
【0073】
図12(b)は、図11の表示制御部110の動作の結果表示される画面の第2の表示例を示す図である。第2の表示例は、文書表示領域310において、それぞれの部分文書の境界を表示した例である。いいかえると、第2の表示例は、第1の表示例において、表示スイッチ328を「ON」としてそれぞれの部分文書の境界を表示させた場合の表示例であるともいえる。これらの境界の表示は、図11の境界表示部112によって実行される。なお、図12(a)と同一の部分については、同一の符号を付して、説明を省略する。
【0074】
第2の表示例においては、文書表示領域310に、それぞれの部分文書ごとに、その境界を表示している。この境界表示においては、第1境界312と、第2境界313と、第3境界314と、第4境界315と、第5境界316とが破線で表示されている。また、それぞれの境界は、部分文書の境界でもあり、内側の境界内の部分文書ほど、その部分文書を記述しているタグセットにかかる階層が下層に存在することを示している。たとえば、第2境界313は、第1境界312の内側に存在するので、対応する部分文書にかかる階層は、第2境界313のほうが第1境界312よりも下層となる。
【0075】
また、同一の境界内に2つ以上の境界が存在する場合、それらの階層は同一の階層となる。たとえば、第4境界315と第5境界316は、双方とも第3境界314の内部に存在し、かつ、第4境界315と第5境界316は、互いに他方を含んでいないので、双方は同一の階層となる。ここで、それぞれのタグセットにおいて定義された領域によっては、第4境界315と第5境界316のように、境界が互いに重なり合う場合もありうる。いずれの境界内の表示を優先して表示するかについて、タグセット内の記述によって決定してもよい。
【0076】
ここで、図12(c)〜図12(e)の説明をする前に、図12(b)に表示されたそれぞれの部分文書と、階層と、ファイルとの対応関係について説明する。第1境界312の内側における部分文書は、第1HTML322に対応している。また、第2境界313の内側における部分文書は、第1SVG323に対応している。また、第3境界314の内側における部分文書は、第2HTML324に対応している。また、第4境界315の内側における部分文書は、第2HTML324と、第1ファイル335とに対応している。また、第5境界316はの内側における部分文書は、第2SVG326と、第2ファイル336とに対応している。また、第3SVG327に対応する部分文書は、図12(a)中の画面上には表示されておらず、ユーザが画面をスクロールすることによって表示される部分文書に対応しているものとする。以下においては、上述の対応関係のもとにおける、画面の表示例について説明する。
【0077】
図12(c)は、図11の表示制御部110の動作の結果表示される画面の第3の表示例を示す図である。なお、図12(a)と同一の部分については、同一の符号を付して、説明を省略する。
【0078】
第3の表示例は、文書表示領域310に表示された複数の部分文書、階層表示領域320に表示された複数の処理系、もしくは、ファイル名表示領域330に表示された複数のファイルの名称のいずれかをユーザが指定した場合の強調表示についての表示例である。ここでは、ユーザの指定と連動して、それぞれ対応する部分文書の境界、階層、ファイルの名称を強調して表示することについて例を用いて説明する。なお、表示スイッチ328は「ON」になっていると仮定して説明する。以下における強調処理は、図11のカーソル位置判定部120によってユーザの指定個所を判定し、その判定にしたがって対応する表示に対し、強調処理部118によって行われている。
【0079】
ここで、ユーザによって、階層表示領域320内のMathML325が指定されたと仮定する。この場合、まず、階層表示領域320内のMathML325が強調して表示される。ここでは、強調表示の一例として、MathML325の処理系を表す六角形を複数の斜線からなる模様を付した。さらに、この強調表示に連動して、文書表示領域310中の対応する部分文書の第4境界315が強調して表示される。ここでは、破線で第4境界315を破線で表示し、他の境界を表示しないといった態様で強調処理を行っている。また、ファイル名表示領域330において、対応する第1ファイル335が連動して強調処理される。ここでは、MathML325の強調処理との対応を明確にするため、同様の強調処理を施している。なお、第4境界315と他の境界の双方を実線で表示し、第4境界315の実線を他の境界と区別できるような色彩で表してもよい。また、第4境界315を実線で表示し、他の境界を破線で表示してもよい。
【0080】
なお、文書表示領域310に表示されたいずれかの部分文書をユーザが指定することにより、その部分文書は、編集対象となり、ユーザが編集可能な状態となる。同様に、階層表示領域320に表示されたいずれかの階層、もしくは、ファイル名表示領域330に表示されたいずれかのファイルをユーザが指定することによって、指定に対応する部分文書は、強調して表示されるとともに、編集可能な状態となる。また、部分文書、階層、ファイルのいずれかをユーザが指定することによって、対応する処理系が提供するメニューが第2メニュー表示領域344に表示される。
【0081】
図12(d)は、図11の表示制御部110の動作の結果表示される画面の第4の表示例を示す図である。なお、図12(a)と同一の部分については、同一の符号を付して、説明を省略する。
【0082】
第4の表示例は、図12(c)と同様に、文書表示領域310内の複数の部分文書、階層表示領域320内の複数の処理系、もしくは、ファイル名表示領域330内の複数のファイルの名称のいずれかをユーザが指定した場合の強調表示についての表示例である。ここでは、ユーザの指定が、階層構造のうち、最下層でない階層にかかるものである場合についての表示例を示す。具体的には、指定された階層と、その階層より下の階層を対象として、それぞれの階層に対応する部分文書の境界をあわせて表示する。なお、表示スイッチ328は「ON」になっていると仮定して説明する。以下における強調処理は、図11のカーソル位置判定部120によってユーザの指定個所を判定し、その判定にしたがって対応する表示に対し、強調処理部118によって行われている。
【0083】
ここで、ユーザによって、階層表示領域320内の第2HTML324が指定されたと仮定する。この場合、まず、階層表示領域320内の第2HTML324を強調して表示する。さらに、第2HTML324より下層に存在するMathML325と第2SVG326についても、同様に強調処理を行う。ここでは、強調表示の一例として、第2HTML324の処理系を表す六角形を複数の斜線からなる模様を付した。また、同様に強調処理を行うMathML325と第2SVG326は、それぞれを別個に識別できるように、第2HTML324とは異なった強調処理となるような態様で表示した。
【0084】
さらに、この強調表示に連動して、文書表示領域310内の対応する部分文書の第3境界314が強調して表示される。さらに、第2HTML324より下層に存在するMathML325と第2SVG326とに対応する第4境界315、第5境界316の強調処理をあわせて行う。ここでは、第3境界314の境界を実線で表示し、また、第4境界315、第5境界316の境界を破線で表示することによって、それぞれを識別可能な態様としている。なお、指定された階層にかかる第3境界314の第3境界314のみを表示し、下層にかかる第4境界315、第5境界316を表示しないことによって、識別可能な態様としてもよい。
【0085】
また、ファイル名表示領域330において、MathML325に対応する第1ファイル335が連動して強調処理される。また、第2SVG326に対応する第2ファイル336が連動して強調処理される。ここでは、MathML325、第2SVG326との強調処理との対応を明確にするため、それぞれ同様の強調処理を施している。
【0086】
図12(e)は、図11の表示制御部110の動作の結果表示される画面の第5の表示例を示す図である。なお、図12(a)と同一の部分については、同一の符号を付して、説明を省略する。
【0087】
第5の表示例は、図12(d)と同様に、文書表示領域310に表示された複数の部分文書、階層表示領域320に表示された複数の処理系、もしくは、ファイル名表示領域330に表示された複数のファイルの名称のいずれかをユーザが指定した場合の強調表示についての表示例である。ここでは、さらに、ユーザにより第2メニュー表示領域344のいずれかが指定された場合のメニュー表示について説明する。具体的には、指定された階層と、その階層より上位の階層とを対象として、それぞれの階層に対応する処理系が提供する文書編集機能の名称をあわせて表示する。なお、表示スイッチ328は「ON」になっていると仮定して説明する。また、以下における表示処理は、図11のカーソル位置判定部120によってユーザの指定個所を判定し、その判定にしたがった対応する表示に対し、メニュー表示部122によって行われている。また、強調処理は、強調処理部118によって行われている。
【0088】
ここで、ユーザによって指定された処理系は第2HTML324であり、その指定の後、さらに、第2メニュー表示領域344に表示された文書編集機能のうち、「Format」が指定されたと仮定する。この場合、まず、第2メニュー表示領域344の直下に第3メニュー表示領域346が表示される。第3メニュー表示領域346には、文書編集機能として、Arrange機能348とIndent機能349が表示される。また、ユーザの指定にかかる第2HTML324の上位の処理系である第1SVG323が提供する文書編集機能として、Style機能347も、あわせて第3メニュー表示領域346に表示される。
【0089】
上位の処理系にかかる文書編集機能も表示させることによって、その処理系より下位の処理系にかかる文書を直接編集できるといった効果を得ることができる。たとえば、下位の処理系にかかる全ての文書の書体を一時に変えたい場合や、文書自体を回転して表示させたいような場合、個々の部分文書ごとに処理するよりも、まとめて処理したほうが正確性、時間コストの低減につながるからである。
【0090】
また、この場合において、ユーザの指定した処理系にかかるArrange機能348とIndent機能は、第3メニュー表示領域346と区別可能な態様で表示される。ここでは、Arrange機能348とIndent機能349の名称の下にアンダーラインを付した態様で表示することによって、識別可能としている。
【0091】
以上、本実施例における文書処理技術の特徴をまとめると次の通りである。画面に表示されている文書のうち、ユーザが指定した文書の境界を識別可能な態様で表示することによって、それ以外の文書との境界を明瞭に区別することができる。また、他の文書との境界を明瞭に区別することができるので編集が容易となり、ユーザの利便性を向上することができる。画面に表示されている複数の部分文書、もしくは、階層表示領域に表示されている処理系の階層構造、または、ファイル名表示領域に表示されているファイル名のいずれかをユーザが指定することによって、それぞれ対応する部分文書、階層、ファイル名をそれ以外の表示と明瞭に区別できるように表示することができる。また、他の表示と明瞭に区別することができるので編集が容易となり、ユーザの利便性を向上することができる。また、企業などの業務組織において取り扱われる文書ファイルのデータ整合性を保持しやすくなり、コストを低減できる。
【0092】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【図面の簡単な説明】
【0093】
【図1】本発明の実施形態に関する文書処理装置の構成を示す図である。
【図2】図1の文書処理装置の処理対象となるXML文書の例を示す図である。
【図3】図2に示したXML文書をHTMLで記述された表にマッピングする例を示す図である。
【図4(a)】図2に示したXML文書を図3に示した表にマッピングするための定義ファイルの例を示す図である。
【図4(b)】図2に示したXML文書を図3に示した表にマッピングするための定義ファイルの例を示す図である。
【図5】図2に示した成績管理ボキャブラリで記述されたXML文書を、図3に示した対応によりHTMLにマッピングして表示した画面の例を示す図である。
【図6】図1の定義ファイル生成部がユーザに提示するグラフィカルユーザインタフェースの例を示す図である。
【図7】図1の定義ファイル生成部により生成された画面レイアウトの他の例を示す図である。
【図8】図1の文書処理装置によるXML文書の編集画面の一例を示す図である。
【図9】図1の文書処理装置により編集されるXML文書の他の例を示す図である。
【図10】図9に示した文書を表示した画面の例を示す図である。
【図11】図1の表示制御部の構成例を示す図である。
【図12(a)】図11の表示制御部の動作の結果表示される画面の第1の表示例を示す図である。
【図12(b)】図11の表示制御部の動作の結果表示される画面の第2の表示例を示す図である。
【図12(c)】図11の表示制御部の動作の結果表示される画面の第3の表示例を示す図である。
【図12(d)】図11の表示制御部の動作の結果表示される画面の第4の表示例を示す図である。
【図12(e)】図11の表示制御部の動作の結果表示される画面の第5の表示例を示す図である。
【符号の説明】
【0094】
20 文書処理装置、 24 編集部、 100 文書処理装置、 110 表示制御部、 310 文書表示領域、 320 階層表示領域、 330 ファイル名表示領域、 340 メニュー表示領域。
【技術分野】
【0001】
この発明は、データ処理技術に関し、とくに、複数の文書からなるデータを処理する文書処理装置に関する。
【背景技術】
【0002】
近年、コンピュータの普及とネットワーク技術の進展に伴い、ネットワークを介した電子情報の交換が盛んになっている。これにより、従来においては紙ベースで行われていた事務処理の多くが、ネットワークベースの処理に置き換えられつつある。
【0003】
企業においても、個人の知識や情報を組織全体で活用する、いわゆるナレッジマネジメントが、重要な経営手法となってきている。多くの企業においては、社内にデータベースシステムを有し、従業員からの情報を電子ファイル化して蓄積する。その一方で、従業員も、この社内データベースに蓄積されたファイルにネットワークを介してアクセスする。これによって、組織全体としての業務効率の向上が図られる。
【0004】
この社内データベースに蓄積されるファイルの多くは、HTML(Hyper Text Markup Language)とよばれる言語によって作成されている。また、近年においては、XML(eXtensible Markup Language)とよばれる言語を用いて、これらのファイルが作成される例も多くなってきている。
【0005】
HTMLは、ウェブページを記述するための言語である。すなわち、HTMLは文書ファイルの表示方法を定義するマークアップ言語の一種である。これに対して、XMLはHTMLの様に、直接的にウェブページを記述することを目的とする言語というよりは、むしろ、文書ファイルに含まれるデータのデータ構造を定義する機能を有する言語といえる。XMLによって作成された文書ファイルは、別に表示レイアウト情報を与えることによって、ウェブページとして表示される。すなわち、XML文書においては、データの構造とその表示レイアウトが別々のものとして扱うことができる。XMLのように、マークアップ言語を生成するための言語はメタ言語ともよばれる。
【0006】
XMLは、ネットワークなどを介して他者とデータを共有するのに適した形式として注目されており、XML文書を作成、表示、編集するためのアプリケーションが開発されている(たとえば、特許文献1参照)。XML文書は、文書型定義などにより定義されたボキャブラリ(タグセット)に基づいて作成されている。
【特許文献1】特開2001−290804号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
企業内の多くの部署では、上述したように、XMLなどの文書を編集するためのアプリケーションを用いて、電子化された文書ファイルが作成され、また、更新がなされる。このような状況のもと、本発明者は以下の課題を認識した。すなわち、文書ファイルが複数のアプリケーションから作成されている場合、その文書ファイルの作成、編集の際に、その都度、対応するアプリケーションを起動するなどして行わなければならないといった課題である。たとえば、ワードプロセッサ機能を有するアプリケーション、表計算機能を有するアプリケーション、描画機能を有するアプリケーションのそれぞれで文書を作成し、1つのファイルに統合して編集したい場合などが考えられる。
【0008】
本発明はこうした状況に鑑みてなされたものであり、その目的は、複数のタグセットによって作成された文書を処理可能な文書処理装置および文書処理方法を提供することにある。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本発明のある態様の文書処理装置は、特定の階層構造を有する複数のタグセットによりそれぞれ記述された部分文書からなる文書を処理する文書処理装置であって、部分文書のそれぞれを処理する複数の処理系と、部分文書のそれぞれに対して、部分文書を表示する文書表示領域を割り当て、文書表示領域に、対応する部分文書を表示して、ユーザによる部分文書の編集を受け付ける編集部と、を備える。
【0010】
ここで、「特定の階層構造を有する複数のタグセット」とは、個々のタグセットが、その内部に他のタグセットを有するように階層化されていることを含む。また、「タグセットによりそれぞれ記述された部分文書」とは、特定のマークアップ言語またはボキャブラリにより記述された文書などを含む。「部分文書のそれぞれを処理する複数の処理系」とは、部分文書を記述しているタグセットにかかるマークアップ言語またはボキャブラリを解読して、画面に表示するためのソフトウェアなどを含み、たとえば、HTML(Hyper Text Markup Language)、SVG(Scalable Vector Graphics)などの処理系を含む。
【0011】
なお、以上の構成要素の任意の組合せや、本発明の構成要素や表現、もしくはそれらの一部を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを格納した記録媒体、データ構造などの間で相互に置換したものもまた、本発明の態様として有効である。
【発明の効果】
【0012】
本発明によれば、複数のタグセットで記述された構造化文書ファイルに含まれるデータを扱う上でのユーザの利便性を向上させる上で効果がある。
【発明を実施するための最良の形態】
【0013】
まず、本発明の実施形態にかかる文書処理装置の概要について説明する。文書処理装置は、編集部と、複数の処理系と、表示制御部と、階層解析部とを含む。ユーザは、複数のマークアップ言語または複数のボキャブラリを用いて、さまざまな文書を作成する。この個々のマークアップ言語等はタグセットとよばれる。ユーザは、階層構造を有するように複数のタグセットを記述して文章を編集でき、複数のタグセットはそれぞれ対応する処理系によって処理される。処理された複数のタグセットは、編集部によって統合され1つの文書として画面上の文書表示領域に表示される。画面上に表示された文書は、表示制御部によって、それぞれ境界が表示される。ユーザが画面上に表示された文書を編集する際、指定した部分に相当する文書(以下、「部分文書」と表記する。)の境界は、他の境界と識別可能な態様で表示される。
【0014】
また、階層解析部は、文書に含まれる処理系の階層構造を解析し、表示制御部は、その名称と階層関係を階層表示領域に表示する。表示された階層をユーザが指定することによって、対応する文書の境界が他の境界と識別可能な態様で表示される。同様に、文書表示領域に表示された文書を指定することによって、対応する階層が他の階層と識別可能な態様で表示される。また、文書に含まれるファイルは、ファイル名表示領域にその名称が表示される。前述と同様に、ファイル名表示領域に表示された名称をユーザが指定することによって、対応する文書、もしくは、対応する階層は、他と識別可能な態様で表示される。
【0015】
また、処理系は、それぞれ複数の文書編集機能を有している。ユーザが文書表示領域に表示された文書を指定した場合、その文書を処理している処理系の文書編集機能が、メニュー表示領域に表示される。また、ユーザが階層表示領域に表示された階層を指定した場合、その階層にかかる処理系の文書編集機能の名称が、メニュー表示領域に表示される。また、ユーザがファイル名表示領域に表示された階層を指定した場合、そのファイル名にかかる処理系の文書編集機能の名称が、メニュー表示領域に表示される。いずれの場合も、指定にかかる処理系より上位の階層にかかる処理系の文書編集機能の名称も、あわせて、メニュー表示領域に表示してもよい。
【0016】
以下、本実施例における文書処理装置の構成、動作について説明する。
【0017】
図1は、本発明の実施形態に関する文書処理装置20の構成を示す図である。文書処理装置20は、文書内のデータが階層構造を有する複数の構成要素に分類された構造化文書を処理するが、本実施形態では構造化文書の一例としてXML文書を処理する例について説明する。文書処理装置20は、主制御ユニット22、編集部24、表示制御部110、文書オブジェクトモデルユニット30(Document Object Model Unit。以下、「DOMユニット30」と略称する。)、処理系で代表される、カスケーディングスタイルシートユニット40(Cascading Style Sheet Unit。以下、「CSSユニット40」と略称する。)、HTMLユニット50、SVGユニット60、及びボキャブラリコネクションユニット80(Vocabulary Connection Unit。以下、「VCユニット80」と略称する。)、とを備える。これらの構成は、ハードウエアコンポーネントでいえば、任意のコンピュータのCPU、メモリ、メモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【0018】
主制御ユニット22は、プラグインのロードや、コマンド実行のフレームワークを提供する。編集部24は、XML文書を編集するためのフレームワークを提供する。文書処理装置20における文書の表示及び編集機能は、プラグインにより実現されており、文書の種別に応じて必要なプラグインが主制御ユニット22又は編集部24によりロードされる。主制御ユニット22又は編集部24は、処理対象となるXML文書の名前空間を参照して、XML文書がいずれのボキャブラリにより記述されているかを判別し、そのボキャブラリに対応した表示又は編集用のプラグインをロードして表示や編集を実行させる。例えば、文書処理装置20には、HTML文書の表示及び編集を行うHTMLユニット50、SVG文書の表示及び編集を行うSVGユニット60など、ボキャブラリ(タグセット)ごとに表示系及び編集系がプラグインとして実装されており、HTML文書を編集するときはHTMLユニット50が、SVG文書を編集するときはSVGユニット60が、それぞれロードされる。後述するように、HTMLとSVGの双方の構成要素を含む複合文書が処理対象となっている場合は、HTMLユニット50とSVGユニット60の双方がロードされる。また、上述のプラグインをロードする際に、プラグインにかかる機能をメニュー表示領域に表示してもよい。
【0019】
このような構成によれば、ユーザは、必要な機能のみを選択してインストールし、後から適宜機能を追加又は削除することができるので、プログラムを格納するハードディスクなどの記録媒体の記憶領域を有効に活用することができ、また、プログラム実行時にも、メモリの浪費を防ぐことができる。また、機能拡張性に優れており、開発主体としても、プラグインの形で新たなボキャブラリに対応することが可能なので開発が容易となり、ユーザとしても、プラグインの追加により容易かつ低コストにて機能を追加することができる。
【0020】
編集部24は、ユーザインターフェースを介してユーザから編集指示のイベントを受け付け、そのイベントを適切なプラグインなどに通知するともに、イベントの再実行(リドゥ)又は実行の取消(アンドゥ)などの処理を制御する。また、ユーザの編集対象となる文書を読み込んだ際に、文書に含まれる部分文書を解析する。具体的には、部分文書を処理するための処理系を選択する。また、部分文書にかかるタグセットの階層構造を解析する。また、部分文書のそれぞれに対して、部分文書を表示する文書表示領域を割り当る。割り当てられた文書表示領域に、対応する部分文書を表示して、ユーザによる部分文書の編集を受け付ける。詳細は後述する。
【0021】
表示制御部110は、編集部24を介して受け付けたユーザからの指示にもとづいて、画面上の表示を制御する。表示制御部110は、文書表示領域の境界を表示する。詳細は後述する。
【0022】
DOMユニット30は、DOM提供部32、DOM生成部34、及び出力部36を含み、XML文書をデータとして扱うときのアクセス方法を提供するために定められた文書オブジェクトモデル(Document Object Model。以下、「DOM」と略称する。)に準拠した機能を実現する。DOM提供部32は、編集部24に定義されているインタフェースを満たすDOMの実装である。DOM生成部34は、XML文書からDOMツリーを生成する。後述するように、処理対象となるXML文書が、VCユニット80により他のボキャブラリにマッピングされる場合は、マッピング元のXML文書に対応するソースツリーと、マッピング先のXML文書に対応するデスティネーションツリーが生成される。出力部36は、例えば編集終了時に、DOMツリーをXML文書として出力する。
【0023】
CSSユニット40は、CSS解析部42、CSS提供部44、及びレンダリング部46を含み、CSSに準拠した表示機能を提供する。CSSとは、HTMLの表示のスタイルを指定するための言語であって、HTMLユニット50に付随する子処理系にあたる。CSSは、フォント、色の指定などを行うことができる。CSS解析部42は、CSSの構文を解析するパーサの機能を有する。CSS提供部44は、CSSオブジェクトの実装であり、DOMツリーに対してCSSのカスケード処理を行う。レンダリング部46は、CSSのレンダリングエンジンであり、CSSを用いてレイアウトされるHTMLなどのボキャブラリで記述された文書の表示、描画に用いられる。
【0024】
HTMLユニット50は、HTMLにより記述された文書を表示又は編集する。SVGユニット60は、SVGにより記述された文書を表示又は編集する。これらの表示/編集系は、プラグインの形で実現されており、それぞれ、文書を表示するHTML表示部(Canvas)56、SVG表示部66、編集指示を含むイベントを送受信するHTML制御部(Editlet)52、SVG制御部62、編集コマンドを受けてDOMに対して編集を行うHTML編集部(Zone)54、SVG編集部64を備える。HTML制御部52又はSVG制御部62が外部からDOMツリーの編集コマンドを受け付けると、HTML編集部54又はSVG編集部64がDOMツリーを変更し、HTML表示部56又はSVG表示部66が表示を更新する。これらは、MVC(Model-View-Controller)と呼ばれるフレームワークに類似する構成をとっており、概ね、HTML表示部56及びSVG表示部66が「View」に、HTML制御部52及びSVG制御部62が「Controller」に、HTML編集部54及びSVG編集部64とDOMの実体が「Model」に、それぞれ対応する。本実施形態の文書処理装置20では、XML文書をツリー表示形式で編集するだけでなく、それぞれのボキャブラリに応じた編集を可能とする。例えば、HTMLユニット50は、HTML文書をワードプロセッサに類似した方式で編集するためのユーザインターフェースを提供し、SVGユニット60は、SVG文書を画像描画ツールに類似した方式で編集するためのユーザインターフェースを提供する。
【0025】
VCユニット80は、マッピング部82、定義ファイル取得部84、及び定義ファイル生成部86を含み、あるボキャブラリにより記述された文書を、他のボキャブラリにマッピングすることにより、マッピング先のボキャブラリに対応した表示編集用プラグインで文書を表示又は編集するためのフレームワークを提供する。本実施形態では、この機能を、ボキャブラリコネクション(Vocabulary Connection:VC)と呼ぶ。定義ファイル取得部84は、マッピングの定義を記述したスクリプトファイルを取得する。この定義ファイルは、ノードごとに、ノード間の対応(コネクション)を記述する。このとき、各ノードの要素値や属性値の編集の可否を指定してもよい。また、ノードの要素値や属性値を用いた演算式を記述してもよい。これらの機能については、後で詳述する。マッピング部82は、定義ファイル取得部84が取得したスクリプトファイルを参照して、DOM生成部34にデスティネーションツリーを生成させ、ソースツリーとデスティネーションツリーの対応関係を管理する。定義ファイル生成部86は、ユーザが定義ファイルを生成するためのグラフィカルユーザインターフェースを提供する。
【0026】
VCユニット80は、ソースツリーとデスティネーションツリーの間のコネクションを監視し、表示を担当するプラグインにより提供されるユーザインタフェースを介してユーザから編集指示を受け付けると、まずソースツリーの該当するノードを変更する。DOMユニット30が、ソースツリーが変更された旨のミューテーションイベントを発行すると、VCユニット80は、そのミューテーションイベントを受けて、ソースツリーの変更にデスティネーションツリーを同期させるべく、変更されたノードに対応するデスティネーションツリーのノードを変更する。デスティネーションツリーを表示/編集するプラグイン、例えばHTMLユニット50は、デスティネーションツリーが変更された旨のミューテーションイベントを受けて、変更されたデスティネーションツリーを参照して表示を更新する。このような構成により、少数のユーザにより利用されるローカルなボキャブラリにより記述された文書であっても、他のメジャーなボキャブラリに変換することで、文書を表示することができるとともに、編集環境が提供される。
【0027】
文書処理装置20により文書を表示又は編集する動作について説明する。文書処理装置20が処理対象となる文書を読み込むと、DOM生成部34が、そのXML文書からDOMツリーを生成する。また、主制御ユニット22又は編集部24は、名前空間を参照して文書を記述しているボキャブラリを判別する。そのボキャブラリに対応したプラグインが文書処理装置20にインストールされている場合は、そのプラグインをロードして、文書を表示/編集させる。プラグインがインストールされていない場合は、マッピングの定義ファイルが存在するか否かを確認する。定義ファイルが存在する場合、定義ファイル取得部84が定義ファイルを取得し、その定義に従って、デスティネーションツリーが生成され、マッピング先のボキャブラリに対応するプラグインにより文書が表示/編集される。複数のボキャブラリを含む複合文書である場合は、後述するように、それぞれのボキャブラリに対応したプラグインにより、文書の該当箇所がそれぞれ表示/編集される。定義ファイルが存在しない場合は、文書のソース又はツリー構造を表示し、その表示画面において編集が行われる。
【0028】
図2は、図1の文書処理装置20の処理対象となるXML文書の例を示す図である。このXML文書は、生徒の成績データを管理するために用いられる。XML文書のトップノードである構成要素「成績」は、配下に、生徒ごとに設けられた構成要素「生徒」を複数有する。構成要素「生徒」は、属性値「名前」と、子要素「国語」、「数学」、「理科」、「社会」を有する。属性値「名前」は、生徒の名前を格納する。構成要素「国語」、「数学」、「理科」、「社会」は、それぞれ、国語、数学、理科、社会の成績を格納する。例えば、名前が「A」である生徒の国語の成績は「90」、数学の成績は「50」、理科の成績は「75」、社会の成績は「60」である。以下、この文書で使用されているボキャブラリ(タグセット)を、「成績管理ボキャブラリ」と呼ぶ。
【0029】
本実施形態の文書処理装置20は、成績管理ボキャブラリの表示/編集に対応したプラグインを有しないので、この文書をソース表示、ツリー表示以外の方法で表示するためには、前述したVC機能が用いられる。すなわち、成績管理ボキャブラリを、プラグインが用意された別のボキャブラリ、例えば、HTMLやSVGなどにマッピングするための定義ファイルを用意する必要がある。ユーザ自身が定義ファイルを作成するためのユーザインターフェースについては後述することにして、ここでは、既に定義ファイルが用意されているとして説明を進める。
【0030】
図3は、図2に示したXML文書をHTMLで記述された表にマッピングする例を示す図である。図3の例では、成績管理ボキャブラリの「生徒」ノードを、HTMLにおける表(「TABLE」ノード)の行(「TR」ノード)に対応づけ、各行の第1列には属性値「名前」を、第2列には「国語」ノードの要素値を、第3列には「数学」ノードの要素値を、第4列には「理科」ノードの要素値を、第5列には「社会」ノードの要素値を、それぞれ対応付ける。これにより、図2に示したXML文書を、HTMLの表形式で表示することができる。また、これらの属性値及び要素値は、編集可能であることが指定されており、ユーザがHTMLによる表示画面上で、HTMLユニット50の編集機能により、これらの値を編集することができる。第6列には、国語、数学、理科、社会の成績の加重平均を算出する演算式が指定されており、生徒の成績の平均点が表示される。このように、定義ファイルに演算式を指定可能とすることにより、より柔軟な表示が可能となり、編集時のユーザの利便性を向上させることができる。なお、第6列は、編集不可であることが指定されており、平均点のみを個別に編集することができないようにしている。このように、マッピング定義において、編集の可否を指定可能とすることにより、ユーザの誤操作を防ぐことができる。
【0031】
図4(a)及び図4(b)は、図2に示したXML文書を図3に示した表にマッピングするための定義ファイルの例を示す。この定義ファイルは、定義ファイル用に定義されたスクリプト言語により記述される。定義ファイルには、コマンドの定義と、表示のテンプレートが記述されている。図4(a)(b)の例では、コマンドとして、「生徒の追加」と「生徒の削除」が定義されており、それぞれ、ソースツリーにノード「生徒」を挿入する操作と、ソースツリーからノード「生徒」を削除する操作が対応付けられている。また、テンプレートとして、表の第1行に「名前」、「国語」などの見出しが表示され、第2行以降に、ノード「生徒」の内容が表示されることが記述されている。ノード「生徒」の内容を表示するテンプレート中、「text-of」と記述された項は「編集可能」であることを意味し、「value-of」と記述された項は「編集不可能」であることを意味する。また、ノード「生徒」の内容を表示する行のうち、第6列には、「(src:国語 + src:数学 + src:理科 + src:社会) div 4」という計算式が記述されており、生徒の成績の平均が表示されることを意味する。
【0032】
図5は、図2に示した成績管理ボキャブラリで記述されたXML文書を、図3に示した対応によりHTMLにマッピングして表示した画面の例を示す。表90の各行には、左から、各生徒の名前、国語の成績、数学の成績、理科の成績、社会の成績、及び平均点が表示されている。ユーザは、この画面上で、XML文書を編集することができる。たとえば、第2行第3列の値を「70」に変更すると、このノードに対応するソースツリーの要素値、すなわち、生徒「B」の数学の成績が「70」に変更される。このとき、VCユニット80は、デスティネーションツリーをソースツリーに追従させるべく、デスティネーションツリーの該当箇所を変更し、HTMLユニット50が、変更されたデスティネーションツリーに基づいて表示を更新する。したがって、画面上の表においても、生徒「B」の数学の成績が「70」に変更され、更に、平均点が「55」に変更される。
【0033】
図5に示した画面には、図4(a)(b)に示した定義ファイルに定義されたように、「生徒の追加」及び「生徒の削除」のコマンドがメニューに表示される。ユーザがこれらのコマンドを選択すると、ソースツリーにおいて、ノード「生徒」が追加又は削除される。このように、本実施形態の文書処理装置20では、階層構造の末端の構成要素の要素値を編集するのみではなく、階層構造を編集することも可能である。このようなツリー構造の編集機能は、コマンドの形でユーザに提供されてもよい。また、例えば、表の行を追加又は削除するコマンドが、ノード「生徒」を追加又は削除する操作に対応づけられてもよい。また、他のボキャブラリを埋め込むコマンドがユーザに提供されてもよい。この表を入力用テンプレートとして、穴埋め形式で新たな生徒の成績データを追加することもできる。以上のように、VC機能により、HTMLユニット50の表示/編集機能を利用しつつ、成績管理ボキャブラリで記述された文書を編集することが可能となる。
【0034】
図6は、ユーザが定義ファイルを生成するために、図1の定義ファイル生成部86がユーザに提示するグラフィカルユーザインタフェースの例を示す図である。画面左側の第1領域91には、マッピング元のXML文書がツリー表示されている。画面右側の第2領域92には、マッピング先のXML文書の画面レイアウトが示されている。この画面レイアウトは、HTMLユニット50により編集可能となっており、ユーザは、画面右側の第2領域92において、文書を表示するための画面レイアウトを作成する。そして、例えば、マウスなどのポインティングデバイスにより、画面左側の第1領域91に表示されたマッピング元のXML文書のノードを、画面右側の第2領域92に表示されたHTMLによる画面レイアウト中へドラッグ&ドロップ操作を行うことにより、マッピング元のノードと、マッピング先のノードとのコネクションが指定される。例えば、要素「生徒」の子要素である「数学」を、HTML画面の表90の第1行第3列にドロップすると、「数学」ノードと、3列目の「TD」ノードの間にコネクションが張られる。各ノードには、編集の可否が指定できるようになっている。また、表示画面中には、演算式を埋め込むこともできる。画面の編集が終わると、定義ファイル生成部86は、画面レイアウトとノード間のコネクションを記述した定義ファイルを生成する。
【0035】
XHTML、MathML、SVGなどの主要なボキャブラリに対応したビューワやエディタは既に開発されているが、図2に示した文書のようなオリジナルなボキャブラリで記述された文書に対応したビューワやエディタを開発するのは現実的でない。しかし、上記のように、他のボキャブラリにマッピングするための定義ファイルを作成すれば、ビューワやエディタを開発しなくても、VC機能を利用して、オリジナルなボキャブラリで記述された文書を表示・編集することができる。
【0036】
図7は、図1の定義ファイル生成部86により生成された画面レイアウトの他の例を示す図である。図7の例では、成績管理ボキャブラリで記述されたXML文書を表示するための画面に、表90と、円グラフ93が作成されている。この円グラフ93は、SVGにより記述される。後述するように、本実施形態の文書処理装置20は、一つのXML文書内に複数のボキャブラリを含む複合文書を処理することができるので、この例のように、HTMLで記述された表90と、SVGで記述された円グラフ93とを、一つの画面上に表示することができる。
【0037】
図8は、図1の文書処理装置20によるXML文書の編集画面の一例を示す図である。図8の例では、一つの画面が複数に分割されており、それぞれの領域において、処理対象となるXML文書を異なる複数の表示形式により表示している。第3領域94には、文書のソースが表示されており、第4領域95には、文書のツリー構造が表示されており、第5領域96には、図5に示したHTMLにより記述された表が表示されている。これらのいずれの画面上においても、文書の編集が可能であり、いずれかの画面上でユーザが編集を行うと、ソースツリーが変更され、それぞれの画面の表示を担当するプラグインが、ソースツリーの変更を反映すべく画面を更新する。具体的には、ソースツリーの変更を通知するミューテーションイベントのリスナーとして、それぞれの編集画面の表示を担当するプラグインの表示部を登録しておき、いずれかのプラグイン又はVCユニット80によりソースツリーが変更されたときに、編集画面を表示中の全ての表示部が、発行されたミューテーションイベントを受け取って画面を更新する。このとき、プラグインがVC機能により表示を行っている場合は、VCユニット80がソースツリーの変更に追従してデスティネーションツリーを変更した後、変更されたデスティネーションツリーを参照してプラグインの表示部が画面を更新する。
【0038】
例えば、ソース表示及びツリー表示を、専用のプラグインにより実現している場合は、ソース表示用プラグインとツリー表示用プラグインは、デスティネーションツリーを用いず、直接ソースツリーを参照して表示を行う。この場合、いずれかの画面において編集が行われると、ソース表示用プラグインとツリー表示用プラグインは、変更されたソースツリーを参照して画面を更新し、第5領域96の画面を担当しているHTMLユニット50は、ソースツリーの変更に追従して変更されたデスティネーションツリーを参照して画面を更新する。
【0039】
ソース表示及びツリー表示は、VC機能を利用して実現することもできる。すなわち、ソース、ツリー構造をHTMLによりレイアウトし、そのHTMLにXML文書をマッピングして、HTMLユニット50により表示してもよい。この場合、ソース形式、ツリー形式、表形式の3つのデスティネーションツリーが生成されることになる。いずれかの画面において編集が行われると、VCユニット80は、ソースツリーを変更した後、ソース形式、ツリー形式、表形式の3つのデスティネーションツリーをそれぞれ変更し、HTMLユニット50は、それらのデスティネーションツリーを参照して、3つの画面を更新する。
【0040】
このように、一つの画面上に複数の表示形式で文書を表示することにより、ユーザの利便性を向上させることができる。例えば、ユーザは、ソース表示又はツリー表示により文書の階層構造を把握しつつ、表90などを用いて視覚的に分かりやすい形式で文書を表示し、編集することができる。上記の例では、一つの画面を分割して複数の表示形式による画面を同時に表示したが、一つの画面に一つの表示形式による画面を表示し、表示形式をユーザの指示により切り替え可能としてもよい。この場合、主制御ユニット22が、ユーザから表示形式の切り替え要求を受け付け、各プラグインに指示して表示を切り替える。
【0041】
図9は、文書処理装置20により編集されるXML文書の他の例を示す図である。図9に示したXML文書では、SVG文書の「foreignObject」タグの中にXHTML文書が埋め込まれており、さらに、XHTML文書の中にMathMLで記述された数式が入っている。このような場合、編集部24が、名前空間を参照して、適切な表示系に描画作業を振り分ける。図9の例では、編集部24は、まず、SVGユニット60に四角形を描画させ、つづいて、HTMLユニット50にXHTML文書を描画させる。さらに、図示しないMathMLユニットに、数式を描画させる。こうして、複数のボキャブラリを包含する複合文書が適切に表示される。表示結果を図10に示す。
【0042】
文書編集中、カーソル(キャリッジ)の位置に応じて、表示されるメニューを切り替えてもよい。すなわち、カーソルが、SVG文書が表示された領域内に存在するときは、SVGユニット60が提供するメニュー、又はSVG文書をマッピングするための定義ファイルに定義されたコマンドを表示し、カーソルが、XHTML文書が表示された領域内に存在するときは、HTMLユニット50が提供するメニュー、又はXHTML文書をマッピングするための定義ファイルに定義されたコマンドを表示する。これにより、編集位置に応じて適切なユーザインターフェースを提供することができる。
【0043】
複合文書において、あるボキャブラリに対応する適切なプラグイン又はマッピング定義ファイルがなかった場合は、そのボキャブラリにより記述された部分は、ソース表示又はツリー表示されてもよい。従来、ある文書に他の文書を埋め込んだ複合文書を開くとき、埋め込まれた文書を表示するアプリケーションがインストールされていないと、その内容を表示することができなかったが、本実施形態では、表示用のアプリケーションが存在しなくても、テキストデータにより構成されたXML文書をソース表示又はツリー表示することにより内容を把握することができる。これは、テキストベースであるXMLなどの文書ならではの特徴といえる。
【0044】
データがテキストベースで記述されることの他の利点として、例えば、複合文書中の、あるボキャブラリにより記述される部分において、同一文書内の他のボキャブラリで記述された部分のデータを参照してもよい。また、文書内で検索を実行する時に、SVGなどの図に埋め込まれた文字列も検索対象とすることができる。
【0045】
あるボキャブラリにより記述された文書内に、他のボキャブラリのタグを用いてもよい。このXML文書は、妥当(valid)ではないが、整形式(well-formed)であれば、有効なXML文書として処理可能である。この場合、挿入された他のボキャブラリのタグは、定義ファイルによりマッピングされてもよい。例えば、XHTML文書中に、「重要」、「最重要」などのタグを使用し、これらのタグで囲まれた部分を強調表示してもよいし、重要度の順にソートして表示してもよい。
【0046】
図10に示した編集画面において、ユーザにより文書が編集されると、編集された部分を担当するプラグイン又はVCユニット80がソースツリーを変更する。ソースツリーには、ノードごとにミューテーションイベントのリスナーを登録できるようになっており、通常は、各ノードが属するボキャブラリに対応したプラグインの表示部又はVCユニット80がリスナーとして登録される。DOM提供部32は、ソースツリーが変更されると、変更されたノードから上位の階層へたどって、登録されたリスナーがあれば、そのリスナーへミューテーションイベントを発行する。例えば、図9に示した文書において、<html>ノードの下位のノードが変更された場合、<html>ノードにリスナーとして登録されたHTMLユニット50にミューテーションイベントが通知されるとともに、その上位の<svg>ノードにリスナーとして登録されたSVGユニット60にもミューテーションイベントが通知される。このとき、HTMLユニット50は、変更されたソースツリーを参照して表示を更新する。SVGユニット60は、自身のボキャブラリに属するノードが変更されていないので、ミューテーションイベントを無視してもよい。
【0047】
編集の内容によっては、HTMLユニット50による表示の更新に伴って、全体のレイアウトが変わる可能性がある。この場合は、画面のレイアウトを管理する構成、例えば最上位のノードの表示を担当するプラグインにより、プラグインごとの表示領域のレイアウトが更新される。例えば、HTMLユニット50による表示領域が以前より大きくなった場合、HTMLユニット50は、まず自身の担当する部分を描画して、表示領域の大きさを決定する。そして、画面のレイアウトを管理する構成に、変更後の表示領域の大きさを通知し、レイアウトの更新を依頼する。画面のレイアウトを管理する構成は、通知を受けて、プラグインごとの表示領域を再レイアウトする。こうして、編集された部分の表示が適切に更新されるとともに、画面全体のレイアウトが更新される。
【0048】
ここで、編集部24について詳細に説明する。編集部24は、図示しない階層解析部を含む。編集部24は、特定の階層構造を有する複数のタグセットによりそれぞれ記述された部分文書からなる文書を編集するためのブロックである。階層解析部は、読み込まれた文書にかかるタグセットの階層構造を解析する。編集部24は、解析結果にもとづいて、それぞれのタグセットを処理する処理系に指令を与える。また、編集部24は、部分文書のそれぞれに対して、部分文書を表示する文書表示領域を割り当て、文書表示領域に、対応する部分文書を表示して、ユーザによる部分文書の編集を受け付ける。
【0049】
ここで、表示制御部110について詳細に説明する。図11は、図1の表示制御部110の構成例を示す図である。表示制御部110は、境界表示部112と、名称表示部114と、階層構造表示部116と、強調処理部118と、カーソル位置判定部120と、メニュー表示部122を含む。
【0050】
境界表示部112は、部分文書の文書表示領域の境界を表示する。また、境界表示部112は、編集部24によって編集の対象となっている部分文書のうち、少なくとも最上位の階層のタグセットにかかる部分文書に割り当てられた文書表示領域310の境界を表示する。このさい、編集の対象となっている部分文書に含まれる全ての階層における境界をあわせて表示してもよい。
【0051】
階層構造表示部116は、編集部において編集される文書と並列して、同一画面上に、編集部24における図示しない階層解析部によって解析されたそれぞれの階層のタグセットにかかる処理系の名称を階層表示領域に表示する。
【0052】
名称表示部114は、文書に含まれる複数のファイルのそれぞれの名称をファイル名表示領域に表示する。
【0053】
メニュー表示部122は、編集部24の階層解析部によって解析された階層構造にしたがって、同一画面上に、タグセットにかかる処理系が提供する文書編集機能の名称をメニュー表示領域に表示する。また、メニュー表示部122は、編集部において編集の対象となっている部分文書に対応するタグセットより上位の階層のタグセットにかかる処理系が提供する文書編集機能の名称も、あわせて表示してもよい。メニュー表示領域は、基本メニューと、プラグインされた機能にかかるメニューとを表示する領域を含む。たとえば、基本メニューには、文書の保存、読出し、単語の検索、置換などの機能が含まれる。また、プラグインされた機能にかかるメニューには、上付文字とする機能、指定された領域に存在する数値を合計するための機能、ユーザによるマクロ機能などが含まれる。
【0054】
カーソル位置判定部120は、ユーザが編集処理を行う際にマウスなどを操作することによって表示されたポインタ、または、カーソルなどの画面上の位置を判定する。ユーザは、画面に表示された複数の部分文書のうち、編集を行いたい部分文書が表示されている位置にこのポインタ等を移動し、マウスのボタンを押し下げるなどの行為によって、その指定された部分文書を編集対象とできる。以下においては、説明を簡易なものとするために、「ユーザが編集処理を行う際にマウスなどを操作することによって画面上に表示されたポインタ、または、カーソルを移動し、所定の個所を選択して指定する」ことを、単に「ユーザが指定する」または「ユーザの指定による」などと略記して表現することとする。
【0055】
強調処理部118は、境界表示部112によって部分文書の境界を表示する際に、他の文書表示領域の境界と比べて識別可能な態様で表示する。また、階層構造表示部116において表示する編集の対象となっている部分文書の階層について、その部分文書に対応する処理系にかかる階層を他の処理系にかかる階層と比べて識別可能な態様で階層表示領域に表示する。また、名称表示部114において表示する編集の対象となっている部分文書について、その部分文書に対応するファイルの名称を他のファイルの名称と識別可能な態様でファイル名表示領域に表示する。また、メニュー表示部122において文書編集機能の名称を表示する際に、編集部において編集の対象となっている部分文書に対応する処理系が提供する文書編集機能の名称を他の文書編集機能の名称と識別可能な態様でメニュー表示領域に表示する。
【0056】
ここで、識別可能な態様とは、たとえば、境界を実線と破線とで分けて表示し、または、境界の線の色彩、濃淡を変えて表示し、または、境界の線の太さを変えて表示することなどを含む。また、強弱をつけて表示することなどを含み、たとえば、実線と破線で分けて表示することによって識別可能な態様としてもよく、また、色彩、濃淡に変化をつけて表示することによって識別可能な態様としてもよい。また、一方の領域の背景を、他方の領域の背景とは異なるように、特定の色彩、もしくは模様により描画してもい。また、一方を表示し、他方を表示しないことによって識別可能な態様としてもよい。
【0057】
また、強調処理部118は、階層構造表示部116によって行われる表示処理と連動して、ユーザの指定による階層に対応した部分文書の文書表示領域の境界を他の文書表示領域の境界と比べて識別可能な態様で表示する。さらに、対応するファイルの名称も、他のファイルの名称と比べて識別可能な態様でファイル名表示領域に、連動して表示する。
【0058】
また、強調処理部118は、名称表示部114によって行われる表示処理と連動して、ユーザの指定によるファイルの名称に対応した部分文書の境界を他の部分文書の境界と比べて識別可能な態様で表示する。さらに、指定されたファイルの名称に対応する部分文書にかかる処理系を示す階層も、他の処理系にかかる階層と比べて識別可能な態様で階層表示領域に、連動して表示する。
【0059】
また、強調処理部118は、ユーザがメニュー指定動作を行う際のメニュー表示領域における強調処理も行う。具体的には、ユーザによるメニュー指定動作中に、すでにユーザによって指定されていた部分文書、もしくは、部分文書にかかる階層、または、部分文書に含まれるファイルについての強調処理に連動して、対応する処理系が提供する文書編集機能の名称についてもあわせて強調処理を行う。
【0060】
以上のような構成をとることにより、画面に表示されている複数の部分文書、もしくは、階層表示領域に表示されている処理系の階層構造、または、ファイル名表示領域に表示されているファイル名のいずれかをユーザが指定することによって、それぞれ対応する部分文書、階層、ファイル名をそれ以外の表示と明瞭に区別できるように表示することができる。また、他の表示と明瞭に区別することができるので編集が容易となり、ユーザの利便性を向上することができる。
【0061】
以下、表示制御部110による動作の結果表示される画面の例について、図12(a)〜(e)を用いて説明する。まずはじめに、図12(a)を用いて、表示される画面の全体について説明する。つぎに、図12(b)を用いて、文書を表示する領域において、各文書の境界をすべて表示した場合について説明する。つぎに、図12(c)と図12(d)を用いて、文書を表示する領域においていずれかの部分文書が指定された場合、その指定と連動して、対応する階層と、対応するファイル名とが強調して表示される場合について説明する。最後に、図12(e)を用いて、それぞれの処理系が提供する文書編集機能をメニュー表示領域に表示した場合について説明する。
【0062】
図12(a)は、図11の表示制御部110の動作の結果表示される画面の第1の表示例を示す図である。第1の表示例において、画面は、ランチャ表示領域300と、文書表示領域310と、階層表示領域320と、ファイル名表示領域330と、メニュー表示領域340で代表される第1メニュー表示領域342と第2メニュー表示領域344とを含む。
【0063】
なお、ランチャ表示領域300は、「Launcher」と表示された領域を起点とした、画面下方までの領域を含む。また、文書表示領域310は、「Document View」と表示された領域を起点とした、画面下方までの領域を含む。また、階層表示領域320は、「Components」と表示された領域を起点とした、画面下方までの領域を含む。また、ファイル名表示領域330は、「Files」と表示された領域を起点とした、画面下方までの領域を含む。
【0064】
また、メニュー表示領域340は、図12(a)中において破線で囲った部分の領域であって、「File」と、「Edit」と、「Show」と、「Favorite」と、「Tools」と、「Help」と、「Insert」、「Format」と、「Section」と、「Graph」と、「Help」と、「Debug」と、の名称が表示されている領域を含む。また、第1メニュー表示領域342は、メニュー表示領域340のうち、基本メニューを表示するための領域である。基本メニューは、「File」と、「Edit」と、「Show」と、「Favorite」と、「Tools」と、「Help」と、を含む。また、第2メニュー表示領域344は、プラグインされた機能を表示するための領域である。ここでは、プラグインされた機能として、「Insert」と、「Format」と、「Section」と、「Graph」と、「Help」と、「Debug」と、を含む。
【0065】
ランチャ表示領域300は、テンプレート表示領域302と、ブックマーク表示領域306とヒストリー表示領域308とを含む領域である。ここで、ランチャとは、各種処理系を用いた文書の編集を補助するための機能を含み、ランチャ表示領域300とは、文書の編集を補助するための機能の名称を表示する領域を含む。
【0066】
また、テンプレートとは、タグセットのひな形を含む。ひな形は、そのタグセットのエディタであるとも言え、文書表示領域310に、直接、文章を記述することによって、文章を含むタグセットを作成することができる。テンプレート表示領域302とは、指定可能な部分文書にかかる処理系の名称と、いずれの処理系のテンプレートが選択されているかを示すチェックボックスと、を含む。たとえば、図12(a)中においては、テンプレートとして、SVG303と、XHTML304とが表示されている。ここで、それぞれの表示の左側に表示されたチェックボックスをユーザが指定することによって、文書表示領域310において編集する文書の処理が選択される。
【0067】
また、ブックマークとは、ユーザがした文書の編集において、いずれかの時点においてユーザが指定したことにより記憶させた文書の名称、もしくは文書内の位置を含み、単に「しおり」ともよばれる。ブックマーク表示領域306には、文書の名称、もしくは文書の位置を行番号、もしくは、座標として、記憶された順序で列挙される。また、ヒストリーとは、ユーザが過去に編集した文書、または、ユーザがした文書の編集のうち、特定の処理を行った事実の時系列を含み、単に「履歴」ともよばれる。ヒストリー表示領域308には、ユーザが過去に編集した文書の名称、または、ユーザが行った特定の処理の名称が時系列順に表示される。ここで、特定の処理とは、たとえば、文書のいずれかの部分を消去する処理や、後に貼り付けるために記憶させるカット処理、または、記憶した部分を貼り付けるペースト処理、または、新たな部分文書を追加する処理などを含む。ヒストリー表示領域308に表示されたヒストリーのいずれかをユーザが指定することによって、その指定にかかる処理の状態に戻す、いわゆるアンドウ処理を行えるようにしてもよい。
【0068】
文書表示領域310は、文書を表示するための領域であって、複数のタグセットにより記述された文書を表示してもよく、また、処理系にかかるタグセットの記述自体を表示してもよい。また、文書表示領域310は、文書表示領域310においてそれぞれの部分文書の境界を表示させるための表示スイッチ328を含む。この表示スイッチ328をユーザが指定することによって、境界表示の有無が切り替わる。図12(a)においては、境界を表示しないモード「OFF」になっているので、文書表示領域310の文書において境界は表示されていない。
【0069】
階層表示領域320は、文書表示領域310に表示された文書における階層構造を表示する領域である。文書表示領域310に表示された文書は、複数の部分文書から構成されており、それぞれの部分文書は、対応する処理系で処理されるように対応するタグセットで記述されている。個々のタグセットは、その内部に他のタグセットを有するように階層化されていてもよい。ここで、階層表示領域320に表示されるのは、タグセットを処理するための処理系の名称である。たとえば、階層表示領域320には、6つの処理系の名称が表示され、最上位の処理系は第1HTML322において「HTML」であることが明示されている。
【0070】
さらに、第1HTML322の「HTML」の1つ下の階層には、第1SVG323と第3SVG327において「SVG」が2つ存在する。また、一方の第1SVG323の下位には、第2HTML324において「HTML」が存在することを示している。さらに、第2HTML324の「HTML」の下位の階層には、MathML325において「MathML」と、第2SVG326において「SVG」とが存在することを示している。
【0071】
ここで、階層表示領域320に表示されたそれぞれの階層の左側に表示された「−」と「+」について説明する。「−」は、その右側に表示された処理系が下位の階層を有することを示している。また、「+」は、その右側に表示された処理系が下位の階層を有することを示しており、かつ、その下位の階層が階層表示領域320に表示されていないことを示している。「+」の場合においては、ユーザの指定により、下位の階層を表示させることができる。この場合、「+」の表示が「−」に変化する。また、「−」も「+」も表示されていないMathML325と第2SVG326は、その階層より下位の階層が存在しないことを示している。
【0072】
文書表示領域310に表示された部分文書が外部ファイルを含んでいる、もしくは、参照している部分文書が存在する場合がある。ファイル名表示領域330は、そのような場合に、その外部ファイルの名称を表示する領域である。図12(a)中においては、文書表示領域310中の部分文書に含まれている2つの外部ファイルとして、第1ファイル335と第2ファイル336を表示している。
【0073】
図12(b)は、図11の表示制御部110の動作の結果表示される画面の第2の表示例を示す図である。第2の表示例は、文書表示領域310において、それぞれの部分文書の境界を表示した例である。いいかえると、第2の表示例は、第1の表示例において、表示スイッチ328を「ON」としてそれぞれの部分文書の境界を表示させた場合の表示例であるともいえる。これらの境界の表示は、図11の境界表示部112によって実行される。なお、図12(a)と同一の部分については、同一の符号を付して、説明を省略する。
【0074】
第2の表示例においては、文書表示領域310に、それぞれの部分文書ごとに、その境界を表示している。この境界表示においては、第1境界312と、第2境界313と、第3境界314と、第4境界315と、第5境界316とが破線で表示されている。また、それぞれの境界は、部分文書の境界でもあり、内側の境界内の部分文書ほど、その部分文書を記述しているタグセットにかかる階層が下層に存在することを示している。たとえば、第2境界313は、第1境界312の内側に存在するので、対応する部分文書にかかる階層は、第2境界313のほうが第1境界312よりも下層となる。
【0075】
また、同一の境界内に2つ以上の境界が存在する場合、それらの階層は同一の階層となる。たとえば、第4境界315と第5境界316は、双方とも第3境界314の内部に存在し、かつ、第4境界315と第5境界316は、互いに他方を含んでいないので、双方は同一の階層となる。ここで、それぞれのタグセットにおいて定義された領域によっては、第4境界315と第5境界316のように、境界が互いに重なり合う場合もありうる。いずれの境界内の表示を優先して表示するかについて、タグセット内の記述によって決定してもよい。
【0076】
ここで、図12(c)〜図12(e)の説明をする前に、図12(b)に表示されたそれぞれの部分文書と、階層と、ファイルとの対応関係について説明する。第1境界312の内側における部分文書は、第1HTML322に対応している。また、第2境界313の内側における部分文書は、第1SVG323に対応している。また、第3境界314の内側における部分文書は、第2HTML324に対応している。また、第4境界315の内側における部分文書は、第2HTML324と、第1ファイル335とに対応している。また、第5境界316はの内側における部分文書は、第2SVG326と、第2ファイル336とに対応している。また、第3SVG327に対応する部分文書は、図12(a)中の画面上には表示されておらず、ユーザが画面をスクロールすることによって表示される部分文書に対応しているものとする。以下においては、上述の対応関係のもとにおける、画面の表示例について説明する。
【0077】
図12(c)は、図11の表示制御部110の動作の結果表示される画面の第3の表示例を示す図である。なお、図12(a)と同一の部分については、同一の符号を付して、説明を省略する。
【0078】
第3の表示例は、文書表示領域310に表示された複数の部分文書、階層表示領域320に表示された複数の処理系、もしくは、ファイル名表示領域330に表示された複数のファイルの名称のいずれかをユーザが指定した場合の強調表示についての表示例である。ここでは、ユーザの指定と連動して、それぞれ対応する部分文書の境界、階層、ファイルの名称を強調して表示することについて例を用いて説明する。なお、表示スイッチ328は「ON」になっていると仮定して説明する。以下における強調処理は、図11のカーソル位置判定部120によってユーザの指定個所を判定し、その判定にしたがって対応する表示に対し、強調処理部118によって行われている。
【0079】
ここで、ユーザによって、階層表示領域320内のMathML325が指定されたと仮定する。この場合、まず、階層表示領域320内のMathML325が強調して表示される。ここでは、強調表示の一例として、MathML325の処理系を表す六角形を複数の斜線からなる模様を付した。さらに、この強調表示に連動して、文書表示領域310中の対応する部分文書の第4境界315が強調して表示される。ここでは、破線で第4境界315を破線で表示し、他の境界を表示しないといった態様で強調処理を行っている。また、ファイル名表示領域330において、対応する第1ファイル335が連動して強調処理される。ここでは、MathML325の強調処理との対応を明確にするため、同様の強調処理を施している。なお、第4境界315と他の境界の双方を実線で表示し、第4境界315の実線を他の境界と区別できるような色彩で表してもよい。また、第4境界315を実線で表示し、他の境界を破線で表示してもよい。
【0080】
なお、文書表示領域310に表示されたいずれかの部分文書をユーザが指定することにより、その部分文書は、編集対象となり、ユーザが編集可能な状態となる。同様に、階層表示領域320に表示されたいずれかの階層、もしくは、ファイル名表示領域330に表示されたいずれかのファイルをユーザが指定することによって、指定に対応する部分文書は、強調して表示されるとともに、編集可能な状態となる。また、部分文書、階層、ファイルのいずれかをユーザが指定することによって、対応する処理系が提供するメニューが第2メニュー表示領域344に表示される。
【0081】
図12(d)は、図11の表示制御部110の動作の結果表示される画面の第4の表示例を示す図である。なお、図12(a)と同一の部分については、同一の符号を付して、説明を省略する。
【0082】
第4の表示例は、図12(c)と同様に、文書表示領域310内の複数の部分文書、階層表示領域320内の複数の処理系、もしくは、ファイル名表示領域330内の複数のファイルの名称のいずれかをユーザが指定した場合の強調表示についての表示例である。ここでは、ユーザの指定が、階層構造のうち、最下層でない階層にかかるものである場合についての表示例を示す。具体的には、指定された階層と、その階層より下の階層を対象として、それぞれの階層に対応する部分文書の境界をあわせて表示する。なお、表示スイッチ328は「ON」になっていると仮定して説明する。以下における強調処理は、図11のカーソル位置判定部120によってユーザの指定個所を判定し、その判定にしたがって対応する表示に対し、強調処理部118によって行われている。
【0083】
ここで、ユーザによって、階層表示領域320内の第2HTML324が指定されたと仮定する。この場合、まず、階層表示領域320内の第2HTML324を強調して表示する。さらに、第2HTML324より下層に存在するMathML325と第2SVG326についても、同様に強調処理を行う。ここでは、強調表示の一例として、第2HTML324の処理系を表す六角形を複数の斜線からなる模様を付した。また、同様に強調処理を行うMathML325と第2SVG326は、それぞれを別個に識別できるように、第2HTML324とは異なった強調処理となるような態様で表示した。
【0084】
さらに、この強調表示に連動して、文書表示領域310内の対応する部分文書の第3境界314が強調して表示される。さらに、第2HTML324より下層に存在するMathML325と第2SVG326とに対応する第4境界315、第5境界316の強調処理をあわせて行う。ここでは、第3境界314の境界を実線で表示し、また、第4境界315、第5境界316の境界を破線で表示することによって、それぞれを識別可能な態様としている。なお、指定された階層にかかる第3境界314の第3境界314のみを表示し、下層にかかる第4境界315、第5境界316を表示しないことによって、識別可能な態様としてもよい。
【0085】
また、ファイル名表示領域330において、MathML325に対応する第1ファイル335が連動して強調処理される。また、第2SVG326に対応する第2ファイル336が連動して強調処理される。ここでは、MathML325、第2SVG326との強調処理との対応を明確にするため、それぞれ同様の強調処理を施している。
【0086】
図12(e)は、図11の表示制御部110の動作の結果表示される画面の第5の表示例を示す図である。なお、図12(a)と同一の部分については、同一の符号を付して、説明を省略する。
【0087】
第5の表示例は、図12(d)と同様に、文書表示領域310に表示された複数の部分文書、階層表示領域320に表示された複数の処理系、もしくは、ファイル名表示領域330に表示された複数のファイルの名称のいずれかをユーザが指定した場合の強調表示についての表示例である。ここでは、さらに、ユーザにより第2メニュー表示領域344のいずれかが指定された場合のメニュー表示について説明する。具体的には、指定された階層と、その階層より上位の階層とを対象として、それぞれの階層に対応する処理系が提供する文書編集機能の名称をあわせて表示する。なお、表示スイッチ328は「ON」になっていると仮定して説明する。また、以下における表示処理は、図11のカーソル位置判定部120によってユーザの指定個所を判定し、その判定にしたがった対応する表示に対し、メニュー表示部122によって行われている。また、強調処理は、強調処理部118によって行われている。
【0088】
ここで、ユーザによって指定された処理系は第2HTML324であり、その指定の後、さらに、第2メニュー表示領域344に表示された文書編集機能のうち、「Format」が指定されたと仮定する。この場合、まず、第2メニュー表示領域344の直下に第3メニュー表示領域346が表示される。第3メニュー表示領域346には、文書編集機能として、Arrange機能348とIndent機能349が表示される。また、ユーザの指定にかかる第2HTML324の上位の処理系である第1SVG323が提供する文書編集機能として、Style機能347も、あわせて第3メニュー表示領域346に表示される。
【0089】
上位の処理系にかかる文書編集機能も表示させることによって、その処理系より下位の処理系にかかる文書を直接編集できるといった効果を得ることができる。たとえば、下位の処理系にかかる全ての文書の書体を一時に変えたい場合や、文書自体を回転して表示させたいような場合、個々の部分文書ごとに処理するよりも、まとめて処理したほうが正確性、時間コストの低減につながるからである。
【0090】
また、この場合において、ユーザの指定した処理系にかかるArrange機能348とIndent機能は、第3メニュー表示領域346と区別可能な態様で表示される。ここでは、Arrange機能348とIndent機能349の名称の下にアンダーラインを付した態様で表示することによって、識別可能としている。
【0091】
以上、本実施例における文書処理技術の特徴をまとめると次の通りである。画面に表示されている文書のうち、ユーザが指定した文書の境界を識別可能な態様で表示することによって、それ以外の文書との境界を明瞭に区別することができる。また、他の文書との境界を明瞭に区別することができるので編集が容易となり、ユーザの利便性を向上することができる。画面に表示されている複数の部分文書、もしくは、階層表示領域に表示されている処理系の階層構造、または、ファイル名表示領域に表示されているファイル名のいずれかをユーザが指定することによって、それぞれ対応する部分文書、階層、ファイル名をそれ以外の表示と明瞭に区別できるように表示することができる。また、他の表示と明瞭に区別することができるので編集が容易となり、ユーザの利便性を向上することができる。また、企業などの業務組織において取り扱われる文書ファイルのデータ整合性を保持しやすくなり、コストを低減できる。
【0092】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【図面の簡単な説明】
【0093】
【図1】本発明の実施形態に関する文書処理装置の構成を示す図である。
【図2】図1の文書処理装置の処理対象となるXML文書の例を示す図である。
【図3】図2に示したXML文書をHTMLで記述された表にマッピングする例を示す図である。
【図4(a)】図2に示したXML文書を図3に示した表にマッピングするための定義ファイルの例を示す図である。
【図4(b)】図2に示したXML文書を図3に示した表にマッピングするための定義ファイルの例を示す図である。
【図5】図2に示した成績管理ボキャブラリで記述されたXML文書を、図3に示した対応によりHTMLにマッピングして表示した画面の例を示す図である。
【図6】図1の定義ファイル生成部がユーザに提示するグラフィカルユーザインタフェースの例を示す図である。
【図7】図1の定義ファイル生成部により生成された画面レイアウトの他の例を示す図である。
【図8】図1の文書処理装置によるXML文書の編集画面の一例を示す図である。
【図9】図1の文書処理装置により編集されるXML文書の他の例を示す図である。
【図10】図9に示した文書を表示した画面の例を示す図である。
【図11】図1の表示制御部の構成例を示す図である。
【図12(a)】図11の表示制御部の動作の結果表示される画面の第1の表示例を示す図である。
【図12(b)】図11の表示制御部の動作の結果表示される画面の第2の表示例を示す図である。
【図12(c)】図11の表示制御部の動作の結果表示される画面の第3の表示例を示す図である。
【図12(d)】図11の表示制御部の動作の結果表示される画面の第4の表示例を示す図である。
【図12(e)】図11の表示制御部の動作の結果表示される画面の第5の表示例を示す図である。
【符号の説明】
【0094】
20 文書処理装置、 24 編集部、 100 文書処理装置、 110 表示制御部、 310 文書表示領域、 320 階層表示領域、 330 ファイル名表示領域、 340 メニュー表示領域。
【特許請求の範囲】
【請求項1】
特定の階層構造を有する複数のタグセットによりそれぞれ記述された部分文書からなる文書を処理する文書処理装置であって、
前記部分文書のそれぞれを処理する複数の処理系と、
前記部分文書のそれぞれに対して、前記部分文書を表示する文書表示領域を割り当て、前記文書表示領域に、対応する部分文書を表示して、ユーザによる前記部分文書の編集を受け付ける編集部と、
を備えることを特徴とする文書処理装置。
【請求項1】
特定の階層構造を有する複数のタグセットによりそれぞれ記述された部分文書からなる文書を処理する文書処理装置であって、
前記部分文書のそれぞれを処理する複数の処理系と、
前記部分文書のそれぞれに対して、前記部分文書を表示する文書表示領域を割り当て、前記文書表示領域に、対応する部分文書を表示して、ユーザによる前記部分文書の編集を受け付ける編集部と、
を備えることを特徴とする文書処理装置。
【図1】
【図2】
【図3】
【図4(a)】
【図4(b)】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12(a)】
【図12(b)】
【図12(c)】
【図12(d)】
【図12(e)】
【図2】
【図3】
【図4(a)】
【図4(b)】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12(a)】
【図12(b)】
【図12(c)】
【図12(d)】
【図12(e)】
【公開番号】特開2007−4627(P2007−4627A)
【公開日】平成19年1月11日(2007.1.11)
【国際特許分類】
【出願番号】特願2005−185610(P2005−185610)
【出願日】平成17年6月24日(2005.6.24)
【出願人】(390024350)株式会社ジャストシステム (123)
【Fターム(参考)】
【公開日】平成19年1月11日(2007.1.11)
【国際特許分類】
【出願日】平成17年6月24日(2005.6.24)
【出願人】(390024350)株式会社ジャストシステム (123)
【Fターム(参考)】
[ Back to top ]