開発・改良に意欲的に取り組んでいます。ユーザの皆さまから寄せられるご意見やご感想は、改善点の優先順位などを検討する際に、貴重なご意見として役立ててまいります。背景技術[0002]XMLは、ネットワークなどを介して他者とデータを共有するのに適した形式として注目されており、XML文書を作成、表示、編集するためのアプリケーションが開発されている(たとえば、特許文献1参照)。XML文書は、文書型定義などにより定義されたボキャブラリ(タグセット)に基づいて作成されている。発明が解決しようとする課題[0003]従来、マークアップ言語により記述された文書の構成要素を参照する場合、その参照先、参照元のロケーションパスを指定することが一般的である。XMLではXPathを使って文書内の構成要素のロケーションパスを指定する。この場合、XPathの評価時にはツリートラバースを行うが、複雑なXML文書の場合、XPathでのツリートラバースに時間がかかってしまう場合がある。文書のデータの利用においてユーザの利便性を高めるためには、文書の構成要素の参照機能には高い性能が求められる。[0004]本発明はこうした状況を鑑みてなされたものであり、その目的は、マークアップ言語により記述された文書の参照においてユーザの利便性を高めるための技術を提供することにある。課題を解決するための手段[0005]本発明のある態様は、文書処理装置に関する。この文書処理装置は、マークアップ言語により記述された文書を表示するための処理系と、文書に含まれる構成要素を参照先ノードとして登録する要求を受け付けたときに、前記参照先ノードのインスタンスの参照オブジェクトを取得し、処理系において参照先ノードを参照する参照枠ノードを表示する際に、前記参照オブジェクトを処理系に出力するか、または、参照先ノードの内容の少なくとも一部を参照オブジェクトから取得して、取得した情報を処理系に出力する参照枠ユニットと、を備える。[0006]本明細書における「参照オブジェクト」とは、メモリに展開されたインスタンスのメモリ上のアドレスを指し示すポインタ、または、そのアドレスを保持する参照型のオブジェクトを意味する。[0007]前記参照枠ユニットは、参照先ノードを管理し、参照先ノードが処理系により変更された場合には所定の通知先にその変更を通知する参照先管理部と、マークアップ言語により記述された、参照枠ノードに対応するフラグメントを作成し、処理系にそのフラグメントを文書へ挿入させるとともに、参照先ノードが処理系により変更された場合には所定の通知先にその変更を通知する参照枠管理部と、を備えてもよい。[0008]前記フラグメントは、参照先ノードの識別情報が含まれてもよい。そのフラグメントには参照先ノードの内容の少なくとも一部が含まれてもよく、参照枠管理部は更に、参照先ノードが処理系により変更された場合には、フラグメントに含まれる参照先ノードの内容を変更してもよい。[0009]前記参照枠ユニットは、参照枠管理部より参照枠ノードが参照する参照先ノードの内容の少なくとも一部を取得して表示装置に表示させる参照枠表示部を更に備えてもよく、また、前記参照枠ユニットは、参照枠管理部より参照枠ノードが参照する参照先ノードのインスタンスの参照オブジェクトを取得して、参照先ノードの内容の少なくとも一部を参照オブジェクトから取得して表示装置に表示させる参照枠表示部を更に備えてもよい。取得した参照先ノードの内容の少なくとも一部を、その参照先ノードが属するマークアップ言語により記述された文書を表示するための処理系に表示させてもよい。[0010]本発明のさらに別の態様は、文書処理方法に関する。この文書処理方法は、マークアップ言語により記述された文書に含まれる構成要素を参照先ノードとして登録する要求を受け付けるステップと、参照先ノードのインスタンスの参照オブジェクトを取得するステップと、参照先ノードを参照する参照枠ノードを表示する際に、前記参照先ノードの内容の少なくとも一部を参照オブジェクトから取得するステップと、マークアップ言語により記述された文書を表示するステップと、を備える。[0011]本明細書における「マークアップ言語」は、XMLのみならず、例えば、XHTML、SVG、MathML、SGML、HTMLなどのボキャブラリあってもよく、タグにより文書を構造化して記述するボキャブラリであればよい。複数のボキャブラリによる文書記述を可能とすることにより、データをより有効に活用することができ、ユーザの利便性を向上させることができる。参照先ノードに係るボキャブラリと、参照枠ノードに係るボキャブラリとは異なるマークアップ言語で記述されてもよい。以下、本明細書では、マークアップ言語により記述された文書のことを「構造化文書」と呼ぶことにする。[0012]なお、以上の構成要素の任意の組合せ、本発明の表現を方法、プログラム、システムなどの間で変換したものもまた、本発明の態様として有効である。発明の効果[0013]本発明によれば、構造化文書に対する利便性の高い参照機能を提供できる。本発明の前提技術に係る文書処理装置の構成を示す図である。前提技術に係る文書処理装置により処理されるXML文書の例を示す図である。図2に示したXML文書をHTMLで記述された表にマッピングする例を示す図である。図2に示したXML文書を図3に示した表にマッピングするためのVC定義ファイルの例を示す図である。図2に示したXML文書を図3に示した表にマッピングするためのVC定義ファイルの例を示す図である。図2に示したXML文書を図3に示した対応によりHTMLにマッピングして表示した画面の例を示す図である。VC定義ファイル生成部がユーザに提示するグラフィカルユーザインターフェースの例を示す図である。VC定義ファイル生成部により生成された画面レイアウトの他の例を示す図である。文書処理装置によるXML文書の編集画面の一例を示す図である。前提技術に係る文書処理装置により処理されるXML文書の他の例を示す図である。図9に示した文書を表示した画面の例を示す図である。XHTML文書の例である。参照枠機能のユーザインタフェイスを説明する図である。参照枠機能のユーザインタフェイスを説明する図である。参照枠機能のユーザインタフェイスを説明する図である。本発明の実施の形態に係る文書処理装置の機能ブロック図である。参照先管理部の管理テーブルの例である。参照枠管理部の管理テーブルの例である。参照枠の設定に係るシーケンス図である。参照先の値の変更に伴う参照枠の値の変更に係るシーケンス図である。発明を実施するための最良の形態[0016]まず、本実施の形態に係る文書処理装置の前提技術について述べた後、本発明の特徴を説明する。[0017](前提技術)図1は、前提技術に係る文書処理装置20の構成を示す。文書処理装置20は、文書内のデータが階層構造を有する複数の構成要素に分類された構造化文書を処理するが、本前提技術では構造化文書の一例としてXML文書を処理する例について説明する。文書処理装置20は、主制御ユニット22、編集ユニット24、DOMユニット30、CSSユニット40、HTMLユニット50、SVGユニット60、及び変換部の一例である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は、ユーザインターフェースを介してユーザから編集指示のイベントを受け付け、そのイベントを適切なプラグインなどに通知するともに、イベントの再実行(リドゥ)又は実行の取消(アンドゥ)などの処理を制御する。Model:DOM)に準拠した機能を実現する。DOM提供部32は、編集ユニット24に定義されているインタフェースを満たすDOMの実装である。DOM生成部34は、XML文書からDOMツリーを生成する。後述するように、処理対象となるXML文書が、VCユニット80により他のボキャブラリにマッピングされる場合は、マッピング元のXML文書に対応するソースツリーと、マッピング先のXML文書に対応するデスティネーションツリーが生成される。出力部36は、例えば編集終了時に、DOMツリーをXML文書として出力する。[0022]CSSユニット40は、CSS解析部42、CSS提供部44、及びレンダリング部46を含み、CSSに準拠した表示機能を提供する。CSS解析部42は、CSSの構文を解析するパーサの機能を有する。CSS提供部44は、CSSオブジェクトの実装であり、DOMツリーに対してCSSのカスケード処理を行う。レンダリング部46は、CSSのレンダリングエンジンであり、CSSを用いてレイアウトされるHTMLなどのボキャブラリで記述された文書の表示に用いられる。[0023]HTMLユニット50は、HTMLにより記述された文書を表示又は編集する。SVGユニット60は、SVGにより記述された文書を表示又は編集する。これらの表示/編集系は、プラグインの形で実現されており、それぞれ、文書を表示する表示部(Canvas)56、66、編集指示を含むイベントを送受信する制御部(Editlet)52、62、編集コマンドを受けてDOMに対して編集を行う編集部(Zone)54、64を備える。制御部52又は62が外部からDOMツリーの編集コマンドを受け付けると、編集部54又は64がDOMツリーを変更し、表示部56又は66が表示を更新する。これらは、MVC(Model-View-Controller)と呼ばれるフレームワークに類似する構成をとっており、概ね、表示部56及び66が「View」に、制御部52及び62が「Controller」に、編集部54及び64とDOMの実体が「Model」に、それぞれ対応する。本前提技術の文書処理装置20では、XML文書をツリー表示形式で編集するだけでなく、それぞれのボキャブラリに応じた編集を可能とする。HTMLユニット50は、HTML文書をワードプロセッサに類似した方式で編集するためのユーザインターフェースを提供し、SVGユニット60は、SVG文書を画像描画ツールに類似した方式で編集するためのユーザインターフェースを提供する。[0024]VCユニット80は、マッピング部82、定義ファイル取得部84、及び定義ファイル生成部86を含み、あるボキャブラリにより記述された文書を、他のボキャブラリにマッピングすることにより、マッピング先のボキャブラリに対応した表示編集用プラグインで文書を表示又は編集するためのフレームワークを提供する。Connection:VC)と呼ぶ。定義ファイル取得部84は、マッピングの定義を記述したスクリプトファイルを取得する。この定義ファイルは、ノードごとに、ノード間の対応(コネクション)を記述する。このとき、各ノードの要素値や属性値の編集の可否を指定してもよい。ノードの要素値や属性値を用いた演算式を記述してもよい。これらの機能については、後で詳述する。マッピング部82は、定義ファイル取得部84が取得したスクリプトファイルを参照して、DOM生成部34にデスティネーションツリーを生成させ、ソースツリーとデスティネーションツリーの対応関係を管理する。定義ファイル生成部86は、ユーザが定義ファイルを生成するためのグラフィカルユーザインターフェースを提供する。[0025]VCユニット80は、ソースツリーとデスティネーションツリーの間のコネクションを監視し、表示を担当するプラグインにより提供されるユーザインタフェースを介してユーザから編集指示を受け付けると、まずソースツリーの該当するノードを変更する。DOMユニット30が、ソースツリーが変更された旨のミューテーションイベントを発行すると、VCユニット80は、そのミューテーションイベントを受けて、ソースツリーの変更にデスティネーションツリーを同期させるべく、変更されたノードに対応するデスティネーションツリーのノードを変更する。デスティネーションツリーを表示/編集するプラグイン、例えばHTMLユニット50は、デスティネーションツリーが変更された旨のミューテーションイベントを受けて、変更されたデスティネーションツリーを参照して表示を更新する。このような構成により、少数のユーザにより利用されるローカルなボキャブラリにより記述された文書であっても、他のメジャーなボキャブラリに変換することで、文書を表示することができるとともに、編集環境が提供される。[0026]文書処理装置20により文書を表示又は編集する動作について説明する。文書処理装置20が処理対象となる文書を読み込むと、DOM生成部34が、そのXML文書からDOMツリーを生成する。主制御ユニット22又は編集ユニット24は、名前空間を参照して文書を記述しているボキャブラリを判別する。そのボキャブラリに対応したプラグインが文書処理装置20にインストールされている場合は、そのプラグインをロードして、文書を表示/編集させる。プラグインがインストールされていない場合は、マッピングの定義ファイルが存在するか否かを確認する。定義ファイルが存在する場合、定義ファイル取得部84が定義ファイルを取得し、その定義に従って、デスティネーションツリーが生成され、マッピング先のボキャブラリに対応するプラグインにより文書が表示/編集される。複数のボキャブラリを含む複合文書である場合は、後述するように、それぞれのボキャブラリに対応したプラグインにより、文書の該当箇所がそれぞれ表示/編集される。定義ファイルが存在しない場合は、文書のソース又はツリー構造を表示し、その表示画面において編集が行われる。[0027]図2は、処理対象となるXML文書の例を示す。このXML文書は、生徒の成績データを管理するために用いられる。