JP2001290811A - 文書処理装置、文書処理方法、および記録媒体 - Google Patents

文書処理装置、文書処理方法、および記録媒体

Info

Publication number
JP2001290811A
JP2001290811A JP2000107473A JP2000107473A JP2001290811A JP 2001290811 A JP2001290811 A JP 2001290811A JP 2000107473 A JP2000107473 A JP 2000107473A JP 2000107473 A JP2000107473 A JP 2000107473A JP 2001290811 A JP2001290811 A JP 2001290811A
Authority
JP
Japan
Prior art keywords
document
unit
menu
editing
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2000107473A
Other languages
English (en)
Other versions
JP2001290811A5 (ja
Inventor
Kenji Abe
健治 阿部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
JustSystems Corp
Original Assignee
JustSystems Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by JustSystems Corp filed Critical JustSystems Corp
Priority to JP2000107473A priority Critical patent/JP2001290811A/ja
Publication of JP2001290811A publication Critical patent/JP2001290811A/ja
Publication of JP2001290811A5 publication Critical patent/JP2001290811A5/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 構造化文書を適切に処理することができる文
書処理装置、およびその文書処理装置で利用可能な文書
処理方法、およびその方法をコンピュータに実行させる
プログラムを記録したコンピュータ読み取り可能な記録
媒体を提供する。 【解決手段】 文書内のデータが階層構造を有する複数
の構成要素に分類された構造化文書を処理するための方
法であって、構造化文書を処理するためのメニューの表
示要求を取得する表示要求取得工程と、階層構造に関す
る規則を記述した文書型定義を取得する文書型定義取得
工程と、規則を参照して、メニューに表示されるコマン
ドの実行の適否を判断してメニューを生成するメニュー
生成工程と、少なくとも適当であると判断されたコマン
ドを含むメニューを表示するメニュー表示工程とを備え
る。文書型定義に反した文書が生成するようなコマンド
をメニューから排除する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、文書処理装置、文
書処理方法、およびその方法をコンピュータに実行させ
るプログラムを記録したコンピュータ読み取り可能な記
録媒体に関する。特に、本発明は、文書内のデータが階
層構造を有する複数の要素に分類された構造化文書を処
理するための方法、その方法を利用可能な文書処理装
置、およびその方法をコンピュータに実行させるプログ
ラムを記録したコンピュータ読み取り可能な記録媒体に
関する。
【0002】
【従来の技術】インターネットの普及に伴い、膨大な量
の文書が流通するようになった。WWW(World Wide W
eb)上で公開される文書のほとんどは、HTML(Hype
r-TextMarkup Language)によって記述されている。H
TMLによって記述された文書は、仕様で予め決められ
た要素を示すタグのみしか用いることができず、膨大な
量の文書を効率良く処理するのに適さないという問題点
が指摘されるようになった。
【0003】膨大な文書を効果的に活用するために、X
ML(eXtensible Markup Language)などのマークアッ
プ言語が提唱されている。それに伴い、XMLなどのマ
ークアップ言語によって記述された、文書内のデータが
階層構造を有する複数の要素に分類された構造化文書
を、簡便に、効率良く処理するための方法および装置の
開発が求められている。
【0004】
【発明が解決しようとする課題】そこで本発明は、上記
の課題を解決することのできる文書処理方法、文書処理
装置、およびその方法をコンピュータに実行させるプロ
グラムを記録したコンピュータ読み取り可能な記録媒体
を提供することを目的とする。この目的は特許請求の範
囲における独立項に記載の特徴の組み合わせにより達成
される。また従属項は本発明の更なる有利な具体例を規
定する。
【0005】
【課題を解決するための手段】即ち、本発明の第1の形
態における文書処理方法は、文書内のデータが階層構造
を有する複数の構成要素に分類された構造化文書を処理
するための方法であって、構造化文書を処理するための
メニューの表示要求を取得する表示要求取得工程と、階
層構造に関する規則を記述した文書型定義を取得する文
書型定義取得工程と、規則を参照して、処理の対象とな
る構成要素に対して実行することができるコマンドを判
断するコマンド選択工程と、実行することができると判
断されたコマンドを含むメニューを表示するメニュー表
示工程とを備える。
【0006】メニュー表示工程は、実行することが適当
でないと判断されたコマンドを更に表示し、適当でない
と判断されたコマンドが選択されたときに警告処理を行
う工程を更に備えても良い。メニュー表示工程は、適当
でないと判断されたコマンドを更に表示し、適当でない
と判断されたコマンドの選択を禁止する工程を更に備え
ても良い。メニュー表示工程は、構成要素の表示規則を
記述したスタイルシートを参照して、コマンドを表示し
ても良い。
【0007】本発明の第2の形態における文書処理方法
は、文書内のデータが階層構造を有する複数の構成要素
に分類された構造化文書を処理するための方法であっ
て、構造化文書に対する編集要求を取得する編集要求取
得工程と、階層構造に関する規則を記述した文書型定義
を取得する文書型定義取得工程と、編集要求に従って編
集された構造化文書が規則を満たすか否かを判断する編
集適否判断工程とを備える。
【0008】編集適否判断工程は、構造化文書を記憶媒
体に保存する際に判断を行っても良い。編集適否判断工
程は、構造化文書に対する処理を終了する際に判断を行
っても良い。編集適否判断工程において適当でないと判
断されたときに、規則を満たすように構造化文書の階層
構造を修正する修正工程を更に備えても良い。編集適否
判断工程において適当でないと判断されたときに、警告
処理を行う警告工程を更に備えても良い。
【0009】本発明の第1の形態における記録媒体は、
コンピュータ読み取り可能な記録媒体であって、上記い
ずれかに記載の方法をコンピュータに実行させるための
プログラムを記録する。
【0010】本発明の第1の形態におけるサーバ装置
は、上記いずれかに記載の方法をコンピュータに実行さ
せるためのプログラムを格納する記録媒体と、プログラ
ムを記録媒体から読み出してコンピュータに配信する通
信装置とを備える。
【0011】本発明の第1の形態における文書処理装置
は、文書内のデータが階層構造を有する複数の要素に分
類された構造化文書を処理するための文書処理装置であ
って、構造化文書を処理するためのメニューの表示要求
を取得する表示要求取得部と、階層構造に関する規則を
記述した文書型定義を保持する文書型定義取得部と、規
則を参照して、メニューに表示されるコマンドの実行の
適否を判断する実行適否判断部と、適当であると判断さ
れたコマンドを含むメニューを表示するメニュー表示部
とを備える。
【0012】なお上記の発明の概要は、本発明の必要な
特徴の全てを列挙したものではなく、これらの特徴群の
サブコンビネーションも又発明となりうる。
【0013】
【発明の実施の形態】以下、発明の実施の形態を通じて
本発明を説明するが、以下の実施形態はクレームにかか
る発明を限定するものではなく、又実施形態の中で説明
されている特徴の組み合わせの全てが発明の解決手段に
必須であるとは限らない。
【0014】図1は、本実施形態の文書処理方法をコン
ピュータに実行させるためのプログラムがネットワーク
を介して配信される様子を示す図である。プログラム
は、ダウンロードサーバ20内に設けられたハードディ
スクなどの記憶媒体に格納されている。すなわち、ダウ
ンロードサーバ20のハードディスクは、本発明の記憶
媒体の一形態である。ユーザーは、インターネット10
を介してダウンロードサーバ20のハードディスクに格
納されたプログラムをダウンロードして、利用者端末3
0内に設けられたハードディスクなどの記憶媒体に格納
することができる。これにより、利用者端末30におい
て、本実施形態の文書処理方法を実現することができ
る。このとき、プログラムを利用者端末30に配信すべ
く、ダウンロードサーバ20に設けられたハードディス
クからプログラムを読み出す行為は、記憶媒体の使用に
該当する。なお、ダウンロードサーバ20に設けられた
ハードディスクに格納されたプログラムは、符号化また
は圧縮されたデータとして提供されても良い。本実施形
態の文書処理方法をコンピュータに実行させるためのプ
ログラムは、他にも、CD−ROM、フロッピー(登録
商標)ディスク、メモリーカードなどの記憶媒体に格納
された形で提供することができる。
【0015】本実施形態の文書処理装置は、LANなど
のネットワークで接続された文書サーバ40および複数
の編集端末50によって構成されても良い。文書サーバ
40は、本実施形態のプログラムのうち、少なくとも編
集ユニットを備える。編集端末50は、本実施形態のプ
ログラムのうち、少なくともユーザーインターフェース
および表示ユニットを備える。この構成により、文書サ
ーバ40に格納された一つの文書を、複数のユーザーが
それぞれ編集端末50を用いて編集することができる。
編集端末50は、インターネット10を介して文書サー
バ40にアクセスしても良い。本実施形態の文書処理方
法を実現するためのプログラムは、Java(登録商
標)言語などの汎用性の高い言語によって記述されてい
るため、例えば、利用者端末30が本実施形態のプログ
ラムを備えていなくても、文書サーバ40に備えられた
プログラムを利用して、文書サーバ40に格納された文
書を編集することができる。
【0016】図2は、ダウンロードサーバ20、利用者
端末30、文書サーバ40、および編集端末50などの
コンピュータの構成を示す。コンピュータは、主に、入
力装置60、表示装置62、通信装置64、CPU6
6、メモリ68、ハードディスク70、外部記憶装置7
2、およびバス74を備える。入力装置60は、キーボ
ード、マウス、音声入力装置、タッチパネルなど、ユー
ザーからの情報をコンピュータに伝達するための装置を
含む。表示装置62は、液晶モニタなど、編集中の文書
およびメニューなどの情報を表示するための装置を含
む。通信装置64は、インターネット10、LANなど
の通信手段を介して所定の情報を送受信するための装置
を含む。CPU66は、本実施形態のプログラムをロー
ドして実行する。メモリ68は、ROM、RAMなどの
記憶装置を含む。
【0017】図3以降において詳述される本実施形態の
文書処理装置の機能ブロックは、プログラムが必要に応
じてCPU66に呼び出されて実行されることにより構
成される。このプログラムは、通信装置64を介してダ
ウンロードサーバ20から、または、外部記憶装置72
に装着されたフロッピーディスク、CD−ROMなどの
可搬な記憶媒体から提供され、ハードディスク70に格
納される。プログラムは、通信装置64を介してダウン
ロードサーバ20から、または、外部記憶装置72に装
着されたフロッピーディスク、CD−ROMなどの可搬
な記憶媒体から、メモリ68に読み込まれても良い。
【0018】記録媒体としては、フロッピーディスク、
CD−ROMの他にも、DVD等の光学記録媒体、MD
等の磁気記録媒体、PD等の光磁気記録媒体、テープ媒
体、磁気記録媒体、ICカードやミニチュアーカードな
どの半導体メモリ等を用いることができる。このような
記録媒体は、文書処理装置を製造するためにのみ使用さ
れるものであり、そのような記録媒体の業としての製造
および販売等が本出願に基づく特許権の侵害を構成する
ことは明らかである。
【0019】図3は、本実施形態の文書処理装置の概略
機能ブロックを示す。文書処理装置90は、主に、ユー
ザーインターフェース100、編集ユニット200、表
示ユニット300、取消再実行処理制御ユニット40
0、およびブラグインユニット500を備える。
【0020】ユーザーインターフェース100は、入力
装置60から入力されたユーザーからの指示を受けて、
必要な処理を行い、編集ユニット200、表示ユニット
300、取消再実行処理制御ユニット400、およびプ
ラグインユニット500へ、指示を伝達する。編集ユニ
ット200は、ユーザーインターフェース100から伝
達された指示を受けて、文書に対する編集処理を行い、
表示ユニット300へ表示要求を伝達する。また取消再
実行処理制御ユニット400へ必要な指示を伝達する。
表示ユニット300は、ユーザーインターフェース10
0、編集ユニット200、またはプラグインユニット5
00から伝達される表示要求を受けて、表示装置62へ
必要な情報を表示するための処理を行う。取消再実行処
理制御ユニット400は、ユーザーインターフェース1
00、編集ユニット200、またはプラグインユニット
500で行われた処理を取り消したり、再実行したりす
るための制御を行う。
【0021】プラグインユニット500は、文書処理装
置90に追加機能を付加するためのモジュールを含む。
追加機能の例としては、例えば、印刷機能、文書形式変
換機能、特定のタグセットについての編集機能およびレ
ンダリング機能などがある。プラグインユニット500
は、ユーザーインターフェース100を介して、入力装
置60から伝達された指示を受け取る。そして、指示に
応じた処理を行い、必要であれば、ユーザーインターフ
ェース100、編集ユニット200、表示ユニット30
0、取消再実行処理制御ユニット400へ指示を伝達す
る。
【0022】本実施形態の文書処理装置90は、主に、
文書内のデータが階層構造を有する複数の要素に分類さ
れた構造化文書を処理するための装置である。このよう
な構造化文書には、SGML、XML、MHEG、HT
MLなど、多様な形式が提唱されており、さらに、それ
らに対して拡張または限定を行って新たな形式を作るこ
とも可能である。本実施形態では、これらの形式のう
ち、XMLによって記述された構造化文書を例にとって
説明する。XMLに関する情報は、例えば、http:
//www.w3.org/TR/ などから入手する
ことができるので、本明細書中では必要に応じて説明す
るにとどめる。
【0023】本実施形態の文書処理装置90は、XML
文書をデータとして扱うときのアクセス方法を提供する
ために定められたDOM(Document Object Model)に
したがって、構造化文書を処理する。また、XMLで記
述された構造化文書の表示方法を規定するために、CS
S(Cascading Style Sheets)またはXSL(XML Styl
e Language)などの形式で記述された文書を用いる。D
OM、CSS、XSLに関する情報も、例えば、htt
p://www.w3.org/TR/ などから入手
することができるので、本明細書中では必要に応じて説
明するにとどめる。
【0024】図4は、ユーザーインターフェース100
の詳細な機能ブロックを示す。ユーザーインターフェー
ス100は、イベント解析部110、イベントマップ1
20、UIコマンド実行部130、およびメニュー制御
部140を備える。
【0025】イベント解析部110は、入力装置60か
ら伝達されるイベントを受信し、イベントマップ120
を参照してイベントの内容を解析し、UIコマンド実行
部130、メニュー制御部140、編集ユニット200
などへ、必要な指示を伝達する。イベントマップ120
には、入力装置60から伝達されるイベントの種類と、
イベントによって起動される処理の種類とが、対応づけ
て格納されている。UIコマンド実行部130は、主
に、画面のスクロール、ツールバーの表示/非表示の切
り換えなど、文書の編集処理を伴わないような、ユーザ
ーインターフェース100に関する処理を実行する。メ
ニュー制御部140は、イベント解析部110からメニ
ュー表示要求が伝達されると、各種コマンドを実行する
ためのメニューを生成して、表示装置62に表示するた
めの処理を実行する。
【0026】図5は、編集ユニット200の詳細な機能
ブロックを示す。編集ユニット200は、編集コマンド
実行部210、DOMエンジン220、文書保持部23
0、位置情報保持部240、編集適否判断部250、お
よび文書修正部260を備える。
【0027】編集コマンド実行部210は、構造化文書
を編集するための各種編集コマンドを実行する。DOM
エンジン220は、XML文書をデータとして扱うとき
のアクセス方法を提供するために定められたDOMを、
Java言語などのプログラミング言語によって実装し
たものであり、文書保持部230に保持された対象文書
にアクセスして指示された処理を実行する。位置情報保
持部240は、対象文書の中の、カーソル位置、選択範
囲の始点、選択範囲の終点、しおり位置などといった位
置情報を保持する。編集適否判断部250は、編集コマ
ンド実行部210によって実行された編集処理が適当で
あったか否かを判断する。文書修正部260は、編集コ
マンド実行部210が実行した編集処理によって編集さ
れた文書がさらに修正を必要としている場合に、修正処
理を実行する。
【0028】図6は、表示ユニット300の詳細な機能
ブロックを示す。表示ユニット300は、レンダリング
ユニット選択部310、レンダリング部320、ツリー
表示処理部330、および表示部340を備える。レン
ダリング部320は、スタイル設定部322およびレイ
アウト処理部324を備える。
【0029】レンダリングユニット選択部310は、構
造化文書の各要素に属するデータをレンダリングするた
めのレンダリングユニットを選択して、そのレンダリン
グユニットにレンダリング処理を要求する。レンダリン
グ部320は、主に、XHTML(eXtended Hyper-Tex
t Markup Language)で記述されたデータのレンダリン
グ処理を行う。スタイル設定部322は、色、大きさ、
フォントなどのスタイルを設定する。レイアウト処理部
324は、テキストデータとフローティングブロックの
レイアウト処理を行う。ツリー表示処理部330は、適
切なレンダリングユニットによってレンダリングできな
いデータを、ツリー表示するための処理を行う。表示部
340は、作成された表示画面データを表示装置62に
表示するための処理を行う。
【0030】図7から図10を用いて、本実施形態の文
書処理装置90の動作の概要を説明する。
【0031】図7は、本実施形態の文書処理装置90に
よって処理可能な構造化文書の例を示す。図7におい
て、構造化文書600は、XHTMLによって記述され
た文書である。1行目はXML宣言であり、文書600
がXML仕様の第1.0版に従うことと、シフトJIS
形式で符号化されていることを示す。2行目は、この文
書がXHTMLによって記述されていることと、日本語
で記述されていることを示す。4行目から9行目まで
は、文書のヘッダ情報である。
【0032】10行目から20行目は、文書600の本
体を構成するデータであり、要素「body」に属す
る。要素「body」は、その直下の階層の要素(以
下、単に「子要素」という)として、3つの要素「di
v」を含む。「div」は、文書の段落に対応する要素
である。1番目の要素「div」は、テキストデータ
「あいうえお」を含む。2番目の要素「div」は、子
要素「hr」を含む。要素「hr」は、終了タグを持た
ない空要素であり、水平線を表示するための要素であ
る。3番目の要素「div」は、テキストデータ「かき
くけこ」を含む。3番目の要素「div」には、左イン
デントが8カラムであることを示す表示属性が指定され
ている。要素「div」のスタイルは、「段落のプロパ
ティ」メニューによって指定することができる。
【0033】図8は、文書処理装置90が構造化文書6
00を読み込み、表示ユニット300によって表示装置
62へ表示させた様子を示す。表示装置62に表示され
た画面700は、メニューバー702、ツールバー70
4、水平ルーラ706、垂直ルーラ708、文書表示部
710、およびカーソル712を含む。
【0034】メニューバー702は、構造化文書600
を処理するために必要なコマンドをメニュー表示する。
たとえば、メニューバー702の「ファイル」を入力装
置60の一例のマウスでクリックすると、「ファイル」
メニューが表示される。ツールバー704は、使用頻度
の特に高いコマンドをアイコン表示する。アイコンをマ
ウスでクリックすることによりコマンドを起動すること
ができるので、メニューを経由するよりも簡便に所望の
コマンドを起動することができる。水平ルーラ706
は、主に、カーソル712の水平方向の位置を示す。垂
直ルーラ708は、主に、カーソル712の垂直方向の
位置を示す。文書表示部710は、構造化文書600を
レンダリング部320によってレンダリングした結果を
表示する。
【0035】文書処理装置90は、処理すべき構造化文
書600を読み込んで文書保持部230に保持する。続
いて、レンダリングユニット選択部310が、構造化文
書600のデータの名前空間を参照して、適切なレンダ
リングユニットを決定する。構造化文書600は全てX
HTMLによって記述されているので、レンダリングユ
ニット選択部310は、適切なレンダリングユニットと
してレンダリング部320を選択する。
【0036】まず、スタイル設定部322が、各要素の
表示属性(スタイル)を設定する。XHTMLの各要素
の表示属性は、デフォルトスタイルシート、ユーザース
タイルシートの順に設定され、順次上書きされていく。
文書中に記述されたオーサースタイルシートがある場合
には、さらにオーサースタイルシートに記述された表示
属性が設定される。要素ごとに表示属性が指定されてい
る場合には、さらに要素ごとに表示属性が設定される。
ここでは、3番目の要素「div」に、左インデントが
8カラムであるという表示属性が指定されているので、
これを3番目の「div」の表示属性として設定する。
スタイル設定部322の詳細な動作については、図37
において詳述する。
【0037】つづいて、レイアウト処理部324が、テ
キストデータとフローティングブロックデータをレイア
ウトする。文書600には、フローティングブロックが
ないので、テキストデータのみをレイアウト処理する。
テキストデータは、1行ずつレイアウト処理される。レ
イアウト処理部324の詳細な動作については、図41
において詳述する。レンダリング部320によってレン
ダリングされた表示データは、表示部340によって表
示装置62へ表示される。
【0038】以上の説明からも分かるように、本実施形
態の文書処理装置90は、XMLなどによって記述され
た構造化文書を表示するためのブラウザとしての機能を
有する。処理すべき文書を指定せずにプログラムが起動
された場合には、対象文書として新規文書を作成しても
良い。このとき、本体部分のデータを持たない文書が対
象文書として作成される。表示画面700の文書表示部
710には何も表示されない。
【0039】次に、カーソル712の位置で、入力装置
60の一例としてのキーボードから文字列「1234」
を入力したときの、文書処理装置90の動作を説明す
る。まず、イベント解析部110が、キーボードからの
文字列入力イベントを受信する。イベントマップ120
には、文字列入力イベントに文字列挿入コマンドが対応
づけられている。イベント解析部110は、イベントマ
ップ120を参照し、文字列挿入コマンドを起動するよ
う編集ユニット200に指示する。
【0040】編集コマンド実行部210は、イベント解
析部110からの文字列挿入コマンド実行要求を受信し
て、文字列挿入コマンドを実行する。編集コマンド実行
部210は、DOMエンジン220に、1番目の要素
「div」のテキストデータのうち、2文字目の後ろの
位置に、文字列「1234」を挿入するよう指示する。
DOMエンジン220は、DOMの仕様に沿って文書保
持部230に保持された文書にアクセスし、指示された
処理を実行する。このとき、後で詳述するように、位置
情報保持部240に保持された位置情報が自動的に更新
される。続いて、DOMエンジン220は、1番目の要
素「div」のテキストデータが変更されたことを通知
するためのミューテーションイベントを発行し、表示ユ
ニット300に伝達する。
【0041】表示ユニット300は、ミューテーション
イベントを受信して、必要な部分を再レンダリングし、
表示装置62の画面を更新する。まず、レンダリングユ
ニット選択部310が、適切なレンダリングユニットを
選択する。この場合、1番目の要素「div」をレンダ
リングするのに適切なレンダリングユニットは、レンダ
リング部320である。レンダリング部320のスタイ
ル設定部322は、1番目の要素「div」のスタイル
を設定する。この場合、スタイルは変更されていないの
で、再設定の必要はない。レイアウト処理部324は、
1番目の要素「div」を再レイアウトする。この場
合、左から順に「あい1234うえお」の文字列がレイ
アウトされる。2番目および3番目の要素「div」に
ついては、フローティングブロックの影響を受けないこ
とが明らかであるので、再レイアウトの必要はない。
【0042】以上のサイクルで、ユーザーから指示され
た処理が実行される。図9は、上記の処理が実行された
後の文書600を示す。12行目のテキストデータが、
「あいうえお」から「あい1234うえお」に変更され
ている。図10は、上記の処理が実行された後の画面7
00を示す。1段落目が、「あいうえお」から「あい1
234うえお」に変更され、カーソル位置が「4」の後
ろに移動している。
【0043】図11は、メニュー制御部140の動作を
示すフローチャートである。まず、メニュー制御部14
0は、入力装置60を介して伝達されるメニュー表示要
求を取得する(S100)。メニュー表示要求を取得す
ると、カーソル位置または編集範囲位置を検出して、現
在の編集位置を取得する(S102)。続いて、編集位
置を含むデータが属する名前空間を取得する(S10
4)。編集位置が複数ある場合には、それぞれの名前空
間を取得する。続いて、取得した名前空間に対応する文
書型定義(DTD:Document Type Definition)を取得
する(S106)。文書型定義は、XML Schem
a、RELAXなどの形式で記述されていても良い。続
いて、必要であれば、対象文書の要素の表示規則を記述
したスタイルシートを取得する(S108)。スタイル
シートは、CSS、XSLなどの形式で記述されていて
も良い。続いて、DTDと、必要であればスタイルシー
トとを参照して、メニューを生成する(S110)。続
いて、表示ユニット300にメニューを表示するよう指
示する(S112)。
【0044】図12は、XMLによって記述された構造
化文書の例を示す。図12に示した構造化文書610に
おいては、名前空間「http://www.sample.com/」で識別
される文書型を文書型「sample」と呼ぶことにす
る。XMLのDTDには名前空間を表現する方法がない
ため、図12では文書型XHTMLのモジュール化DT
Dを想定して、文書型「sample」との合成DTD
を記述している。すなわち、文書型「sample」に
属する要素型名を全て接頭辞「s:」を付加した名前に
変換した文書型定義を生成し、それをXHTMLのモジ
ュール化DTDと合成している。CSSスタイルシート
にも名前空間を表現する方法がないため、に「samp
le」に属する要素型に対するスタイル定義は接頭辞
「s:」を付加した名前の要素に対するスタイル定義と
して記述している。以上の制限により、文書610内で
は文書型「sample]に適用する名前空間接頭辞は
「s」に限定している。説明の都合上、図12ではDT
DおよびCSSを利用したが、名前空間を表現する能力
を持った文書型記述言語やスタイルシート言語を用いて
もよい。その場合は、上記のような制限はない。
【0045】文書610は、文書型「sample」の
文書型定義612、文書型「sample」の各要素の
表示属性を規定するスタイルシート614、および文書
「sample」に属する部分616を含む。
【0046】文書型定義612は、要素型宣言と、属性
リスト宣言を含む。3行目から8行目までは、要素型宣
言である。例えば、3行目の要素型宣言は要素「sam
ple」を定義しており、要素「sample」が、要
素「sect」または要素「parag」を1回以上含
むことを規定している。また、4行目の要素型宣言は要
素「sect」を定義しており、要素「sect」が、
テキストデータ、要素「sect」、要素「para
g」、要素「sub」、要素「bold」、または要素
「image」を、0回以上含むことを規定している。
また、8行目の要素型宣言は要素「image」を定義
しており、要素「image」が、内容を持たない空要
素タグであることを規定している。9行目は、属性リス
ト宣言である。これは、要素「image」が、「si
ze」という属性を必ず持つことを規定している。
【0047】スタイルシート614は、文書型「sam
ple」の各要素の表示属性を規定する。18行目は、
スタイルシート614が、CSS形式で記述されている
ことを示す。22行目は、要素「sub」が、下付き文
字で表示されることを規定する。23行目は、要素「b
old」が、太字で表示されることを規定する。
【0048】図13は、図12に示した構造化文書61
0のうち、文書型「sample」に属する部分616
の階層構造を分かりやすく示した模式図である。最上位
の階層の要素である「sample」は、子要素とし
て、「sect」および「parag」を含む。要素
「sect」は、テキストデータ「あいうえお」、子要
素「sub」、およびテキストデータ「かきくけこ」を
含む。要素「sub」は、テキストデータ「123
4」、子要素「bold」、およびテキストデータ「9
0」を含む。要素「bold」は、テキストデータ「5
678」を含む。要素「parag」は、テキストデー
タ「さしすせそ」および子要素「image」を含む。
要素「image」は、空要素である。以上のような階
層構造は、図12に示した文書型定義612に従ってい
る。すなわち、文書610は、妥当なXML文書であ
る。参照番号(1)から(11)は、図14以降でメニ
ュー制御部140の動作を説明するために用いる。
【0049】図14は、カーソル712が図13におけ
る位置(4)にあるときに、メニューを表示させた様子
を示す。カーソル712が図13における位置(4)に
あるときに、ユーザーがメニューバー702の「挿入」
をマウスでクリックすると、「挿入」メニュー720が
表示される。ここで、さらに、項目「タグ」にマウス位
置を合わせると、「タグ」メニュー722の表示要求が
メニュー制御部140に伝達される。
【0050】このとき、メニュー制御部140は、編集
位置を取得する。この場合、編集位置は、カーソル71
2の位置である。続いて、メニュー制御部140は、編
集位置の名前空間を取得し、対応する文書型を取得す
る。この場合、カーソル712の位置は、文書型「sa
mple」に属する。続いて、メニュー制御部140
は、文書型に対応する文書型定義を取得する。この場
合、「sample」に対応する文書型定義は、図12
に示した文書型定義612である。続いて、メニュー制
御部140は、スタイルシートを取得する。この場合、
文書610のスタイルシートは、図12に示したスタイ
ルシート614である。続いて、メニュー制御部140
は、メニューを生成する。ここで生成すべきメニュー
は、「タグ」メニュー722である。メニュー制御部1
40は、まず、文書型定義612を参照して、カーソル
712の位置にタグを挿入しても文書型定義612に反
しないようなタグを抽出する。
【0051】図15は、文書610における編集位置
と、その位置に挿入可能なタグとの関係を示す。今、カ
ーソル712は位置(4)にあるので、位置(4)に挿
入可能なタグを抽出する。位置(4)は、要素「su
b」に含まれている。文書型定義612によると、要素
「sub」が子要素として持つことができる要素は、要
素「sub」、要素「bold」、および要素「ima
ge」である。したがって、これら3つのタグが、位置
(4)に挿入可能なタグである。図15においては、こ
のような挿入可能なタグを「○」で示している。要素
「sect」および要素「parag」は、要素「su
b」の子要素になることができないので、位置(4)に
は挿入することができない。図15においては、このよ
うな挿入不可能なタグを「×」または「△」で示してい
る。「△」で示したタグは、文書修正部260による修
正処理によって、文書型定義612に適合した形式に修
正可能なタグである。「×」で示したタグは、文書修正
部260による修正処理によっても、文書型定義612
に適合した形式に修正できないタグである。文書修正部
260の動作については、図20において詳述する。
【0052】メニュー制御部140は、要素「su
b」、要素「bold」、および要素「image」が
選択可能で、要素「sect」および要素「para
g」が選択不可能となるように、タグメニュー722を
生成する。図14においては、選択不可能な要素「se
ct」および要素「parag」には、取消線が表示さ
れている。メニューのうち選択可能な項目が黒字で表示
され、選択不可能な項目が灰色で表示されても良い。こ
のとき、マウスを項目に合わせると、選択可能な項目は
反転表示されるが、選択不可能な項目は反転表示されな
い。これにより、ユーザーは、文書型定義612の内容
を知らなくても、カーソル712の位置に挿入可能なタ
グと、挿入不可能なタグを正しく認識することができ
る。また、文書型定義612を意識することなく、妥当
なXML文書を作成することができる。
【0053】ここで、タグメニュー722の項目「im
age」の右側には、「...」が表示されている。こ
れは、項目「image」を選択すると、ダイアログが
表示されることを示している。文書型定義612の属性
リスト宣言によると、要素「image」は、必ず属性
「size」を持つ。したがって、属性「size」を
指定するためのダイアログを表示し、ユーザーに属性
「size」の指定を促す。これにより、ユーザーは、
文書型定義612を意識することなく、妥当なXML文
書を作成することができる。
【0054】メニュー制御部140は、さらにスタイル
シート614を参照してタグメニュー722を生成して
も良い。スタイルシート614によると、要素「sec
t」および要素「parag」は、段落タイプとしての
表示属性を持ち、要素「sub」および要素「bol
d」は、文字タイプとしての表示属性を持つ。したがっ
て、要素「sect」および要素「parag」をひと
まとまりに表示し、要素「sub」および要素「bol
d」をひとまとまりに表示しても良い。このように、表
示属性にしたがって分類表示することで、より分かりや
すく操作しやすいメニューにすることができる。
【0055】図14においては、要素「sect」およ
び要素「parag」という「△」で示された要素を選
択不可能にしたが、これらの要素を選択できるようにし
ても良い。このとき、文書型定義612に適合するよう
に、文書610の階層構造を修正しても良い。階層構造
の修正を実行するか否かをユーザーに問い合わせても良
い。修正の方法については、図20において詳述する。
【0056】図16は、範囲724を選択している状態
で、メニューを表示させた様子を示す。ユーザーが、範
囲724を選択してからメニューバー702の「書式」
をマウスでクリックすると、「書式」メニュー726が
表示される。ここで、さらに、項目「範囲のタグ化」に
マウス位置を合わせると、「範囲のタグ化」メニュー7
28の表示要求がメニュー制御部140に伝達される。
【0057】このとき、メニュー制御部140は、編集
位置を取得する。この場合、編集位置は、範囲724で
ある。続いて、メニュー制御部140は、編集位置の名
前空間を取得する。この場合、範囲724の名前空間
は、「sample」である。続いて、メニュー制御部
140は、名前空間に対応する文書型定義を取得する。
この場合、「sample」に対応する文書型定義は、
図12に示した文書型定義612である。続いて、メニ
ュー制御部140は、CSSを取得する。この場合、文
書610のCSSは、図12に示したスタイルシート6
14である。続いて、メニュー制御部140は、メニュ
ーを生成する。ここで生成すべきメニューは、「範囲の
タグ化」メニュー728である。メニュー制御部140
は、まず、文書型定義612を参照して、範囲724を
タグ化しても文書型定義612に反しないようなタグを
抽出する。
【0058】図17は、文書610における編集範囲
と、その範囲をタグ化可能なタグとの関係を示す。今、
位置(11)から位置(12)までの範囲724が選択
されているので、この範囲のテキストデータを新たな子
要素に変換しても文書型定義612に反しないようなタ
グを抽出する。範囲724は、要素「parag」に含
まれている。文書型定義612によると、要素「par
ag」が子要素として持つことができる要素は、要素
「sub」、要素「bold」、および要素「imag
e」である。したがって、これら3つのタグが、範囲7
24をタグ化可能なタグである。要素「sect」およ
び要素「parag」は、要素「parag」の子要素
になることができないので、範囲724をこれらのタグ
にタグ化することができない。
【0059】メニュー制御部140は、要素「su
b」、要素「bold」、および要素「image」が
選択可能で、要素「sect」および要素「para
g」が選択不可能となるように、「範囲のタグ化」メニ
ュー728を生成する。図16においては、選択不可能
な要素「sect」および要素「parag」には、取
消線が表示されている。メニューのうち選択可能な項目
が黒字で表示され、選択不可能な項目が灰色で表示され
ても良い。このとき、マウスを項目に合わせると、選択
可能な項目は反転表示されるが、選択不可能な項目は反
転表示されない。これにより、ユーザーは、文書型定義
612の内容を知らなくても、範囲724をタグ化可能
なタグと、タグ化不可能なタグを正しく認識することが
できる。また、文書型定義612を意識することなく、
妥当なXML文書を作成することができる。
【0060】図18は、カーソル712が図13におけ
る位置(4)にあるときに、文書表示部710の中でマ
ウスを右クリックしてメニューを表示させた様子を示
す。カーソル712が図13における位置(4)にある
ときに、ユーザーがマウスの右クリックなどの動作によ
ってメニュー表示要求を発すると、「文書編集」メニュ
ー730が表示される。ここで、さらに、項目「挿入」
にマウス位置を合わせると、「挿入」メニュー720が
表示され、さらに、項目「タグ」にマウス位置を合わせ
ると、「タグ」メニュー722の表示要求がメニュー制
御部140に伝達される。このときのメニュー制御部1
40の動作については、図14において説明した動作と
同様である。
【0061】このように、文書中の要素の階層構造を変
更するような編集処理を行う場合、文書型定義に反する
ような文書が生成してしまう恐れがある。このため、メ
ニュー制御部140は、文書型定義を参照して、文書型
定義に適合しない階層構造を生成する編集処理を選択で
きないようなメニューを生成する。文書型定義に適合し
ない階層構造を生成する編集処理が選択されたときに、
ユーザーに注意を喚起するような構成であっても良い。
文書型定義に適合しない階層構造を生成する編集処理が
選択されたときに、文書型定義に適合するよう階層構造
を修正しても良い。
【0062】文書処理装置90が、ある特定の名前空間
のデータを処理するためのプラグインユニット500を
有していても良い。メニュー表示要求が伝達されたとき
に、そのときの編集位置に対応する名前空間のデータを
処理するためのプラグインユニット500が存在する場
合には、そのプラグインユニット500がメニューを表
示しても良い。これによれば、ユーザーは、名前空間を
意識することなく、文書中の各データを処理するのに適
したプラグインユニット500のメニューを表示させる
ことができる。
【0063】図19は、編集適否判断部250の動作を
示すフローチャートである。編集適否判断部250は、
編集コマンド実行部210が実行する編集コマンドが、
適当か否かを判断する。前述のメニュー制御部140
は、メニュー表示時にその編集コマンドの適否を判断し
たが、編集適否判断部250は、編集コマンドの実行要
求が伝達されたときに、その編集コマンドの適否を判断
する。
【0064】編集適否判断部250は、編集コマンドの
実行要求が伝達されると、その編集コマンドが階層構造
の変化を伴うか否かを判断する(S202)。テキスト
データのみの挿入、削除、変更など、階層構造の変化を
伴わないような編集処理の場合は、Nへ進み、その編集
コマンドの実行を許可する(S214)。新たな要素が
追加されたり、要素が削除されたりするような、階層構
造の変化を伴う編集処理が要求されたときは、Yへ進
み、文書型定義が取得できるか否かを判断する(S20
4)。文書型定義が取得できない場合は、Nへ進み、ア
ラーム処理を行ってユーザーに注意を喚起し(S21
0)、その編集コマンドの実行を禁止する(S21
2)。これは、文書型定義に適合しない文書を生成して
しまう恐れがあるからである。妥当なXML文書を生成
する必要がない場合は、文書型定義の取得の可否に関わ
らず、編集コマンドの実行を許可しても良い。この場
合、編集の結果生成したXML文書が適正形式であるか
否かを判断する工程を設けても良い。
【0065】S204において、文書型定義が取得でき
た場合は、Yへ進み、要求されている編集コマンドを実
行した結果生成する文書が、文書型定義に適合するか否
かを判断する(S206)。編集コマンドを実行した結
果生成する文書が、文書型定義に適合している場合は、
Yへ進み、編集コマンドの実行が許可される(S21
4)。編集コマンドを実行した結果生成する文書が、文
書型定義に適合していない場合は、Nへ進み、編集を実
行するか否かをユーザーに問い合わせる(S208)。
ユーザーが、文書型定義に適合しない文書が生成するの
を認識した上で、その編集コマンドを実行するよう要求
した場合には、編集コマンドの実行を許可する(S21
4)。このとき、文書型定義に適合するよう、階層構造
を修正しても良い。階層構造を修正するか否かをユーザ
ーに問い合わせても良い。S208において、ユーザー
が編集を実行しないと判断した場合には、Nへ進み、ア
ラーム処理が行われ(S210)、編集コマンドの実行
が禁止される(S212)。
【0066】S208において、編集を実行するか否か
をユーザーに問い合わせずに、編集を禁止しても良い。
編集を実行するか否かをユーザーに問い合わせずに、ア
ラーム処理を行った後、編集を許可しても良い。
【0067】以上のような動作により、妥当なXML文
書ではない文書が生成してしまうような編集処理が実行
されようとしたときに、ユーザーに注意を喚起し、その
編集処理を適正に禁止することができるので、ユーザー
が文書型定義を意識しなくとも、妥当なXML文書を作
成することができる。
【0068】編集の適否を判断するタイミングは、編集
コマンド実行時に限られない。例えば、編集位置が、異
なる名前空間のデータの位置に変更されたときに、それ
までの編集処理によって生成した文書が、文書型定義に
適合しているか否かを判断しても良い。また、文書に対
する処理を終了して記録媒体に保存する際に、それまで
の編集処理によって生成した文書が、文書型定義に適合
しているか否かを判断しても良い。この場合も、図19
に示した方法によって編集の適否を判断することができ
る。このように、編集コマンド実行ごとに判断するので
はなく、編集処理が終了した段階で一括して判断する方
法によれば、文書を編集しているときに一時的に文書型
定義に適合しない文書を経由してしまう場合に、アラー
ム処理を行わずに編集処理を続行することができる。
【0069】図20は、文書修正部260の動作を示す
フローチャートである。文書修正部260は、編集コマ
ンドの実行によって生成した文書に修正が必要であるか
否かを判断し、修正が必要である場合には、適当な修正
を施す。
【0070】まず、文書修正部260は、編集処理によ
って生成した文書が、階層構造の修正を必要とするか否
かを判断する(S252)。修正が必要でない場合に
は、Nへ進み、文書修正部260における処理を終了す
る。修正が必要である場合には、Yへ進み、修正処理を
実行するか否かをユーザーに問い合わせる(S25
4)。ユーザーが修正を実行しないと判断した場合に
は、Nへ進み、文書修正部260における処理を終了す
る。ユーザーが修正を実行すると判断した場合には、Y
へ進み、修正処理を実行する(S256)。ユーザーに
問い合わせずに、修正処理を実行しても良い。
【0071】図21(a)(b)は、文書修正部260
の動作の例を説明するための図である。図21(a)
は、図13において、位置(4)にタグ「sect」を
挿入した様子を示す。図12に示した文書型定義612
によると、要素「sub」は、要素「sect」を子要
素として持てないので、このままの状態では、文書61
0は妥当なXML文書ではない。
【0072】図21(b)は、図21(a)に示した文
書610を、文書型定義612に適合するように修正し
た例を示す。要素「sect」は、要素「sub」の子
要素にはなれないので、要素「sub」から上の階層へ
辿り、要素「sect」を子要素として持てるような要
素を探す。この場合、要素「sub」の直上の階層にあ
る要素(以下、単に「親要素」という)である要素「s
ect」が、要素「sect」を子要素に持つことがで
きる。そこで、要素「sect」を要素「sub」の子
要素として挿入するのではなく、要素「sect」の子
要素として挿入する。すなわち、要素「sub」を2つ
に分割して、分割した間に、要素「sect」を挿入す
る。これにより、ユーザーが要求した位置と同じ場所
に、文書型定義に適合する形で、要素「sect」を挿
入することができる。以上が、図20における修正処理
S256の詳細である。
【0073】図15において、三角の印がついているタ
グを挿入する場合には、上記と同様な方法によって、文
書型定義に適合するように文書を修正することができ
る。例えば、位置(6)に新たにタグを挿入する場合に
ついて説明する。位置(6)は、要素「bold」に含
まれている。文書型定義612によると、要素「bol
d」は、子要素として要素「image」を持つことが
できる。他の要素を挿入するときには、文書修正部26
0による修正が必要となる。要素「sub」および要素
「bold」を挿入する場合は、要素「bold」の一
つ上の階層である要素「sub」の子要素として挿入す
ることができる。要素「sect」および要素「par
ag」を挿入する場合には、要素「bold」の二つ上
の階層である要素「sect」の子要素として挿入する
ことができる。
【0074】図15において、位置(1)に新たにタグ
を挿入する場合について説明する。要素「sampl
e」が内容として持てる要素は、要素「sect」およ
び要素「parag」に限られるので、要素「su
b」、要素「bold」、および要素「image」は
位置(1)に挿入することができない。この場合は、修
正によって文書型定義612に適合させることもできな
いので、メニュー制御部140は、要素「sub」、要
素「bold」、および要素「image」を選択不可
能とする。
【0075】同様に、図17において、三角の印がつい
ている範囲をタグ化する場合には、上記と同様な方法に
よって、文書型定義に適合するように文書を修正するこ
とができる。例えば、範囲(4)〜(5)をタグ化する
場合について説明する。範囲(4)〜(5)は、要素
「sub」に含まれている。文書型定義612による
と、要素「sub」は、子要素として要素「sub」、
要素「bold」、および要素「image」を持つこ
とができる。他の要素にタグ化するときには、文書修正
部260による修正が必要となる。要素「sect」お
よび要素「parag」にタグ化する場合は、要素「s
ub」の親要素「sect」の子要素となるように、テ
キストデータ「3」を持つ要素「sect」または要素
「parag」を新たに挿入することによって、文書型
定義612に適合させることができる。
【0076】図22(a)(b)は、文書修正部260
の動作の他の例を説明するための図である。図22
(a)は、文書処理装置90によって処理可能な構造化
文書の一例としての文書620の階層構造を示す。文書
620は、本体部分に、要素「ul」を3つ有する。1
番目の要素「ul」は、子要素「li」を有し、要素
「li」は、子要素「div」を有し、要素「div」
は、テキストデータ「ABC」を有する。2番目の要素
「ul」は、子要素「li」を有し、要素「li」は、
子要素「div」を有し、要素「div」は、テキスト
データ「123」を有する。3番目の要素「ul」は、
子要素「li」を有し、要素「li」は、子要素「di
v」を有し、要素「div」は、テキストデータ「ab
c」を有する。
【0077】図22(b)は、文書620を表示装置6
2に表示させた様子を示す。表示装置620の画面70
0の文書表示部710には、文書620をレンダリング
した結果が表示されている。要素「ul」は、箇条書き
として表示されるように表示属性が設定されているの
で、3つの要素「ul」の内容は、それぞれ「・」を付
加された形で表示されている。今、ユーザーが、マウス
などの入力装置60を用いて、範囲730を選択してい
る。
【0078】図23(a)(b)は、図22(b)にお
いて、選択された範囲を削除する編集コマンドが実行さ
れたときの、文書修正部260の動作を説明するための
図である。図22(b)において、範囲730を削除す
る編集コマンドが実行されたとき、図23(a)におけ
る位置(x1)から位置(x2)までの範囲が削除され
ることになる。このようなDOM操作を行うことは、構
造化文書に対する処理として適当でない。したがって、
本実施形態においては、文書修正部260が、位置(y
1)から位置(y2)までの範囲を削除するよう、DO
Mエンジン220へ指示する。すなわち、2番目の要素
「ul」が削除される。
【0079】図23(b)は、上記の操作が行われた後
に、文書620を表示装置62に表示させた様子を示
す。文書修正部260による修正処理によって、ユーザ
ーの意図した操作を実現することができる。
【0080】図24は、位置情報保持部240のデータ
構成を示す。位置情報保持部240は、カーソル位置、
選択範囲の始点、選択範囲の終点、しおり位置など、構
造化文書における位置情報を保持する。位置情報は、そ
の位置が含まれる要素の情報と、その要素内におけるオ
フセット情報とを含む。
【0081】図25は、図7に示した構造化文書600
を、表示装置62に表示させた様子を示す。今、2つの
範囲732、734が選択されており、カーソルは位置
712にある。範囲732は、構造化文書600の1番
目の要素「div」のうち、1文字目の後ろから、3文
字目の後ろまでに対応する。したがって、図24におい
て、範囲1始点の要素情報には、1番目の要素「di
v」が格納されており、範囲1始点のオフセット情報に
は、「1」が格納されている。範囲1終点の要素情報に
は、1番目の要素「div」が格納されており、範囲1
終点のオフセット情報には、「3」が格納されている。
他の位置情報についても、これと同様である。しおり位
置は、画面700上には表示されていないが、文書の他
の位置からジャンプするためのしおりとして用いられる
情報である。
【0082】図26は、位置情報保持部240の位置情
報を自動更新するための方法を示すフローチャートであ
る。まず、ユーザーによって、しおり位置が指定された
り、範囲が選択されたり、カーソル位置が移動されたり
すると、新たな位置情報が位置情報保持部240に登録
される(S302)。続いて、文書600を編集するコ
マンドが実行される(S304)。編集コマンドが実行
されると、その編集コマンドによる編集操作の対象とな
る要素が、位置情報が登録されているノードに対応して
いれば、S306のYへ進み、位置情報の自動補正が実
行される(S308)。そうでない場合は、S306の
Nへ進み、位置情報は自動補正されない。
【0083】図27(a)(b)は、図26に示した位
置情報の自動補正方法の具体例を示す。図27(a)
は、要素「div」のテキストデータのうち、4文字目
の後ろに位置情報が登録されている場合に、要素「di
v」のテキストデータの2文字目の後ろの位置で改行処
理が行われたときの例を示す。このとき、編集コマンド
実行部210が、改行処理を実行すると同時に、位置情
報保持部240に保持された位置情報を自動補正する。
この場合、登録されていた、要素「div」のテキスト
データのうち、4文字目の後ろという位置は、新たに追
加された2番目の要素「div」のテキストデータのう
ち、2文字目の後ろという位置へ移動しているので、そ
の位置へ自動補正される。
【0084】図27(b)は、要素「div」のテキス
トデータのうち、4文字目の後ろに位置情報が登録され
ている場合に、要素「div」のテキストデータの2文
字目の後ろから5文字目の後ろまでが削除されたときの
例を示す。このとき、編集コマンド実行部210が、選
択範囲を削除する処理を実行すると同時に、位置情報保
持部240に保持された位置情報を自動補正する。この
場合、登録されていた、要素「div」のテキストデー
タのうち、4文字目の後ろという位置は、すでに消失し
ているので、要素「div」のテキストデータのうち、
2文字目の後ろへ自動補正する。
【0085】上記のように、位置情報保持部240に保
持された位置情報は、その位置情報が登録されたノード
の編集操作に伴って自動的に補正されるので、カーソル
712や選択範囲などの表示を自動的に更新することが
できる。また、位置情報が、DOMエンジン220の操
作によって自動更新されるので、複数のユーザーによっ
て一つの文書を編集する際に、他のユーザーによって編
集処理が行われた場合にも、自動的に位置情報を更新す
ることができる。また、文書を編集する機能を有するプ
ラグインユニット500を開発する場合にも、DOMエ
ンジン220が自動的に位置情報を更新するので、位置
情報を気にすることなく文書に対する処理を行うことが
できる。
【0086】図28(a)(b)は、編集処理によって
文書が処理されたことを、表示ユニット300に伝達す
るためのミューテーションイベントについて説明するた
めの図である。図28(a)は、要素「div」のテキ
ストデータ「あいうえお」のうち、「うえお」が削除さ
れたときの例を示す。このとき、DOMエンジン220
は、表示ユニット300に、要素「div」のテキスト
データが変更されたことを通知するためのミューテーシ
ョンイベントを発行する。
【0087】図28(b)は、要素「div」のテキス
トデータ「あいうえお」のうち、「い」の後ろの位置で
改行キーが押下されたときの例を示す。このとき、編集
コマンド実行部210は、まず、要素「div」のテキ
ストデータのうち、「うえお」を削除する。続いて、新
たな2番目の要素「div」を元の1番目の要素「di
v」の後ろに追加する。続いて、2番目の要素「di
v」のテキストデータとして、「うえお」を追加する。
このとき、編集コマンド実行部210は、DOMエンジ
ン220に、以上の3つの操作のそれぞれについてミュ
ーテーションイベントを発行させるのではなく、1番目
の要素「div」が更新されたことを通知するミューテ
ーションイベントと、2番目の要素「div」が挿入さ
れたことを通知するミューテーションイベントとを発行
させる。これによれば、無駄なミューテーションイベン
トの発行を防ぐことができ、ひいては、処理を高速化す
ることができる。
【0088】上記のように、編集コマンド実行部210
は、1つの編集コマンドを実行する際に複数のDOM操
作を行うときでも、複数のミューテーションイベントを
1つにまとめて発行する。これにより、処理を高速化す
ることができる。一般に、操作の行われた要素群を全て
包括する最も小さい要素を抽出し、その要素が更新され
たことを通知するミューテーションイベントを発行すれ
ば良い。操作の行われた要素群を全て包括するような要
素が、非常に多くの内容を有している場合には、その要
素全てを再レンダリング処理するのに多大な時間を要す
るので、実際に処理された各要素について、個別にミュ
ーテーションイベントを発行しても良い。
【0089】図29は、取消再実行処理制御ユニット4
00の構成を示す。取消再実行処理制御ユニット400
は、取消処理および再実行処理を実行するための取消再
実行処理保持部408および現在の処理状態を保持する
処理状態保持部406を備える。取消再実行処理保持部
408は、コマンド410に含まれる各処理およびその
逆処理をメソッドとして有するオブジェクトを、処理の
順に保持する。図29においては、説明の便宜上、取消
再実行処理保持部408に保持されたオブジェクトに含
まれている、取消処理を実行するためのメソッド402
と、再実行処理を実行するためのメソッド404とを、
別個の枠で示している。各種コマンド410が実行され
たときに、そのコマンドが、取消処理が可能なコマンド
であれば、そのコマンド410の中の一つ一つの操作を
メソッドとして有するオブジェクトが順に取消再実行処
理保持部408へ積まれていく。このとき、コマンド4
10がどの操作からどの操作までに対応するのかという
情報も記憶される。
【0090】ユーザーインターフェース100を介して
取消処理の実行要求が伝達されると、取消再実行処理制
御ユニット400は、取消再実行処理保持部408に保
持されたオブジェクトのうち取消処理のためのメソッド
を、最新の操作から、スタックされた順番と逆順に、1
コマンド分だけ実行する。このとき、処理状態保持部4
06は、1コマンド分だけ移動される。続いて、さら
に、取消処理の実行要求が伝達されると、さらに取消再
実行処理保持部408に保持されたオブジェクトのうち
取消処理のためのメソッドを、処理状態保持部406の
位置から、スタックされた順番と逆順に、1コマンド分
だけ実行する。再実行処理の実行要求が伝達されたとき
は、取消再実行処理保持部408に保持されたオブジェ
クトのうち再実行処理のためのメソッドを、処理状態保
持部406の位置から、スタックされた順番と同じ順番
に、1コマンド分だけ実行する。
【0091】図30(a)(b)は、取消再実行処理制
御ユニット400の動作を説明するための図である。図
30(a)は、編集コマンド実行部210によって、文
書中の要素「div」のテキストデータ「あいう」のう
ち、「い」の後ろの位置に、テキストデータ「かき」を
挿入するコマンドが実行される様子を示す。このコマン
ドが実行された結果、要素「div」のテキストデータ
は、「あいかきう」に変更される。
【0092】図30(b)は、図30(a)に示したコ
マンド中の各操作を実行するためのオブジェクトが、取
消再実行処理保持部408に積まれた様子を示す。1番
目のオブジェクトは、取消処理が実行されたときに、カ
ーソル位置が元の位置に戻るようにするために、カーソ
ル位置を「う」の前に移動する操作を、アンドゥメソッ
ド402として有する。再実行する際には、この操作の
逆操作は実行する必要がないので、リドゥメソッド40
4は何もしない空の操作である。続いて、編集コマンド
実行部210は、コマンドの実行中に他の操作によって
画面が変更されることがないように、表示ユニット30
0に画面をロックするよう要求する。このとき、2番目
に積まれるオブジェクトは、ビューをロックする操作を
リドゥメソッド404として有し、その逆操作に対応す
るビューのロックを解除する操作をアンドゥメソッド4
02として有する。
【0093】続いて、取消処理が実行されたときに、画
面が元の状態に戻るようにするために、要素「div」
のテキストデータが更新されたというミューテーション
イベントを発行する操作をアンドゥメソッド402とし
て有するオブジェクトを、取消再実行処理保持部408
に積む。再実行する際には、この操作の逆操作は実行す
る必要がないので、リドゥメソッド404は空の操作で
ある。続いて、DOMエンジン220は、要素「di
v」のテキストデータを「あいう」から「あいかきう」
に変更する。このとき、要素「div」のテキストデー
タを「あいう」から「あいかきう」に変更する操作をリ
ドゥメソッド404として有し、その逆操作に対応する
要素「div」のテキストデータを「あいかきう」から
「あいう」に変更する操作をアンドゥメソッド402と
して有するオブジェクトが、取消再実行処理保持部40
8に積まれる。
【0094】続いて、編集コマンド実行部210は、要
素「div」のテキストデータが更新されたというミュ
ーテーションイベントを発行し、表示ユニット300に
伝達する。このとき、この操作をリドゥメソッド404
として有するオブジェクトが取消再実行処理保持部40
8に積まれる。取消処理を実行する際には、この操作の
逆操作は実行する必要がないので、アンドゥメソッド4
04は空の操作である。続いて、編集コマンド実行部2
10は、ビューのロックを解除するよう、表示ユニット
300に指示する。このとき、この操作をリドゥメソッ
ド404として有し、この操作の逆操作に対応する、ビ
ューをロックする操作をアンドゥメソッド402として
有するオブジェクトが、取消再実行処理保持部408に
積まれる。
【0095】最後に、編集コマンド実行部210は、カ
ーソル位置を「う」の前に移動する。このとき、この操
作をリドゥメソッド404として有するオブジェクト
が、取消再実行処理保持部408に積まれる。取消処理
を実行する際には、この操作の逆操作は実行する必要が
ないので、アンドゥメソッド404は空の操作である。
以上のように、取消再実行処理保持部408には、コマ
ンドの中の各操作をリドゥメソッド404として有し、
その逆操作をアンドゥメソッド402として有するオブ
ジェクトが、順に積まれていく。編集コマンドが実行さ
れるときには、主にDOM操作を一つの単位として処理
するためのオブジェクトが、取消再実行処理保持部40
8に積まれていく。
【0096】図30(b)の説明では、アンドゥ操作と
リドゥ操作とをメソッドとして有するオブジェクトを一
つ一つの記憶単位として、取消再実行処理保持部408
に積んだ場合について説明したが、アンドゥスタック4
02とリドゥスタック404とを別個に設けても良い。
このとき、アンドゥ操作を実行するオブジェクトがアン
ドゥスタック402に積まれていき、リドゥ操作を実行
するオブジェクトがリドゥスタック402に積まれてい
く。
【0097】以上のような構成によれば、コマンド毎に
取消処理を用意する必要がないので、新たなコマンドを
開発する際に手間を減らすことができる。取消再実行処
理制御ユニット400は、プラグインユニット500に
よって実行されたコマンドの取消再実行処理も制御でき
るので、プラグインユニット500を開発する際に、取
消処理を用意する必要が無く、開発を容易にすることが
できる。
【0098】図31は、表示ユニット300における動
作を概略的に示したフローチャートである。表示ユニッ
ト300に、編集ユニット200からミューテーション
イベントが伝達されると、まず、レンダリングユニット
選択部310が、表示すべきデータの名前空間を取得す
る(S402)。続いて、レンダリングユニット選択部
310は、取得した名前空間のデータをレンダリングす
るレンダリングユニットを選択する(S404)。適当
なレンダリングユニットがある場合は、Yへ進み、その
レンダリングユニットへレンダリング処理を実行するよ
う指示を送り、レンダリング処理が行われ(S40
6)、その結果を表示部340が表示装置62に表示す
る(S410)。適当なレンダリングユニットがない場
合は、Nへ進み、ツリー表示処理部330がツリー表示
処理を行い(S408)、その結果を表示部340が表
示装置62に表示する(S410)。
【0099】図32は、レンダリングユニット選択部3
10およびツリー表示処理部330を説明するために用
いる構造化文書630を示す。文書630は、XHTM
Lで記述された部分632およびMATHMLで記述さ
れた部分634を含む。MATHMLは、数学分野で用
いられる記号や式を記述するためのマークアップ言語で
ある。
【0100】図33は、MATHMLで記述された文書
を処理するためのMATHMLプラグインユニット51
0を有する文書処理装置90によって構造化文書630
をレンダリング処理し、表示装置62に表示した例を示
す。表示ユニット300に文書630の表示要求が伝達
されると、レンダリングユニット選択部310は、レン
ダリング部320に、XHTMLで記述された部分63
2をレンダリング処理するよう指示し、MATHMLプ
ラグインユニット510に、MATHMLで記述された
部分634をレンダリング処理するよう指示する。レン
ダリング部320は、XHTMLで記述された部分63
2のレンダリング処理を行い、画面を作成する。MAT
HMLプラグインユニット510は、MATHMLで記
述された部分634のレンダリング処理を行い、画面を
作成する。表示部340は、それぞれの画面を表示装置
62に表示する。
【0101】図34は、MATHMLで記述された文書
を処理するためのMATHMLプラグインユニット51
0を有しない文書処理装置90によって構造化文書63
0をレンダリング処理し、表示装置62に表示した例を
示す。表示ユニット300に文書630の表示要求が伝
達されると、レンダリングユニット選択部310は、レ
ンダリング部320に、XHTMLで記述された部分6
32をレンダリング処理するよう指示する。この場合、
MATHMLで記述された部分634をレンダリング処
理するためのプラグインユニット500は搭載されてい
ない。レンダリングユニット選択部310は、MATH
MLで記述された部分632を表示するためのスタイル
シートが取得できるか否かを判断する。スタイルシート
が取得できれば、レンダリング部320にレンダリング
処理を行うよう指示する。スタイルシートが取得できな
ければ、ツリー表示処理部330に、ツリー表示処理を
行うよう指示する。
【0102】レンダリング部320は、XHTMLで記
述された部分632のレンダリング処理を行い、画面を
作成する。ツリー表示処理部330は、MATHMLで
記述された部分634を階層構造が分かる形で表示する
ための処理を行い、画面を作成する。表示部340は、
それぞれの画面を表示装置62に表示する。図34にお
いては、MATHMLで記述された部分634は、文書
表示部710内に設けられたウインドウ730に、ツリ
ー表示されている。
【0103】このとき、ウインドウ730内に表示され
たデータの編集を禁止しても良い。図19において説明
したように、編集適否判断部250が編集を許可した場
合に限って、ウインドウ730内に表示されたデータの
編集処理を行っても良い。階層構造の変化を伴う編集処
理を禁止しても良い。階層構造の変化を伴わないよう
な、テキストデータのみの編集処理を許可しても良い。
【0104】図35は、MATHMLで記述された部分
634を、スクロールバーのついたウインドウ730に
表示した例を示す。ウインドウ730は、表示属性が不
明なMATHMLで記述された部分634を、スクロー
ル可能に設けられている。これにより、表示属性不明デ
ータが非常に多い場合であっても、限られた領域の中に
全てのデータを表示することができる。
【0105】図36は、MATHMLで記述された部分
634のソースを、スクロールバーのついたウインドウ
730に表示した例を示す。このように、文書をそのま
まの形をで表示した場合でも、ユーザーは文書の階層構
造を知ることができる。
【0106】以上の構成によれば、独自のタグセットに
よって記述された、表示属性が不明なデータが文書中に
あっても、それを階層構造が分かる形で文書表示部71
0内に表示することによって、文書の内容を分かりやす
く表示することができる。
【0107】図37は、スタイル設定部322の動作を
示すフローチャートである。スタイル設定部322は、
スタイルシートに記述された、各要素の満たすべき表示
属性を設定する。スタイル設定部322は、まず、デフ
ォルトスタイルシートを取得して、デフォルトスタイル
シートに記述された表示属性を設定する(S502)。
デフォルトスタイルシートは、文書処理装置90の初期
設定を規定したスタイルシートであり、ユーザーが表示
属性を指定しなかったときに適用される。
【0108】続いて、スタイル設定部322は、ユーザ
ースタイルシートに記述された表示属性を上書き設定す
る(S504)。ユーザースタイルシートは、文書処理
装置90を使用するユーザーが初期設定として規定した
スタイルシートであり、文書内に表示属性を指定しなか
ったときに適用される。ユーザースタイルシートに記述
された表示属性は、上書き設定されるので、デフォルト
スタイルシートに記述された表示属性よりも優先され
る。ユーザースタイルシートに記述されていない表示属
性については、デフォルトスタイルシートに記述された
表示属性が適用される。
【0109】続いて、スタイル設定部322は、オーサ
ースタイルシートが指定されているか否かを判断する
(S506)。オーサースタイルシートが指定されてい
る場合は、Yへ進み、オーサースタイルシートに記述さ
れた表示属性を上書き設定する(S508)。オーサー
スタイルシートは、文書を編集した著者が文書全体に適
用される表示属性として規定したスタイルシートであ
り、文書内の要素に表示属性を指定しなかったときに適
用される。オーサースタイルシートに記述された表示属
性は、上書き設定されるので、デフォルトスタイルシー
トおよびユーザースタイルシートに記述された表示属性
よりも優先される。オーサースタイルシートに記述され
ていない表示属性については、デフォルトスタイルシー
トまたはユーザースタイルシートに記述された表示属性
が適用される。オーサースタイルシートが指定されてい
ない場合は、Nへ進み、表示属性の設定肯定は省略さ
れ、S510へ進む。
【0110】続いて、スタイル設定部322は、要素に
表示属性が指定されているか否かを判断する(S51
0)。要素に表示属性が指定されている場合は、Yへ進
み、オーサースタイルシートに記述された表示属性を上
書き設定する(S512)。要素に直接指定された表示
属性は、上書き設定されるので、全てのスタイルシート
に記述された表示属性よりも優先される。要素に表示属
性が指定されていない場合は、デフォルトスタイルシー
ト、ユーザースタイルシート、またはオーサースタイル
シートに記述された表示属性が適用される。要素に表示
属性が指定されていない場合は、Nへ進み、表示属性の
設定工程は省略される。以上で、スタイル設定部322
の動作が終了する。
【0111】図38は、図37に示した表示属性の設定
工程(S502、S504、およびS508)の詳細を
示すフローチャートである。スタイル設定部322は、
スタイルを設定すべきターゲット要素の要素名を取得す
る(S522)。続いて、その要素に適用すべき表示属
性を、要素名をキーとして検索し、表示属性を設定する
(S524)。続いて、ターゲット要素に、class
属性、id属性などの属性が指定されているか否かを判
断する(S526)。属性が指定されていなければ、N
へ進み、表示属性の設定工程を終了する。属性が指定さ
れていれば、Yへ進み、さらにターゲット要素の属性名
を取得する(S528)。続いて、属性名をキーとして
表示属性を検索し、表示属性を設定する(S530)。
以上で、表示属性の設定工程を終了する。属性名をキー
としたハッシュテーブルが用意されていない場合は、ハ
ッシュテーブルを用いた検索工程(S530)は行われ
ない。
【0112】図39は、図38に示した表示属性の検索
・設定工程(S524およびS530)の詳細を示すフ
ローチャートである。スタイル設定部322は、取得し
たターゲット要素の要素名に基づいて、ハッシュ値を取
得する(S542)。ハッシュ値は、例えば、要素名の
アスキーコード値などから算出されてもよい。続いて、
得られたハッシュ値をキーとして、ハッシュテーブルを
検索する(S544)。ハッシュテーブルについては、
図40において詳述する。
【0113】ハッシュテーブルの中にハッシュ値が存在
しなかったときは、ターゲット要素の表示属性が指定さ
れていないということなので、S546のNへ進み、表
示属性を設定せずに工程を終了する。ハッシュテーブル
の中にハッシュ値が存在していたときは、S546のY
へ進み、ハッシュ値に対応する適合セレクタが複数ある
か否かを判断する(S548)。適合セレクタが複数あ
る場合には、Yへ進み、適合セレクタを絞り込み、ター
ゲット要素に合致するセレクタを取得する(S55
0)。続いて、ターゲット要素に合致したセレクタに設
定されている表示属性を、ターゲット要素に設定する
(S552)。適合セレクタが1つしかない場合には、
Nへ進み、そのセレクタに設定されている表示属性を、
ターゲット要素に設定する(S552)。以上で、表示
属性の検索・設定工程を終了する。
【0114】図40(a)(b)は、ハッシュテーブル
の例を示す。図40(a)は、要素の属性による分類が
なされていないハッシュテーブルの例を示す。ハッシュ
値は、セレクタのうち最下位の階層の要素の要素名から
算出される。例えば、要素名「body」のハッシュ値
は、8である。このハッシュテーブルにおいては、属性
による分類がなされていないので、要素「div」のハ
ッシュ値と、「参照1」という属性が指定された要素
「div」のハッシュ値は、同一になる。セレクタ「d
iv p」は、要素「div」の子孫要素となっている
要素「p」に対応する。このとき、ハッシュ値は、最下
位の階層の要素の要素名から算出されるので、「div
p」のハッシュ値は、「p」のハッシュ値と同一にな
る。
【0115】図40(a)に示されたハッシュテーブル
を用いて、ターゲット要素「div」の表示属性を設定
する方法について説明する。ここで、ターゲット要素
「div」には、class属性「参照2」が指定され
ている。まず、要素名「div」からハッシュ値を算出
する。要素名「div」から算出されるハッシュ値は、
14である。続いて、ハッシュ値14をキーとして、ハ
ッシュテーブルを検索する。すると、適合セレクタは、
「div」、「div.参照1」、および「div.参
照2」であることが分かる。続いて、それぞれの適合セ
レクタとターゲット要素とを照らし合わせて、表示属性
を設定すべきセレクタを取得する。ここでは、「di
v」および「div.参照2」が該当するので、まず、
「div」に指定された表示属性を設定し、続いて、
「div.参照2」に指定された表示属性を上書き設定
する。
【0116】図40(b)は、要素の属性によってさら
に分類された階層化ハッシュテーブルの例を示す。ハッ
シュ値14に対応するセレクタは、「div」、「di
v.参照1」、「div.参照2」、および「div.
参照2#abc」である。このうち、「div.参照
1」、「div.参照2」、および「div.参照2#
abc」については、属性が指定されているので、さら
に属性名をキーとしたハッシュテーブルに分類されてい
る。属性「参照1」が指定された要素「div」は、ハ
ッシュ値5に分類されており、属性「参照2」が指定さ
れた要素「div」は、ハッシュ値11に分類されてい
る。
【0117】図40(b)に示されたハッシュテーブル
を用いて、ターゲット要素<divclass=“参照
2”>の表示属性を設定する方法について説明する。ま
ず、要素名「div」からハッシュ値を算出する。要素
名「div」から算出されるハッシュ値は、14であ
る。続いて、ハッシュ値14をキーとして、ハッシュテ
ーブルを検索する。すると、適合セレクタとして、ま
ず、「div」。続いて、それぞれの適合セレクタとタ
ーゲット要素とを照らし合わせて、表示属性を設定すべ
きセレクタを取得する。ここでは、「div」および
「div.参照2」が該当するので、まず、「div」
に指定された表示属性を設定し、続いて、「div.参
照2」に指定された表示属性を上書き設定する。
【0118】本実施形態では、ハッシュテーブルを用い
て適合セレクタを検索したが、二分木などの方法を用い
て検索を実行しても良い。以上のような構成によれば、
スタイル設定処理を高速化することができる。
【0119】図41は、レイアウト処理部324の動作
を示すフローチャートである。まず、編集位置より前の
行から先送りされて配置されたフロートブロックを、再
配置のためにレイアウトから外して、ソース上での出現
位置の順番にキューへ待避する(S602)。続いて、
編集位置を含む段落のテキストデータを再レイアウトす
る(S604)。テキストデータが配置可能な行矩形の
中に、テキストデータを順に配置していく。続いて、編
集位置以降の段落をシフト処理する(S606)。S6
04によって段落の行数が変化すると、以降の段落との
間に、隙間または重なりが生じるので、それを解消すべ
く以降の段落を垂直方向にシフトする。続いて、キュー
に待避された配置待ちフロートブロックがあるか否かを
判断する(S608)。
【0120】キューにフロートブロックがある場合は、
Yへ進み、フロートブロックが配置可能か否かを判断す
る(S610)。すなわち、キューに配置待ちのフロー
トブロックがある限り、必ず行頭で配置可能か否かを判
断する。配置可能であれば、Yへ進み、フロートブロッ
クをレイアウトする(S612)。その後、再びS60
8へ戻り、配置不可能なフロートブロックが出現する
か、キューに待避された配置待ちフロートブロックが無
くなるまで、フロートブロックのレイアウト処理が行わ
れる。S610において、フロートブロックが配置でき
なかったときは、Nへ進み、テキストデータの行レイア
ウト処理が行われる(S614)。行矩形の中にテキス
トデータを順に配置し、1行分配置したところで終了す
る。
【0121】続いて、文書末またはテーブルセルの末尾
であるか否かを判断する(S622)。すなわち、配置
すべきテキストデータがまだ残っているか否かを判断す
る。残っていれば、Nへ進み、再びフロートブロックが
配置可能か否かを判断する。文書末またはテーブルセル
の末尾である場合には、Yへ進み、フロートブロックが
配置可能か否かを判断するための仮想行を設定する(S
624)。キューに残っているフロートブロックを末尾
行に配置した場合に、そのフロートブロックと重なる最
も内側の配置済みフロートブロックの、下辺の直下に仮
想行を設定する。その後、再びキューに待避された配置
待ちフロートブロックが配置可能か否かを判断するとき
に、この仮想行の行頭で判断が行われる。
【0122】S608において、キューに待避された配
置待ちのフロートブロックがなくなった場合には、Nへ
進み、次の段落の1行目の行矩形と、フロートブロック
との間に、重なりまたは隙間があるか否かを判断する
(S616)。重なりまたは隙間がある場合は、Nへ進
み、その段落を末尾まで再レイアウトする(S61
8)。その後、再びS616へ進む。重なりまたは隙間
がない場合は、Yへ進み、それ以降の段落をシフト処理
する(S620)。以上により、文書が編集されたとき
の、再レイアウト処理を終了する。
【0123】図42は、レイアウト処理部324の動作
を説明するために用いる構造化文書の例を示す。構造化
文書640は、XHTMLで記述された文書である。文
書640の第1段落には、イメージファイルが埋め込ま
れており、右寄せで表示されるよう指定されている。
【0124】図43は、図42に示した文書640を表
示装置62へ表示した様子を示す。画像642は、右寄
せで表示されている。各段落のテキストデータは、画像
642と重ならないようにレイアウトされている。
【0125】図44は、レイアウト処理部324がレイ
アウト処理を行う際に、テキストデータを行矩形として
管理する様子を示す。レイアウト処理部324は、画
像、表、縦書きブロック、ツリー表示ウインドウ、など
のフローティングブロックと、テキストデータの行と
を、矩形データとして管理している。レイアウト処理部
324は、これらの矩形データが重なるか否かを調べる
ことによって、正しくレイアウトされているか否かを判
断する。
【0126】図45(a)(b)(c)は、文書640
のうち、範囲644が削除されたときの、レイアウト処
理部324の動作を説明するための図である。図45
(a)は、文書640のうち、範囲644が選択された
様子を示す。入力装置60を介してユーザーが範囲64
4を選択した後、さらに削除コマンドを実行すると、編
集ユニット200が必要な処理を行い、表示ユニット3
00へミューテーションイベントを伝達する。このと
き、レイアウト処理部324は、編集部分から後の部分
を再レイアウトする。
【0127】この場合、削除された行よりも前の行から
先送りされて配置されたフロートブロックが存在しない
ので、キューに待避されるフロートブロックはない。ま
ず、第2段落のテキストデータを再レイアウトする。第
2段落のテキストデータのうち、範囲644が削除され
ているので、第2行から第4行が消失する。続いて、第
3段落および第4段落を、上方へシフトする。その結果
を図45(b)に示す。この状態は、実際には表示され
ない。ここで、シフト処理の結果、行矩形データと、フ
ローティングブロックの矩形データとの間に、重なりま
たは隙間があるか否かを調べる。この場合、第3段落の
1行目の行矩形データと、画像642の矩形データとが
重なるので、このままの状態では正しいレイアウトでは
ない。したがって、さらに、第3段落を再レイアウト
し、画像642と重ならないようにする。画像642と
重ならないように新たに設定された行矩形内に、第3段
落のテキストデータを配置していく。この結果、行の増
減などによって段落の高さが変化すると、その段落以降
の段落とそれらに含まれる行をシフトする。その結果を
図45(c)に示す。
【0128】第4段落以降も、同様に、各行の行頭にお
いて、行矩形データとフロートブロックの矩形データと
の重なりまたは隙間があるか否かを調べる。第4段落の
第1行目は、フロートブロックとの重なりがない。さら
に、以前フロートブロックを避けていた隙間がない。す
なわち、行矩形が、文書表示部710の左端から右端ま
での全てに渡っている。このとき、この行以降のレイア
ウトには変化が生じないので、行の重なりまたは隙間の
チェックを終了し、この行以降の行をシフト処理する。
この場合は、図45(c)の状態が、正しくレイアウト
された状態に対応する。
【0129】図46は、レイアウト処理部324の動作
を説明するために用いる構造化文書の他の例を示す。構
造化文書650は、XHTMLで記述された文書であ
る。文書650の第1段落には、イメージファイルが3
つ埋め込まれており、1つは右寄せで、残りの2つは左
寄せで表示されるよう指定されている。
【0130】図47は、図46に示した文書650を表
示装置62へ表示した様子を示す。画像652は、右寄
せで表示されている。画像654および656は、左寄
せで表示されている。各段落のテキストデータは、画像
652、654、および656と重ならないように、回
り込んでレイアウトされている。フロートブロックは、
原則として、行単位で位置決めされる。すなわち、行の
上辺とフロートブロックの上辺のy座標は一致する。文
書の末尾やテーブルセルの末尾行以下に配置される場合
は、ピクセル単位で位置決めされる。今、範囲658が
選択されている。
【0131】図48から図50は、文書650のうち、
範囲658が削除されたときの、レイアウト処理部32
4の動作を説明するための図である。図48は、文書6
50のうち、範囲658が削除され、削除された行より
も前の行から先送りされて配置された画像654および
656がキュー660に待避され、第2段落が再レイア
ウトされ、第3段落がシフト処理されたときの様子を示
す。キュー660には、ソース上の出現位置の順番に、
画像654および画像656がバッファに積まれてい
る。
【0132】図49は、続いて、第3段落が再レイアウ
トされた様子を示す。まず、図48の状態から、キュー
にフロートブロックが積まれているので、第2段落の直
下の行に配置可能か否かを判断する。この場合、配置不
可能なので、第3段落の第1行目が行レイアウト処理さ
れる。続いて、第3段落の第1行目の直下の行にフロー
トブロックを配置可能か否かを判断する。画像654が
配置可能なので、画像654を左寄せにして配置する。
さらに、画像656が配置可能か否かを判断する。画像
656は配置不可能なので、キューに積んだまま、第3
段落の第2行目を行レイアウトする。このように、改行
毎にフロートブロックの配置チェックを行い、配置でき
なければテキストデータの行レイアウトを行う。第3段
落の末尾まで行レイアウトが終了した状態が図49に示
されている。
【0133】図50は、画像656がレイアウトされた
様子を示す。図49において、文書末までレイアウトが
終了したときに、まだキュー660には画像656が残
っていたので、仮想行を設定する。仮想行は、末尾行に
画像656を配置したときに重なりが生じる、画像65
4の下辺の直下に設定される。この行の行頭において、
画像656が配置可能か否かのチェックが行われる。画
像656は、配置可能であるから、左寄せにして配置さ
れる。これで、文書650の再レイアウト処理が終了す
る。
【0134】以上の構成によれば、CSSの仕様に準拠
したレイアウトを実現することができる。また、改段落
のときに、フロートブロックとの重なりや隙間がないと
きには、以下の段落をレイアウトせず、シフト処理を行
うため、再表示に要する時間を短縮することができる。
本実施形態の方法によれば、多くの場合、フロートブロ
ックの重なりや隙間があるかどうかの判定は、全段落に
ついて行う必要がないので、高速な処理を実現すること
ができる。
【0135】記録媒体の一例としてのフロッピーディス
ク56またはCD−ROM58には、本出願で説明した
端末10の動作の一部または全ての機能を格納すること
ができる。またフロッピーディスク106には他の装置
の動作の一部または全ての機能を格納することができ
る。これらのプログラムは記録媒体から直接RAMに読
み出されて実行されても良い。
【0136】本実施形態においては、構造化文書の一例
として、XHTML形式およびXML形式の文書を処理
する方法について説明したが、本実施形態の方法は、S
GML、MHEG、HTML、その他の形式、およびそ
れらに対して拡張または限定を行った形式を用いて記述
された構造化文書についても適用することができる。
【0137】以上、本発明を実施の形態を用いて説明し
たが、本発明の技術的範囲は上記実施の形態に記載の範
囲には限定されない。上記実施の形態に、多様な変更又
は改良を加えることができることが当業者に明らかであ
る。その様な変更又は改良を加えた形態も本発明の技術
的範囲に含まれ得ることが、特許請求の範囲の記載から
明らかである。
【0138】
【発明の効果】上記説明から明らかなように、本発明に
よれば構造化文書を適切に処理することができる文書処
理装置、およびその文書処理装置で利用可能な文書処理
方法、およびその方法をコンピュータに実行させるプロ
グラムを記録したコンピュータ読み取り可能な記録媒体
を提供することができる。
【図面の簡単な説明】
【図1】 図1は、本実施形態の文書処理方法をコンピ
ュータに実行させるためのプログラムがネットワークを
介して配信される様子を示す図である。
【図2】 図2は、コンピュータの構成を示す図であ
る。
【図3】 図3は、本発明の実施形態に係る文書処理装
置90の概略機能ブロックを示す図である。
【図4】 図4は、ユーザーインターフェース100の
より詳細な機能ブロックを示す図である。
【図5】 図5は、編集ユニット200のより詳細な機
能ブロックを示す図である。
【図6】 図6は、表示ユニット300のより詳細な機
能ブロックを示す図である。
【図7】 図7は、文書処理装置90によって処理可能
な構造化文書600を示す図である。
【図8】 図8は、文書処理装置90が構造化文書60
0を読み込み、表示ユニット300によって表示装置6
2へ表示させた様子を示す図である。
【図9】 図9は、編集処理が実行された後の構造化文
書600を示す図である。
【図10】 図10は、編集処理が実行された後の画面
700を示す図である。
【図11】 図11は、メニュー制御部140の動作を
示すフローチャートである。
【図12】 図12は、XMLによって記述された構造
化文書610を示す図である。
【図13】 図13は、構造化文書610のうち、名前
空間が「sample」である部分616の階層構造を
分かりやすく示した模式図である。
【図14】 図14は、カーソル712が図13におけ
る位置(4)にあるときに、メニューを表示させた様子
を示す図である。
【図15】 図15は、文書610における編集位置
と、その位置に挿入可能なタグとの関係を示す図であ
る。
【図16】 図16は、範囲724を選択している状態
で、メニューを表示させた様子を示す図である。
【図17】 図17は、文書610における編集位置
と、その範囲をタグ化可能なタグとの関係を示す図であ
る。
【図18】 図18は、カーソル712が図13におけ
る位置(4)にあるときに、文書表示部710の中でマ
ウスを右クリックしてメニューを表示させた様子を示す
図である。
【図19】 図19は、編集適否判断部250の動作を
示すフローチャートである。
【図20】 図20は、文書修正部260の動作を示す
フローチャートである。
【図21】 図21(a)(b)は、文書修正部260
の動作の例を説明するための図である。
【図22】 図22(a)(b)は、文書修正部260
の動作の他の例を説明するための図である。
【図23】 図23(a)(b)は、図22(b)にお
いて、選択された範囲を削除する編集コマンドが実行さ
れたときの、文書修正部260の動作を説明するための
図である。
【図24】 図24は、位置情報保持部240のデータ
構成を示す図である。
【図25】 図25は、図7に示した構造化文書600
を、表示装置62に表示させた様子を示す図である。
【図26】 図26は、位置情報保持部240の位置情
報を自動更新するための方法を示すフローチャートであ
る。
【図27】 図27(a)(b)は、図26に示した位
置情報の自動補正方法の具体例を示す図である。
【図28】 図28(a)(b)は、編集処理によって
文書が処理されたことを、表示ユニット300に伝達す
るためのミューテーションイベントについて説明するた
めの図である。
【図29】 図29は、取消再実行処理制御ユニット4
00の構成を示す図である。
【図30】 図30(a)(b)は、取消再実行処理制
御ユニット400の動作を説明するための図である。
【図31】 図31は、表示ユニット300における動
作を概略的に示したフローチャートである。
【図32】 図32は、レンダリングユニット選択部3
10およびツリー表示処理部330を説明するために用
いる構造化文書630を示す図である。
【図33】 図33は、MATHMLで記述された文書
を処理するためのMATHMLプラグインユニット51
0を有する文書処理装置90によって構造化文書630
をレンダリングし、表示装置62に表示した例を示す図
である。
【図34】 図34は、MATHMLで記述された文書
を処理するためのMATHMLプラグインユニット51
0を有しない文書処理装置90によって構造化文書63
0をレンダリングし、表示装置62に表示した例を示す
図である。
【図35】 図35は、MATHMLで記述された部分
634を、スクロールバーのついたウインドウ730に
表示した例を示す図である。
【図36】 図36は、MATHMLで記述された部分
634のソースを、スクロールバーのついたウインドウ
730に表示した例を示す図である。
【図37】 図37は、スタイル設定部322の動作を
示すフローチャートである。
【図38】 図38は、図37に示した表示属性の設定
工程(S502、S504、およびS508)の詳細を
示すフローチャートである。
【図39】 図39は、図38に示した表示属性の検索
・設定工程(S524およびS530)の詳細を示すフ
ローチャートである。
【図40】 図40(a)(b)は、ハッシュテーブル
の例を示す図である。
【図41】 図41は、レイアウト処理部324の動作
を示すフローチャートである。
【図42】 図42は、レイアウト処理部324の動作
を説明するために用いる構造化文書640を示す図であ
る。
【図43】 図43は、図42に示した文書640を表
示装置62へ表示した様子を示す図である。
【図44】 図44は、レイアウト処理部324がレイ
アウト処理を行う際に、テキストデータを行矩形として
管理する様子を示す図である。
【図45】 図45(a)(b)(c)は、文書640
のうち、範囲644が削除されたときの、レイアウト処
理部324の動作を説明するための図である。
【図46】 図46は、レイアウト処理部324の動作
を説明するために用いる構造化文書650を示す図であ
る。
【図47】 図47は、図46に示した文書650を表
示装置62へ表示した様子を示す図である。
【図48】 図48は、文書650のうち、範囲658
が削除されたときの、レイアウト処理部324の動作を
説明するための図である。
【図49】 図49は、文書650のうち、範囲658
が削除されたときの、レイアウト処理部324の動作を
説明するための図である。
【図50】 図50は、文書650のうち、範囲658
が削除されたときの、レイアウト処理部324の動作を
説明するための図である。
【符号の説明】
10 インターネット、 20 ダウンロードサーバ、
30 利用者端末、40 文書サーバ、 50 編集
端末、 60 入力装置、 62 表示装置、64 通
信装置、 66 CPU、 68 メモリ、 70 ハ
ードディスク、72 外部記憶装置、 90 文書処理
装置、 100 ユーザーインターフェース、 110
イベント解析部、 120 イベントマップ、 13
0 UIコマンド実行部、 140 メニュー制御部、
200 編集ユニット、 210編集コマンド実行
部、 220 DOMエンジン、 230 文書保持
部、240 位置情報保持部、 250 編集適否判断
部、 260 文書修正部、300 表示ユニット、
310 レンダリングユニット選択部、 320レンダ
リング部、 322 スタイル設定部、 324 レイ
アウト処理部、330 ツリー表示処理部、 340
表示部、 400 取消再実行処理制御ユニット、 4
02 アンドゥスタック、 404 リドゥスタック、
410コマンド、 500 プラグインユニット、
660 キュー、 700 画面、 702 メニュー
バー、 704 ツールバー、 706 水平ルーラ、
708 垂直ルーラ、 710 文書表示部、 712
カーソル、 730ウインドウ
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 3/00 651 G06F 3/00 651C 654 654B

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 文書内のデータが階層構造を有する複数
    の構成要素に分類された構造化文書を処理するための方
    法であって、 前記構造化文書を処理するためのメニューの表示要求を
    取得する表示要求取得工程と、 前記階層構造に関する規則を記述した文書型定義を取得
    する文書型定義取得工程と、 前記規則を参照して、前記処理の対象となる前記構成要
    素に対して実行することができるコマンドを判断するコ
    マンド選択工程と、 実行することができると判断された前記コマンドを含む
    前記メニューを表示するメニュー表示工程とを備えたこ
    とを特徴とする方法。
  2. 【請求項2】 前記メニュー表示工程は、実行すること
    が適当でないと判断された前記コマンドを更に表示し、 適当でないと判断された前記コマンドが選択されたとき
    に警告処理を行う工程を更に備えたことを特徴とする請
    求項1に記載の方法。
  3. 【請求項3】 前記メニュー表示工程は、適当でないと
    判断された前記コマンドを更に表示し、 前記適当でないと判断された前記コマンドの選択を禁止
    する工程を更に備えたことを特徴とする請求項1に記載
    の方法。
  4. 【請求項4】 前記メニュー表示工程は、前記構成要素
    の表示規則を記述したスタイルシートを参照して、前記
    コマンドを表示することを特徴とする請求項1から3の
    いずれかに記載の方法。
  5. 【請求項5】 文書内のデータが階層構造を有する複数
    の構成要素に分類された構造化文書を処理するための方
    法であって、 前記構造化文書に対する編集要求を取得する編集要求取
    得工程と、 前記階層構造に関する規則を記述した文書型定義を取得
    する文書型定義取得工程と、 前記編集要求に従って編集された前記構造化文書が前記
    規則を満たすか否かを判断する編集適否判断工程とを備
    えたことを特徴とする方法。
  6. 【請求項6】 前記編集適否判断工程は、前記構造化文
    書を記憶媒体に保存する際に判断を行うことを特徴とす
    る請求項5に記載の方法。
  7. 【請求項7】 前記編集適否判断工程は、前記構造化文
    書に対する処理を終了する際に判断を行うことを特徴と
    する請求項5または6に記載の方法。
  8. 【請求項8】 前記編集適否判断工程において適当でな
    いと判断されたときに、前記規則を満たすように前記構
    造化文書の前記階層構造を修正する修正工程を更に備え
    たことを特徴とする請求項5から7のいずれかに記載の
    方法。
  9. 【請求項9】 前記編集適否判断工程において適当で
    ないと判断されたときに、警告処理を行う警告工程を更
    に備えたことを特徴とする請求項5から8のいずれかに
    記載の方法。
  10. 【請求項10】 前記請求項1から9のいずれかに記載
    の方法をコンピュータに実行させるためのプログラムを
    記録したことを特徴とするコンピュータ読み取り可能な
    記録媒体。
  11. 【請求項11】 前記請求項1から9のいずれかに記載
    の方法をコンピュータに実行させるためのプログラムを
    格納する記録媒体と、前記プログラムを前記記録媒体か
    ら読み出して前記コンピュータに配信する通信装置とを
    備えたことを特徴とするサーバ装置。
  12. 【請求項12】 文書内のデータが階層構造を有する複
    数の構成要素に分類された構造化文書を処理するための
    文書処理装置であって、 前記構造化文書を処理するためのメニューの表示要求を
    取得する表示要求取得部と、 前記階層構造に関する規則を記述した文書型定義を保持
    する文書型定義取得部と、 前記規則を参照して、前記メニューに表示されるコマン
    ドの実行の適否を判断する実行適否判断部と、 少なくとも適当であると判断された前記コマンドを含む
    前記メニューを表示するメニュー表示部とを備えたこと
    を特徴とする文書処理装置。
