(57)【要約】【課題】  文書データの編集による通信負荷や記憶に必要な容量の増大、あるいは、作成者の意図しない文書の改変を防止できる文書データ処理装置および方法を提供すること。【解決手段】  編集機能を実現するための編集スクリプトを含む文書データに基づいて画像を表示し、前記編集スクリプトに基づいて、表示された画像に対するユーザの操作入力に応じた前記文書データの編集を行う。その後、編集後の文書データの保存の指示が入力された場合、前記文書データから前記編集スクリプトを削除し（Ｓ６０１〜Ｓ６０５）、その編集スクリプトが削除された文書データを所定の記憶媒体に保存する。【選択図】  図６
2005301421.tif 000002
【特許請求の範囲】
【請求項１】
編集機能を実現するための編集スクリプトを含む文書データに基づいて画像を表示する手段と、
前記編集スクリプトに基づいて、表示された前記画像に対するユーザの操作入力に応じた前記文書データの編集を行う手段と、
編集後の前記文書データを保存すべき旨のユーザからの指示を受け付ける手段と、
編集後の前記文書データを保存すべき旨の指示を受け付けた場合に、当該文書データから前記編集スクリプトを削除し、その編集スクリプトが削除された文書データの保存を行う手段と、
を有することを特徴とする文書データ処理装置。
【請求項２】
前記文書データはＸＭＬ（eXtensible Markup Language）文書であることを特徴とする請求項１に記載の文書データ処理装置。
【請求項３】
前記ＸＭＬ文書は、はＳＶＧ（Scalable Vector Graphics）で記述されたものであることを特徴とする請求項２に記載の文書データ処理装置。
【請求項４】
編集機能を実現するための編集スクリプトを含む文書データに基づいて画像を表示するステップと、
前記編集スクリプトに基づいて、表示された前記画像に対するユーザの操作入力に応じた前記文書データの編集を行うステップと、
編集後の前記文書データを保存すべき旨のユーザからの指示を受け付けるステップと、
編集後の前記文書データを保存すべき旨の指示を受け付けた場合に、当該文書データから前記編集スクリプトを削除し、その編集スクリプトが削除された文書データを所定の記憶媒体に保存するステップと、
を有することを特徴とする文書データ処理方法。
【請求項５】
コンピュータにより実行可能なプログラムであって、
編集機能を実現するための編集スクリプトを含む文書データに基づいて画像を表示するためのコードと、
前記編集スクリプトに基づいて、表示された前記画像に対するユーザの操作入力に応じた前記文書データの編集を行うためのコードと、
編集後の前記文書データを保存すべき旨のユーザからの指示を受け付けるためのコードと、
編集後の前記文書データを保存すべき旨の指示を受け付けた場合に、当該文書データから前記編集スクリプトを削除し、その編集スクリプトが削除された文書データを所定の記憶媒体に保存するためのコードと、
を含むことを特徴とするプログラム。
【請求項６】
請求項５に記載のプログラムを格納したコンピュータ読みより可能な記憶媒体。
【請求項７】
編集機能を実現するための編集スクリプトを含む文書データを記憶するサーバと、ネットワークを介して前記サーバに接続されるクライアントとを含む文書データ処理システムであって、
前記クライアントは、
前記文書データを前記サーバから取得する手段と、
取得した前記文書データに基づいて画像を表示する手段と、
前記文書データにおける前記編集スクリプトに基づいて、表示された前記画像に対する操作入力に応じた前記文書データの編集を行う手段と、
編集後の前記文書データを保存すべき旨のユーザからの指示を受け付ける手段と、
編集後の前記文書データを保存すべき旨の指示を受け付けた場合に、当該文書データから前記編集スクリプトを削除し、その編集スクリプトが削除された文書データを保存する手段と、
を有することを特徴とする文書データ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、編集可能な文書データの管理技術に関する。
【背景技術】
【０００２】
構造化文書（特にSVGのようなグラフィックス記述言語）は一般に、その多彩な表現力を利用した閲覧ページの実現を目的として利用される。従来は、このような閲覧ページは文字どおり、もっぱら閲覧のみを目的としたものであり、閲覧する者が編集を行なうことは考慮されていなかった。
【０００３】
しかし近年、インターネットの普及やパーソナルコンピュータの性能向上に伴い、一般に広く知られる構造化文書を用いて、文書の編集を行う方法が提案されている（例えば、特許文献１を参照。）。文書の編集は例えば、構造化文書に編集スクリプトを埋め込むことによって実現される。
【０００４】
【特許文献１】特開２００１−２９０８１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、編集スクリプトを構造化文書に埋め込むことは構造化文書の文書サイズを増大させることになる。そのため、編集が完了し、閲覧のみを目的とした文書の保存、転送、配布に際しては、通信負荷や記憶に必要な容量が増大するという問題があった。また、文書中に編集スクリプトが残ることによって、作成者の意図しない文書の改変がなされる可能性があるという問題点もある。
【０００６】
本発明は、上記の課題に鑑みてなされたものであり、文書データの編集による通信負荷や記憶に必要な容量の増大、あるいは、作成者の意図しない文書の改変を防止できる文書データ処理装置および方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面に係る文書データ処理装置は例えば、編集機能を実現するための編集スクリプトを含む文書データに基づいて画像を表示する手段と、前記編集スクリプトに基づいて、表示された前記画像に対するユーザの操作入力に応じた前記文書データの編集を行う手段と、編集後の前記文書データを保存すべき旨のユーザからの指示を受け付ける手段と、編集後の前記文書データを保存すべき旨の指示を受け付けた場合に、当該文書データから前記編集スクリプトを削除し、その編集スクリプトが削除された文書データの保存を行う手段とを有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、文書データの編集によって通信負荷や記憶に必要な容量の増大を防止することができるとともに、文書データの作成者の意図しない文書の改変がされることを防止することができる。
【発明を実施するための最良の形態】
【０００９】
以下、図面を参照して本発明の好適な実施形態について詳細に説明する。
【００１０】
図１Ａは、本実施形態における文書データ処理システムのハードウェア構成を示す図である。
【００１１】
この文書データ処理システムは、図示の如く、クライアント１１１とサーバ１０１とを含み、両者がネットワーク（ＬＡＮ、インターネットなど）１２０を介して接続された構成である。同図には参照番号１１１で示されるクライアントが１つだけ存在しているが、クライアントの数は問題ではなく、複数存在していてもよい。クライアント１１１およびサーバ１０１はそれぞれ、例えば一般のパーソナルコンピュータやワークステーションで実現が可能である。もっとも、クライアント１１１はパーソナルコンピュータではなく、いわゆるＰＤＡや携帯電話機などの端末によっても実現可能である。
【００１２】
サーバ１０１は、このサーバ１０１の構成要素全体の制御を統括するＣＰＵ１、固定的なプログラムやデータを記憶するＲＯＭ２、主記憶装置として機能するＲＡＭ３をはじめ、以下の構成を有する。ＨＤＤ４は外部記憶装置としてのハードディスク装置である。ＶＲＡＭ５は表示しようとするイメージデータを展開するメモリであり、ここにイメージデータ等を展開することでＣＲＴ６に表示させることができる。なお、６には表示装置の一例としてＣＲＴを使用するが、ＣＲＴではなく液晶モニタ等を使用することももちろん可能である。７および８はそれぞれ、各種設定を行うためのキーボードおよびマウスである。また、９はインターネット１２に接続するためのインタフェースである。
【００１３】
クライアント１１１もサーバ１０１と同様のハードウェア構成であり、ＣＰＵ１１〜Ｉ／Ｆ１９はそれぞれ、サーバ１０１のＣＰＵ１〜Ｉ／Ｆ９に対応している。
【００１４】
サーバ１０１およびクライアント１１１のハードウェア構成は概ね上記のとおりであるが、それぞれの役割を果たすために、サーバ１０１のＨＤＤ４とクライアント１１１のＨＤＤ１４とでは、インストールされる内容が相違する。サーバ１０１のＨＤＤ４には、ＯＳや１又は２以上の文書データが記憶されるほか、ＷＥＢサーバ機能を実現するためのＷＥＢサーバプログラム、ＨＴＭＬ文書のひな型となるテンプレートデータ、後述する編集処理によって所定コードが削除された文書を復元するための編集コード復元プログラムなどがインストールされている。一方、クライアント１１１のＨＤＤ１４には、ＯＳおよびＷＥＢブラウザプログラム（以下、単に「ＷＥＢブラウザ」という。）のほか、ＷＥＢブラウザのアドオンソフトウェアとしての表示プラグイン、追加要素選択プラグイン、編集プラグインがインストールされている。
【００１５】
図１Ｂは、本実施形態における文書データ処理システムの機能構成を示す図である。
【００１６】
１０２は文書供給部であり、クライアントからネットワーク１２０を介してＨＴＴＰ（Hypertext Transfer Protocol）リクエストを受信し、ＨＤＤ４中に保管されるテンプレートデータ、文書データ等を本文（ｂｏｄｙ）とするＨＴＴＰレスポンスを、ネットワーク１２０を介してクライアントに返信する。これは、上記したＷＥＢサーバプログラムによって実現される。
【００１７】
この文書供給部１０２は編集画面作成部１０３および編集コード復元部１０４を含む。編集画面作成部１０３は、編集対象の文書のリクエストを文書供給部１０２を介して受け付け、その編集文書を編集する編集画面のＨＴＭＬを作成して、文書供給部１０２を介して送信を行なう。本実施形態においては、上記リクエストに応じてテンプレートデータをＨＤＤ４より取得して、編集文書として返却する。一方、編集コード復元部１０４は、文書の再編集のリクエストを文書供給部１０２を介して受け付け、その再編集対象の文書に編集用の記述を付け加えることで、編集可能な文書に復元して返却する。
【００１８】
１０５は文書データやテンプレートデータを蓄積するデータベースとしての文書蓄積部で、ＨＤＤ４によって実現される。
【００１９】
クライアント１１１において、１１２は文書閲覧編集部で、サーバ１０１の文書供給部１０２より送られてくるＨＴＭＬデータを解釈しＣＲＴ１６への表示処理を行う。この文書閲覧編集部１１２はＷＥＢブラウザによって実現される。
【００２０】
文書閲覧編集部１１２は、表示拡張部１１３、追加要素選択拡張部１１４、編集拡張部１１５を含む。表示拡張部１１３は、ＨＴＭＬデータが指し示すユーザの所望する編集文書をＣＲＴ１６に表示可能にするための機能拡張手段である。この拡張機能は表示プラグインにより提供される。
【００２１】
追加要素選択拡張部１１４は、ＨＴＭＬデータが指し示す編集メニューデータをユーザが使用可能をするべく表示ならびに操作可能とするための機能拡張手段である。この拡張機能は追加要素選択プラグインにより提供される。
【００２２】
編集拡張部１１５は文書の編集を実現するための機能拡張手段であり、その文書に埋め込まれたスクリプト記述を解釈する。この拡張機能は編集プラグインにより提供される。
【００２３】
図２は、編集画面作成部１０３によってテンプレートデータに基づいて作成される編集画面のＨＴＭＬソースの例である。
【００２４】
２０１はＨＴＭＬヘッダ部、２０２はスクリプト記述部である。スクリプト記述部２０２には、ＨＴＭＬ内に配置されているボタン等の操作インタフェースをトリガとしてコールされる関数が記述されている。図中の例では、後述する保存処理起動記述部２１３によって起動されるスクリプトが記述されている。
【００２５】
２０３は外部スクリプトファイル定義部であり、スクリプト記述部２０２と同様にＨＴＭＬ内に配置されているボタン等の操作インタフェースをトリガとしてコールされる関数が記述される。図中の例では、後述する再編集処理起動記述部２１２によって起動されるスクリプトが記された外部データが記述されている。なお、外部データは、本ＨＴＭＬを解釈することにより文書閲覧編集部１１２が自動的に読み込みを行い、その読み込まれたデータは、本ＨＴＭＬ中に記述されたスクリプトと同様に取り扱うことが可能である。
【００２６】
２０４は編集文書表示部で、編集対象となる本ＨＴＭＬの外部データとしての編集文書データが記述される。本ＨＴＭＬを表示する際には、文書閲覧編集部１１２が自動的に読み込みを行い、展開、表示する。
【００２７】
編集文書表示部２０４において、２１１は編集対象の文書データ名である。本実施形態においては、Ｗ3Ｃにより標準化されているＳＶＧ（Scalable Vector Graphics）形式の文書を用いることとする。
【００２８】
２１２は再編集処理起動記述部で、本システムにて編集保存された文書の再編集処理を記述したスクリプトを呼び出す記述がなされている。
【００２９】
２１３は保存処理起動記述部で、編集対象の文書データ名２１１が指し示す文書を保存する保存処理を記述したスクリプトを呼び出す記述がなされている。
【００３０】
以上説明した図２のＨＴＭＬの表示例については、図５を用いて後述する。
【００３１】
図３は、図２のＨＴＭＬソースにおける編集文書表示部２０４に記述された文書データ２１１の記述内容の一例を示す図である。上記のとおりこの文書データ２１１はＳＶＧ文書であり、図１において説明した文書閲覧編集部１１２にて展開され、表示拡張部１１３にて解釈されて表示されるものである。
【００３２】
図３において、３０１は編集文書ヘッダ部分である。本実施形態においては、ＸＭＬ（eXtensible Markup Language）で規定されているヘッダ部を用いている。３０２は外部スクリプト定義部である。ここで定義されている外部スクリプト中には、本編集文書であるＳＶＧに配置されているオブジェクトに対する処理、例えば、処理対象となるオブジェクトの移動処理などが記述されている。なお、外部スクリプト記述部３０２に記載される外部データは、本ＳＶＧを参照しているＨＴＭＬを解釈することにより文書閲覧編集部１１２が自動的に読み込みを行い、該読み込まれたデータは、本ＳＶＧ中に直接記述されたスクリプトと同様に取り扱うことが可能である。
【００３３】
３０３はオブジェクト定義部である。本定義部により、一つ以上の図形オブジェクトやイメージオブジェクトを一つの集合として定義することが可能であり、表示、編集時にはあたかも一つの図形として取り扱うことが可能になっている。図３中のオブジェクト定義部３０３の＜g＞から＜/g＞までの記述が単一のオブジェクト集合である。オブジェクト定義部３０３には更に、追加要素選択拡張部１１４によって表示される編集メニュー中に表示を行う個々のオブジェクトも記述される。
【００３４】
３０４は描画データ部である。表示拡張部１１３中に実際に描画するデータはすべて、この描画データ部３０４に記述される。描画データ部３０４において、オブジェクト定義部３０３にて定義したオブジェクトを用いるには、記述部"＜use xlink:href="の直後に、前記、オブジェクト定義部３０３にて定義したオブジェクトのidを指定することにより描画が可能となる。
【００３５】
なお、オブジェクト定義部３０３に記述されたオブジェクトへの参照を用いずに、オブジェクトを直接記述することで描画することも可能である。
【００３６】
３０５は選択矩形データ部で、編集操作時に選択されている図形を判別するための外接矩形の描画を実現する矩形オブジェクトや、選択した図形の回転や拡大縮小を行なうためのハンドルオブジェクトを描画する。この選択矩形データ部３０５に記述されるオブジェクトは、オブジェクト定義部３０３に記述されたオブジェクトと関連づけることにより、オブジェクト定義部３０３に記述されたオブジェクトに対して、例えば拡大縮小等の操作を拡張することなどに用いられる。
【００３７】
より具体的には、オブジェクト定義部３０３中に記述されたオブジェクトの＜defs id="Shape"＞ 〜 ＜/defs＞間に定義されたオブジェクトの利用のみが可能であり、選択矩形データ部３０５中の記述部"＜use xlink:href="の直後に、オブジェクト定義部３０３にて定義したオブジェクトのidを指定することで関連付けが行われる。
【００３８】
306はイベントハンドラ記述部で、線の描画を行なう際のマウス１８等を操作する際に得られる操作イベントを取得して処理を行うためのスクリプトが記述される。本実施形態においては、他のオブジェクトとの関連は無いため、内部の記述は省略している。
【００３９】
図４は、保存処理起動記述部２１３によって起動されるスクリプト記述部２０２に記載のスクリプトの実行時に呼び出される、文書編集などの記述を削除する処理が記述されたスクリプトの例を示す図である。このスクリプトは、図１で説明した編集拡張部１１５によって解釈され、処理が実行される。
【００４０】
４０１は、編集操作の際にマウスイベントを識別する際に利用するマウスイベントの配列である。
【００４１】
４０２は、編集コード削除スクリプト記述部で、ＥＣＭＡスクリプト（European association for standardizing information and communications systemsによって、ＥＣＭＡ−２６２として標準化）により記述された関数である。本スクリプト記述部に記載されるスクリプトが解釈、実行されることにより、本実施形態における編集のためのスクリプト類、マウスイベントハンドラの削除が実現される。
【００４２】
４１１、４１２、４１３、４１４は、図３で説明した編集可能なＳＶＧ文書中に記述される識別用タグ中に記述されるidに相当する。
【００４３】
４１１は、オブジェクト定義部３０３のオブジェクト定義のうち、選択矩形データ部３０５からのみ参照されているオブジェクト定義のまとまりである“＜defs id="shape"＞”中の"shape"に相当する（以下、id４１１、あるいはid"shape"４１１と称する。）。
【００４４】
４１２は、選択矩形データ部３０５のデータの“＜g id="Control"＞”中の"Control"に相当する（以下、id４１２、あるいはid"Control"４１２と称する。）。
【００４５】
４１３は、外部スクリプト定義部３０２のデータの“＜defs id="ScriptDefs"＞”中の"ScriptDefs"に相当する（以下、id４１３、あるいはid"ScriptDefs"４１３と称する。）。
【００４６】
４１４は、描画データ部３０４のデータの“＜g id="TOP"＞”中の"TOP"に相当する（以下、id４１４、あるいはid"TOP"４１４と称する。）。
【００４７】
これら４１１、４１２、４１３、４１４を用いた処理については後述する。
【００４８】
図５は、図２に示したＨＴＭＬに基づいてクライアント１１１の文書閲覧編集部１１２によって表示される編集画面５０１の一例を示す図である。
【００４９】
５０２は、表示拡張部１１３により編集対象の文書が表示される編集文書表示部である。５０３は、追加要素選択拡張部１１４により表示される追加要素選択部である。５０４は、図２に示したＨＴＭＬソースにおける再編集処理起動記述部２１２の開始タグから終了タグの記述を解釈し、その解釈結果を画面に表示した再編集指示部である。編集拡張部１１５は、この再編集指示部５０４がマウスクリックされたことに応答して再編集処理起動記述部２１２のスクリプトを実行する。
【００５０】
５０５は、図２に示したＨＴＭＬソースにおける保存処理起動記述部213の開始タグから終了タグの記述を解釈し、その解釈結果を画面に表示した文書保存指示部である。この文書保存指示部５０５がマウスクリックされると、この文書保存指示部５０５に対応するＨＴＭＬ記述である保存処理起動記述部２１３のスクリプトが編集拡張部１１５によって解釈され実行される。なお、保存先はクライアントのディスクでもよいが、サーバのディスクを指定することも可能である。
【００５１】
本実施形態における保存処理起動記述部２１３は、スクリプト記述部２０２中の“saveSVGdoc( )”関数の呼び出しを行っており、さらに、saveSVGdoc( )中のSaveSVGFormat( )の呼び出しにより、図４の編集コード削除スクリプト記述部４０２がコールされる。そして、この編集コード削除スクリプト記述部４０２に記述されるスクリプトが実行されることによって編集コードが削除される。
【００５２】
図６は、本実施形態における編集コード削除処理を示すフローチャートである。
【００５３】
まず、ステップＳ６０１では、選択矩形データ部３０５および、線の描画を行なう際のイベントハンドラ記述部３０６を削除するとともに、選択矩形データ部３０５から参照されているオブジェクト定義部３０３中のオブジェクト定義を削除する。これにより、選択モードや描画モードの実現のためのソースコードが保存後のSVG文書から漏洩することを防止することができる。
【００５４】
本実施形態における具体的処理としては、まず、id"Shape"４１１を編集可能なSVG文書中より検索する。この検索結果は、選択矩形データ部３０５からのみ参照されているオブジェクト定義のまとまりである“＜defs id="shape"＞”定義が検索され抽出される。
【００５５】
次に、抽出された“＜defs id="shape"＞”タグから対応する終了タグの間の定義を削除する。
【００５６】
更に、id"Shape"４１１の検索と同様に、id"Control"４１２を検索することで、選択矩形データ部３０５の“＜g id=" Control"＞”定義を抽出し、抽出された“＜g id=" Control"＞”タグから対応する終了タグの間の定義を削除する。本実施形態においては、“＜g id=" Control"＞”タグに対応する終了タグ“＜/g＞”は、イベントハンドラ記述部３０６も包含しているため、イベントハンドラ記述部３０６も同時に削除される。
【００５７】
以上、ステップＳ６０１の処理が完了する。
【００５８】
次のステップＳ６０２では、編集を実現するスクリプト記述を削除する。例えば、外部スクリプト定義部３０２の外部スクリプト定義を削除する。なお、描画データ部３０４中には、本ステップで削除を行う編集を実現するスクリプトを呼び出す記述がなされているが、前記呼び出し記述については、後述のステップにより削除を行っている。
【００５９】
本実施形態におけるステップＳ６０２の具体的処理としては、id" ScriptDefs"４１３を検索することにより、外部スクリプト定義部３０のデータの“＜defs id="ScriptDefs"＞”定義を抽出し、抽出された“＜defs id=" ScriptDefs"＞”タグから対応する終了タグの間の定義を削除する。
【００６０】
以上、ステップＳ６０２の処理が完了する。
【００６１】
次に、ステップＳ６０３〜Ｓ６０５において、描画データ部３０４中に存在する、ステップＳ６０２で削除した編集を実現するためのスクリプトの呼び出し記述を削除する。
【００６２】
ステップＳ６０３では、描画データ部３０４のデータの“＜g id="TOP"＞” から対応する終了タグ“＜/g＞”の間に記述されている描画オブジェクトの記述を一つ抽出し、抽出したデータのポインタを返す。
【００６３】
次に本ステップが呼び出されると、前回抽出したオブジェクトの次のオブジェクトを抽出される。すべての構成要素の抽出が終わると、データの終了を意味するNULLを通知する。
【００６４】
ステップＳ６０４では、ステップＳ６０３での描画オブジェクトの抽出が成功したかを判定する。ステップＳ６０３の描画オブジェクトの抽出処理の結果として、描画オブジェクトが返されていれば、ステップＳ６０５のマウスイベント属性削除処理に進む。一方、ステップＳ６０３の描画オブジェクトの抽出処理の結果として、すべての描画オブジェクトの抽出が終了して“NULL”が返されたときには、この編集コード削除処理を終了する。
【００６５】
ステップＳ６０３とステップＳ６０４を組み合わせることにより、描画データ部３０４のすべての描画オブジェクトを順に抽出し、処理することが可能になる。
【００６６】
ステップＳ６０５はマウスイベント属性削除処理である。ここでは、ステップＳ６０３での描画オブジェクトの抽出処理により抽出された描画オブジェクト内に図４のマウスイベントの配列４０１中に記述されているマウスイベントの検索を行い、その検索の結果、マウスイベントが存在する場合は、描画オブジェクトよりマウスイベントを削除するものである。
【００６７】
本実施形態における具体的処理としては、描画データ部３０４の“＜g id="TOP"＞” から対応する終了タグ“＜/g＞”の間にあるデータのうち、太字で表示されたデータが削除されることになる。
【００６８】
以上の編集コード削除処理が実行されることで、保存されたＳＶＧ文書から編集用のスクリプトコードが漏洩することが防止され、閲覧のみが可能なＳＶＧ文書の保存が可能になる。
【００６９】
次に、本実施形態における編集コードの復元処理について説明する。本実施形態においては、サーバ１０１における編集コード復元部１０４によりこの復元処理が行われる。図５中の再編集指示部５０４がマウスクリックされると、編集文書表示部５０３に表示されている文書がサーバ１０１にアップロードされ、これが復元対象の文書データとなる。なお、本実施形態においては、このようにアップロードされたＳＶＧ文書を編集コード復元処理の対象とするが、本発明における編集コード復元処理は、編集コード復元部１０４が編集対象であるＳＶＧ文書が認識可能であれば良く、その復元対象となるＳＶＧ文書の保存先を問うものではない。また、編集コード復元部１０４をサーバ１０１に配することなくクライアント１１１で実現しても良く、更には、いわゆるスタンドアロン構成においても編集コード復元処理が実現可能であることは言うまでもない。
【００７０】
編集コード復元処理の説明に際して、まず、図７を用いて、本実施形態におけるイベントハンドラ復元データの説明を行う。
【００７１】
図７はイベントハンドラ復元データの一部分を抽出した図である。イベントハンドラ復元データとは、マウスイベントに対応するスクリプト記述（イベントハンドラ）と、イベントハンドラと一対一に対応する識別子（イベントid）とが対をなして記述されるデータテーブルである。イベントidは、図３中の描画データ部３０４の下線部で示すように、描画オブジェクトの開始タグ内の“id=”に後続して記述されている。また、本実施形態においては、必須の記述とされている。
【００７２】
図７において、７０１は識別子（イベントid）列である。７０２はイベントハンドラ列で、識別子列７０１にて定義されたイベントidに対応するマウスイベントを記述している。７１１〜７１５は、イベントハンドラ復元データ例である。
【００７３】
なお、本データに記述されるイベントidとそのイベントidに対応するマウスイベントハンドラとの組み合わせが、描画オブジェクトに設定されているイベントidとそのイベントidに対応するマウスイベントハンドラとの組み合わせに一致しており、かつ全てのイベントidとそのイベントidに対応するマウスイベントハンドラの組み合わせが本データに定義されていることが必要である。
【００７４】
図８は、本実施形態における編集コード復元部１０４による編集コード復元処理を示すフローチャートである。
【００７５】
まず、ステップＳ８０１では、編集を実現するためのスクリプト記述を挿入する。本実施形態における具体的処理としては、図３の外部スクリプト定義部３０２に編集用の外部スクリプト記述を追加する。
【００７６】
次に、ステップＳ８０２で、選択矩形データ部３０５と線の描画を行なう際のイベントハンドラ記述部３０６、および選択矩形データ部３０５から参照されているオブジェクト定義部３０３中のオブジェクト定義の復元を行う。本実施形態における具体的処理としては、図３のオブジェクト定義部３０３のオブジェクト定義の末尾に、“＜defs id="shape"＞”〜“＜/defs＞”タグ要素を追加し、このタグ間に拡大縮小指示用ハンドルのアイコン等、選択状態表示と共に使用するアイコンの描画オブジェクトを列記する。
【００７７】
次に、＜svg …＞〜＜/svg＞タグ内の要素の末尾に、図3の選択矩形データ部３０５の“＜g id=" Control"＞”要素を追加し、“＜g id=" Control"＞”〜“＜/g＞”の中にマウスクリックした際の選択矩形や、マウスが重なった際の選択矩形等、選択矩形の描画オブジェクトを列記する。
【００７８】
さらに、上記した“＜g id="Control"＞”タグ内の要素の末尾にイベントハンドラ記述部３０６で示される“＜g id="event-group"＞”要素を追加する。上記タグ間に記述されるべき内部要素については、描画モードへの切り替え時に記述追加されるので、本ステップでは復元しない。
【００７９】
以上、ステップＳ８０２の処理が完了する。
【００８０】
次に、ステップＳ８０３〜Ｓ８０５で、描画データ部３０４中に存在するステップＳ８０１で挿入した編集を実現するためのスクリプトの呼び出し記述を復元する。
【００８１】
ステップＳ８０３では、描画データ部３０４のデータの“＜g id="TOP"＞”から対応する終了タグ“＜/g＞”の間に記述されている描画オブジェクトの記述を一つ抽出し、抽出したデータのポインタを返す。なお、次に本ステップが呼び出されると、前回抽出したオブジェクトの次のオブジェクトが抽出される。すべての構成要素の抽出が終わると、データの終了を意味するNULLを通知する。
【００８２】
ステップＳ８０４では、ステップＳ８０３におけるオブジェクトの抽出が成功したか否かを判定する。ステップＳ８０３の描画オブジェクトの抽出処理の結果として、描画オブジェクトが返されていれば、ステップＳ８０５のマウスイベント属性追加処理に進む。ステップＳ８０３の描画オブジェクトの抽出処理の結果として、すべての描画オブジェクトの抽出が終わり“NULL”が返されたときには、この編集コード復元処理を終了する。
【００８３】
ステップＳ８０３とステップＳ８０４を組み合わせることにより、描画データ部３０４のすべての描画オブジェクトを順に抽出し、処理することが可能になる。
【００８４】
ステップＳ８０５は、マウスイベント属性追加処理である。ステップＳ８０３の描画オブジェクトの抽出処理にて抽出された描画オブジェクトに記述されたイベントid属性を、描画オブジェクト中のid属性の指し示す先頭“#”の直後から２文字ずつ取り出す。たとえば、図３の描画データ３０４内に記述される“＜g id="#AWAYAP-Pen-Insert4" … ”を例にとれば、下線で示したAWAYAP部を２文字ごとに分解し、AW, AY, APの３つのイベントid属性として取り出される。
【００８５】
次に、取り出した各組の文字と一致するものを図７の識別子列７０１から検索し、その検索の結果、発見された識別子に対応してイベントハンドラ列７０２に定義されているマウスイベント属性を描画オブジェクトに追加する。
【００８６】
この処理結果としては、描画データ部３０４の“＜g id="TOP"＞” から対応する終了タグ“＜/g＞”の間にあるデータのうち、図３における太字で表示されるデータが追加されることになる。
【００８７】
以上の編集コード復元処理が実行されることで、保存されたSVG文書に編集用のスクリプトコードを復元することが可能になり、閲覧のみのＳＶＧ文書として保存したＳＶＧ文書の再編集が可能になる。
【００８８】
（他の実施形態）
以上、本発明の実施形態を詳述したが、本発明は、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【００８９】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータがその供給されたプログラムコードを読み出して実行することによっても達成される。その場合、プログラムの機能を有していれば、その形態はプログラムである必要はない。
【００９０】
従って、本発明の機能処理をコンピュータで実現するために、そのコンピュータにインストールされるプログラムコード自体およびそのプログラムを格納した記憶媒体も本発明を構成することになる。つまり、本発明の特許請求の範囲には、本発明の機能処理を実現するためのコンピュータプログラム自体、およびそのプログラムを格納した記憶媒体も含まれる。
【００９１】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【００９２】
プログラムを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などがある。
【００９３】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、そのホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明のクレームに含まれるものである。
【００９４】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００９５】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００９６】
さらに、記憶媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００９７】
【図１Ａ】実施形態における文書データ処理システムのハードウェア構成を示す図である。
【図１Ｂ】実施形態における文書データ処理システムの機能構成を示す図である。
【図２】実施形態における編集画面のＨＴＭＬソースの一例を示す図である。
【図３】実施形態における編集対象の文書データの一例を示す図である。
【図４】実施形態における文書編集などの記述を削除する処理が記述されたスクリプトの例を示す図である。
【図５】実施形態におけるクライアントに表示される編集画面の一例を示す図である。
【図６】実施形態における編集コード削除処理を示すフローチャートである。
【図７】実施形態におけるイベントハンドラ復元データの一部分を示す図である。
【図８】実施形態における編集コード復元処理を示すフローチャートである。
【図１Ａ】
2005301421.tif 000003
【図１Ｂ】
2005301421.tif 000004
【図２】
2005301421.tif 000005
【図３】
2005301421.tif 000006
【図４】
2005301421.tif 000007
【図５】
2005301421.tif 000008
【図６】
2005301421.tif 000009
【図７】
2005301421.tif 000010
【図８】
2005301421.tif 000011