JP2000107473A 2000-04-10 2000-04-10 文書処理装置、文書処理方法、および記録媒体 Pending JP2001290811A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000107473A JP2001290811A (ja) 2000-04-10 2000-04-10 文書処理装置、文書処理方法、および記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000107473A JP2001290811A (ja) 2000-04-10 2000-04-10 文書処理装置、文書処理方法、および記録媒体

Publications (2)

Publication Number Publication Date
JP2001290811A true JP2001290811A (ja) 2001-10-19
JP2001290811A5 JP2001290811A5 (ja) 2007-05-31

Family

ID=18620460

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000107473A Pending JP2001290811A (ja) 2000-04-10 2000-04-10 文書処理装置、文書処理方法、および記録媒体

Country Status (1)

Country Link
JP (1) JP2001290811A (ja)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004318842A (ja) * 2003-04-01 2004-11-11 Ricoh Co Ltd Webページ生成装置、組み込み装置、Webページ生成の制御方法、Webページ生成プログラム及び記録媒体
JP2005346256A (ja) * 2004-06-01 2005-12-15 Canon Inc 印刷装置、印刷方法、コンピュータプログラム及びコンピュータ読み取り可能な記録媒体
WO2006051962A1 (ja) * 2004-11-12 2006-05-18 Justsystems Corporation データ処理装置およびデータ処理方法
WO2006051961A1 (ja) * 2004-11-12 2006-05-18 Justsystems Corporation データ処理装置およびデータ処理方法
WO2006137565A1 (ja) * 2005-06-24 2006-12-28 Justsystems Corporation 文書処理装置及び文書処理方法
JPWO2006051963A1 (ja) * 2004-11-12 2008-05-29 株式会社ジャストシステム データ処理装置およびデータ処理方法
JPWO2006051965A1 (ja) * 2004-11-12 2008-05-29 株式会社ジャストシステム データ処理装置およびデータ処理方法
JP2008217408A (ja) * 2007-03-05 2008-09-18 Njk:Kk Xmlデータ用操作ボタンの生成方法
WO2010058757A1 (ja) * 2008-11-18 2010-05-27 シャープ株式会社 情報処理装置
JP2010122799A (ja) * 2008-11-18 2010-06-03 Sharp Corp 情報処理装置
JP2010122800A (ja) * 2008-11-18 2010-06-03 Sharp Corp 情報処理装置
JP2010152874A (ja) * 2008-11-18 2010-07-08 Sharp Corp 電子機器および電子機器の制御方法
JP2010238200A (ja) * 2009-03-31 2010-10-21 Fujitsu Ltd 状態変化通知プログラム、情報処理装置および状態変化通知方法
JP2011060140A (ja) * 2009-09-11 2011-03-24 Fuji Xerox Co Ltd 構造化文書編集プログラム及び構造化文書編集装置
JP2013228811A (ja) * 2012-04-24 2013-11-07 Nippon Telegr & Teleph Corp <Ntt> Web閲覧履歴取得装置及びプログラム
US8823713B2 (en) 2008-11-18 2014-09-02 Sharp Kabushiki Kaisha Information processing apparatus
WO2015015888A1 (ja) * 2013-07-31 2015-02-05 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0830619A (ja) * 1994-07-19 1996-02-02 Fuji Xerox Co Ltd 構造化文書編集装置
JPH08137877A (ja) * 1994-11-11 1996-05-31 Canon Inc 文書処理方法及びその装置
JPH08235184A (ja) * 1995-02-24 1996-09-13 Fuji Xerox Co Ltd 文書編集装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0830619A (ja) * 1994-07-19 1996-02-02 Fuji Xerox Co Ltd 構造化文書編集装置
JPH08137877A (ja) * 1994-11-11 1996-05-31 Canon Inc 文書処理方法及びその装置
JPH08235184A (ja) * 1995-02-24 1996-09-13 Fuji Xerox Co Ltd 文書編集装置

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004318842A (ja) * 2003-04-01 2004-11-11 Ricoh Co Ltd Webページ生成装置、組み込み装置、Webページ生成の制御方法、Webページ生成プログラム及び記録媒体
JP2005346256A (ja) * 2004-06-01 2005-12-15 Canon Inc 印刷装置、印刷方法、コンピュータプログラム及びコンピュータ読み取り可能な記録媒体
JP4532995B2 (ja) * 2004-06-01 2010-08-25 キヤノン株式会社 印刷装置、印刷方法、及びプログラム
JP4515461B2 (ja) * 2004-11-12 2010-07-28 株式会社ジャストシステム データ処理装置およびデータ処理方法
WO2006051962A1 (ja) * 2004-11-12 2006-05-18 Justsystems Corporation データ処理装置およびデータ処理方法
WO2006051961A1 (ja) * 2004-11-12 2006-05-18 Justsystems Corporation データ処理装置およびデータ処理方法
JPWO2006051963A1 (ja) * 2004-11-12 2008-05-29 株式会社ジャストシステム データ処理装置およびデータ処理方法
JPWO2006051961A1 (ja) * 2004-11-12 2008-05-29 株式会社ジャストシステム データ処理装置およびデータ処理方法
JPWO2006051965A1 (ja) * 2004-11-12 2008-05-29 株式会社ジャストシステム データ処理装置およびデータ処理方法
JP4515462B2 (ja) * 2004-11-12 2010-07-28 株式会社ジャストシステム データ処理装置およびデータ処理方法
JP4515463B2 (ja) * 2004-11-12 2010-07-28 株式会社ジャストシステム データ処理装置およびデータ処理方法
WO2006137565A1 (ja) * 2005-06-24 2006-12-28 Justsystems Corporation 文書処理装置及び文書処理方法
JP4593580B2 (ja) * 2007-03-05 2010-12-08 株式会社エヌジェーケー Xmlデータ用操作ボタンの生成方法
JP2008217408A (ja) * 2007-03-05 2008-09-18 Njk:Kk Xmlデータ用操作ボタンの生成方法
JP2010152874A (ja) * 2008-11-18 2010-07-08 Sharp Corp 電子機器および電子機器の制御方法
JP2010122800A (ja) * 2008-11-18 2010-06-03 Sharp Corp 情報処理装置
JP2010122799A (ja) * 2008-11-18 2010-06-03 Sharp Corp 情報処理装置
WO2010058757A1 (ja) * 2008-11-18 2010-05-27 シャープ株式会社 情報処理装置
US8823713B2 (en) 2008-11-18 2014-09-02 Sharp Kabushiki Kaisha Information processing apparatus
JP2010238200A (ja) * 2009-03-31 2010-10-21 Fujitsu Ltd 状態変化通知プログラム、情報処理装置および状態変化通知方法
JP2011060140A (ja) * 2009-09-11 2011-03-24 Fuji Xerox Co Ltd 構造化文書編集プログラム及び構造化文書編集装置
JP2013228811A (ja) * 2012-04-24 2013-11-07 Nippon Telegr & Teleph Corp <Ntt> Web閲覧履歴取得装置及びプログラム
WO2015015888A1 (ja) * 2013-07-31 2015-02-05 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
JPWO2015015888A1 (ja) * 2013-07-31 2017-03-02 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
US10803236B2 (en) 2013-07-31 2020-10-13 Sony Corporation Information processing to generate screen based on acquired editing information

Similar Documents

Publication Publication Date Title
US7617450B2 (en) Method, system, and computer-readable medium for creating, inserting, and reusing document parts in an electronic document
JP2001290811A (ja) 文書処理装置、文書処理方法、および記録媒体
US7712016B2 (en) Method and apparatus for utilizing an object model for managing content regions in an electronic document
US8584009B2 (en) Automatically propagating changes in document access rights for subordinate document components to superordinate document components
US20100162095A1 (en) Data processing apparatus and data processing method
US20100218083A1 (en) Document processing apparatus and document processing method
EP1744255A1 (en) Document processing device and document processing method
US20100169333A1 (en) Document processor
EP1768034A1 (en) Document processing device and document processing method
US20080005663A1 (en) Document Processing Device And Document Processing Method
JP2001290803A (ja) 文書処理方法、文書処理装置、および記録媒体
JP4514888B2 (ja) 文書処理方法
JP5521384B2 (ja) 書籍掲載文書の電子的な編集・内容変更システム、書籍掲載文書の電子的な編集・内容変更プログラムおよび書籍作成システム
JPH1040236A (ja) コメント付きハイパーテキスト文書処理装置
JP4566196B2 (ja) 文書処理方法および装置
JP2006119915A (ja) 電子ファイリングシステム、電子ファイリング方法
JP2001290802A (ja) 文書処理方法、文書処理装置、および記録媒体
EP1744253A1 (en) Document processing device and document processing method
EP1744256A1 (en) Document processing device and document processing method
US20090287994A1 (en) Document processing device and document processing method
EP1837776A1 (en) Document processing device and document processing method
EP1780645A1 (en) Document processing method and device
JP2001290805A (ja) 文書処理方法、文書処理装置、および記録媒体
JP2001290806A (ja) 文書処理方法、文書処理装置、および記録媒体
JP2001290810A (ja) 文書処理方法、文書処理装置、および記録媒体

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20041227

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20041227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050127

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070405

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070406

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090724

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090804

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091005

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100105

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100608