(57)【要約】【課題】ＸＭＬ文書などの第１の構造化文書を、ＸＳＬＴ文書などの第２の構造化文書を用いてＨＴＭＬ文書などの第３の構造化文書に変換して表示する場合、表示された要素に対しなされた操作内容が、第１の構造化文書や第２の構造化文書を更新した後であっても、再び変換を行って表示する際には、同じ要素に対し再現することができる操作位置記憶方法、構造化文書表示方法、構造化文書表示装置、およびプログラムを提供する。【解決手段】表示手段で表示された第３の構造化文書の要素のうち、ユーザにより操作された操作対象の要素の位置を、当該要素を生成する際に用いられた第１の構造化文書の要素と第２の構造化文書の要素のそれぞれが格納されている記憶空間上の位置情報で記憶し、この位置情報をユーザによりなされた操作内容を再現する際に利用する。【選択図】　　図１
2004038334.tif 000002
【特許請求の範囲】
【請求項１】
記憶手段と、複数の要素から構成された文書構造を有する構造化文書としての第１の構造化文書を、当該第１の構造化文書を表示用の前記構造化文書に変換するための変換規則を記述した第２の構造化文書を用いて変換することにより第３の構造化文書を得、この第３の構造化文書に基づき表示を行う表示手段とを具備する構造化文書表示装置において、
前記表示手段で表示された前記第３の構造化文書の要素のうち、ユーザにより操作された操作対象の要素の位置を、当該要素を生成する際に用いられた前記第１の構造化文書の要素の位置情報と前記第２の構造化文書の要素の位置情報とで前記記憶手段に記憶し、
前記第１の構造化文書あるいは前記第２の構造化文書を更新した後に再び前記変換を行って表示する際には、前記操作対象の要素に対しなされた操作内容を再現するために、前記記憶手段に記憶された前記位置情報を利用することを特徴とする操作位置記憶方法。
【請求項２】
前記操作対象の要素の位置を、当該要素を生成する際に用いられた前記第１の構造化文書の要素と前記第２の構造化文書の要素のそれぞれが格納されている記憶空間上の位置情報で記憶することを特徴とする請求項１記載の操作位置記憶方法。
【請求項３】
前記操作対象の要素の位置を、当該要素を生成する際に用いられた前記第１の構造化文書の要素と前記第２の構造化文書の要素のそれぞれの前記文書構造上の位置情報で記憶し、
前記第１の構造化文書と前記第２の構造化文書のうち少なくとも一方の文書構造が更新されたときには、この更新内容に応じて、前記操作対象の要素の位置として記憶された、前記第１の構造化文書の要素と前記第２の構造化文書の要素のそれぞれの前記文書構造上の位置情報を補正することを特徴とする請求項１記載の操作位置記憶方法。
【請求項４】
複数の要素から構成された文書構造を有する構造化文書としての第１の構造化文書を、当該第１の構造化文書を表示用の前記構造化文書に変換するための変換規則を記述した第２の構造化文書を用いて変換することにより第３の構造化文書を得、この第３の構造化文書に基づき表示を行う表示手段と、
この表示手段で表示された前記第３の構造化文書の要素のうち、ユーザにより操作された操作対象の要素の位置を、当該要素を生成する際に用いられた前記第１の構造化文書の要素の位置情報と前記第２の構造化文書の要素の位置情報とで記憶する記憶手段と、
を具備し、
前記第１の構造化文書あるいは前記第２の構造化文書を更新した後に再び前記変換を行って表示する際に、前記操作対象の要素に対しなされた操作内容を再現するために、前記記憶手段で記憶された前記位置情報を利用することを特徴とする構造化文書表示装置。
【請求項５】
前記操作対象の要素の位置を、当該要素を生成する際に用いられた前記第１の構造化文書の要素と前記第２の構造化文書の要素のそれぞれが格納されている記憶空間上の位置情報で記憶することを特徴とする請求項４記載の構造化文書表示装置。
【請求項６】
前記操作対象の要素の位置を、当該要素を生成する際に用いられた前記第１の構造化文書の要素と前記第２の構造化文書の要素のそれぞれの前記文書構造上の位置情報で記憶し、
前記第１の構造化文書と前記第２の構造化文書のうち少なくとも一方の文書構造が更新されたときには、この更新内容に応じて、前記操作対象の要素の位置として記憶された、前記第１の構造化文書の要素と前記第２の構造化文書の要素のそれぞれの前記文書構造上の位置情報を補正することを特徴とする請求項４記載の構造化文書表示装置。
【請求項７】
記憶手段と、複数の要素から構成された文書構造を有する構造化文書としての第１の構造化文書を、当該第１の構造化文書を表示用の前記構造化文書に変換するための変換規則を記述した第２の構造化文書を用いて変換することにより第３の構造化文書を得、この第３の構造化文書に基づき表示を行う表示手段とを具備する構造化文書表示装置において、
前記第１の構造化文書として入力された第１の文書を前記第２の構造化文書として入力された第２の文書を用いて変換することにより生成された前記第３の構造化文書としての第１の表示文書の要素のうち、ユーザにより操作された操作対象の要素の位置を、当該要素を生成する際に用いられた前記第１の文書の要素の位置情報と前記第２の文書の要素の位置情報とで記憶し、
前記第１の文書が更新されたときは、当該第１の文書を更新した結果得られた第３の文書を前記第２の文書を用いて変換することにより生成された前記第３の構造化文書としての第２の表示文書の要素の中から、前記記憶された前記第１の文書の要素と前記第２の文書の要素の位置情報に対応する前記操作対象の要素を求めて、前記表示手段で表示する当該第２の表示文書中の当該操作対象の要素に対し、前記ユーザによる操作の内容を再現することを特徴とする構造化文書表示方法。
【請求項８】
前記第２の文書が更新されたときは、当該第２の文書を更新した結果得られた第４の文書を用いて前記第１の文書を変換することにより生成された前記第３の構造化文書としての第３の表示文書の要素の中から、前記記憶された前記第１の文書の要素と前記第２の文書の要素の位置情報に対応する前記操作対象の要素を求めて、前記表示手段で表示する当該第３の表示文書中の当該操作対象の要素に対し、前記ユーザによる操作の内容を再現することを特徴とする請求項７記載の構造化文書表示方法。
【請求項９】
前記操作対象の要素の位置を、当該要素を生成する際に用いられた前記第１の文書の要素と前記第２の文書の要素のそれぞれが格納されている記憶空間上の位置情報で記憶することを特徴とする請求項７または８記載の構造化文書表示方法。
【請求項１０】
複数の要素から構成された文書構造を有する構造化文書としての第１の構造化文書を、当該第１の構造化文書を表示用の前記構造化文書に変換するための変換規則を記述した第２の構造化文書を用いて変換することにより第３の構造化文書を得、この第３の構造化文書に基づき表示手段で表示を行う構造化文書表意装置いおいて、
前記第１の構造化文書として入力された第１の文書を前記第２の構造化文書として入力された第２の文書を用いて変換することにより生成された前記第３の構造化文書としての第１の表示文書の要素のうち、ユーザにより操作された操作対象の要素の位置を、当該要素を生成する際に用いられた前記第１の文書の要素の位置情報と前記第２の文書の要素の位置情報で記憶する記憶手段と、
前記第１の文書を更新する第１の更新手段と、
この第１の更新手段で前記第１の文書が更新された結果得られた第３の文書を、前記第２の文書を用いて変換することにより生成された前記第３の構造化文書としての第２の表示文書の要素の中から、前記記憶手段で記憶された前記第１の文書の要素と前記第２の文書の要素の位置情報に対応する前記操作対象の要素を求めて、前記表示手段で表示する当該第２の表示文書中の当該操作対象の要素に対し、前記ユーザによる操作の内容を再現する手段と、
を具備したことを特徴とする構造化文書表示装置。
【請求項１１】
前記第２の文書を更新する第２の更新手段と、
この第２の更新手段で前記第２の文書を更新した結果得られた第４の文書を用いて前記第１の文書を変換することにより生成された前記第３の構造化文書としての第３の表示文書の要素の中から、前記記憶手段で記憶された前記第１の文書の要素と前記第２の文書の要素の位置情報に対応する前記操作対象の要素を求めて、前記表示手段で表示する当該第３の表示文書中の当該操作対象の要素に対し、前記ユーザによる操作の内容を再現する手段と、
をさらに具備したことを特徴とする請求項１０記載の構造化文書表示装置。
【請求項１２】
前記記憶手段は、前記操作対象の要素に対しなされた操作の内容をさらに記憶し、
前記表示手段で表示する前記第２の表示文書中の前記操作対象の要素に対し、前記記憶手段で記憶された前記操作の内容を再現することを特徴とする請求項１０記載の構造化文書表示装置。
【請求項１３】
前記記憶手段は、前記操作対象の要素に対しなされた操作の内容をさらに記憶し、
前記表示手段で表示する前記第３の表示文書中の前記操作対象の要素に対し、前記記憶手段で記憶された前記操作の内容を再現することを特徴とする請求項１１記載の構造化文書表示装置。
【請求項１４】
前記記憶手段は、ユーザにより操作された操作対象の要素の位置を、当該要素を生成する際に用いられた前記第１の文書の要素と前記第２の文書の要素のそれぞれが格納されている記憶空間上の位置情報で記憶することを特徴とする請求項１０または１１記載の構造化文書表示装置。
【請求項１５】
複数の要素から構成された文書構造を有する構造化文書としての第１の構造化文書を、当該第１の構造化文書を表示用の前記構造化文書に変換するための変換規則を記述した第２の構造化文書を用いて変換することにより第３の構造化文書を得、この第３の構造化文書に基づき表示手段に表示を行うプログラムであって、
コンピュータに、
前記第１の構造化文書として入力された第１の文書を前記第２の構造化文書として入力された第２の文書を用いて変換することにより生成された前記第３の構造化文書としての第１の表示文書の要素のうち、ユーザにより操作された操作対象の要素の位置を、当該要素を生成する際に用いられた前記第１の文書の要素と前記第２の文書の要素の位置情報で記憶する第１のステップと、
前記第１の文書を更新する第２のステップと、
前記第１の文書が更新された結果得られた第３の文書を、前記第２の文書を用いて変換することにより生成された前記第３の構造化文書としての第２の表示文書の要素の中から、前記第１のステップで記憶された前記第１の文書の要素と前記第２の文書の要素の位置情報に対応する前記操作対象の要素を求める第３のステップと、
前記表示手段で表示する前記第２の表示文書中の前記操作対象の要素に対し、前記ユーザによる操作の内容を再現する第４のステップと、
を実行させるプログラム。
【請求項１６】
前記コンピュータに、
前記第２の文書を更新する５のステップと、
前記第２の文書を更新した結果得られた第４の文書を用いて前記第１の文書を変換することにより生成された前記第３の構造化文書としての第３の表示文書の要素の中から、前記第１のステップで記憶された前記第１の文書の要素と前記第２の文書の要素の位置情報に対応する前記操作対象の要素を求める第６のステップと、
前記表示手段で表示する前記第３の表示文書中の前記操作対象の要素に対し、前記ユーザによる操作の内容を再現する第７のステップと、
をさらに実行させることを特徴とする請求項１５記載のプログラム。
【請求項１７】
前記第１のステップは、前記操作対象の要素の位置を、当該要素を生成する際に用いられた前記第１の文書の要素と前記第２の文書の要素のそれぞれが格納されている記憶空間上の位置情報で記憶することを特徴とする請求項１５記載のプログラム。
【請求項１８】
複数の要素から構成された文書構造を有する構造化文書としての第１の構造化文書を、当該第１の構造化文書を表示用の前記構造化文書に変換するための変換規則を記述した第２の構造化文書を用いて変換することにより第３の構造化文書を得、この第３の構造化文書に基づき表示を行う表示手段を具備する構造化文書表示装置において、前記表示手段で表示された前記第３の構造化文書の要素のうち、ユーザにより操作された操作対象の要素の位置を記憶するためのデータであって、当該要素を生成する際に用いられた前記第１の構造化文書の要素の位置情報と前記第２の構造化文書の要素の位置情報とを含むことを特徴とする操作位置記憶データ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば、ＸＭＬ文書などの構造化文書をＸＳＬＴ文書などのスタイルシートを用いて変換し表示する場合に、表示された要素に対しなされた操作内容が、ＸＭＬ文書やＸＳＬＴ文書を更新した後に、再び変換を行って表示する際にも同じ要素に対し再現可能にするための表示方法およびそれを用いた表示装置に関する。
【０００２】
【従来の技術】
近年、インターネット技術、とくにＷｅｂ技術は普及し、ＨＴＭＬでかかれた文書はＯＳやＷｅｂブラウザの種類にかかわらず、どこでも閲覧できるようになった。そして、ＨＴＭＬ文書では、文章とスタイル情報（フォントサイズ、色、テーブルの幅などの画面への表示の仕方に関係する情報）が混在しており、また、文章中のテキストを囲うタグは画面上での構造に関する情報しかもてないため、ＨＴＭＬ文書の内容は計算機で利用する情報としては活用しづらかった。
【０００３】
このため、テキストを意味を持たせたタグで囲い構造化する技術である、構造化文書技術のひとつとして、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ　Ｍａｒｋｕｐ　Ｌａｎｇｕａｇｅ）が標準化され、広く使われるようになった（ＸＭＬの規格については例えば　ｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＴＲ／ＲＥＣ−ｘｍｌ　に詳しい）。
【０００４】
一方、ＸＭＬ文書そのものは人間にとって読みづらいため、スタイル情報を追加するなどしたＨＴＭＬ文書に変換し、見やすい形に整形した上でＷｅｂブラウザ上で閲覧するスタイル技術の一つとして、ＸＳＬＴ（Ｅｘｔｅｎｓｉｂｌｅ　Ｓｔｙｌｅｓｈｅｅｔ　Ｌａｎｇａｇｅ　Ｔｒａｓｆｏｒｍａｔｉｏｎｓ）が開発され、そして標準化された（ＸＳＬＴの規格については例えば　ｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＴＲ／ｘｓｌｔ　に詳しい）。
【０００５】
ＸＳＬＴは、ＸＭＬでかかれたＸＭＬ文書を変換するためのプログラム言語であり、ＸＳＬＴでかかれたＸＳＬＴ文書を実行し、ＸＭＬ文書を変換するプログラムはＸＳＬＴプロセッサと呼ばれ、そして、ＸＳＬＴプロセッサを内蔵したＷｅｂブラウザが現在普及しつつある。
【０００６】
また、プログラム言語から表示されたＨＴＭＬ文書を操作する技術である、ＤＨＴＭＬ（Ｄｙｎａｍｉｃ　ＨＴＭＬ）は、マウス操作に応じて変化する動的なＷｅｂページを作成するなどに一般的に用いられている。
【０００７】
ＤＨＴＭＬでは、ＨＴＭＬ文書をツリー構造のデータ構造として表現し、ＨＴＭＬ文書のテキスト、要素、属性などをツリーのノードとして、要素の入れ子関係をノードの親子関係として表現し、プログラムからノードを生成する、ノードの値を変更するなどを行える。
【０００８】
なお、ＤＨＴＭＬはＨＴＭＬ文書を対象としたものであるが、これをＸＭＬ文書を対象に汎用化した　ＤＯＭ（Ｄｏｃｕｍｅｎｔ　Ｏｂｊｅｃｔ　Ｍｏｄｅｌ）が標準化されている（ＤＯＭ、ＤＨＴＭＬについては例えば　ｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＤＯＭ／に詳しい）。
【０００９】
ＤＨＴＭＬを用いることで、例えば、ＨＴＭＬ文書のある部分の表示／非表示を切替えたり、色を変更したり、あるＨＴＭＬ文書の画面要素周りに選択枠を表示したりなどといったことが可能になる。
【００１０】
ＨＴＭＬだけでは、静的なＷｅｂページしか作ることはできないが、ＤＨＴＭＬを用いれば、動的なＷｅｂページを作ることができ、例えば、段落はあらかじめ隠し、見出しだけを表示しておき、見出し部分をマウスでクリックされると段落を見出しの下に表示するＷｅｂページや、あるいは、マウスポインタがある文字列上に来るとメニューを表示するＷｅｂページなどを作ることに用いられている。
【００１１】
しかしながら、上記のような従来技術では、ＸＭＬ文書の表示手段としては、以下に述べるような問題点があった。
【００１２】
すなわち、ＸＭＬ文書は任意のＸＳＬＴ文書でＨＴＭＬ文書に変換してから表示するため、ＸＭＬ文書を一部でも変更すると、ＸＳＬＴで変換を再び行うことにより、ＨＴＭＬ文書全体が更新されてしまう。すなわち、この再変換で出力される更新されたＨＴＭＬ文書は最初に変換出力されたＨＴＭＬ文書とは別のＨＴＭＬ文書になってしまうので、再変換前のＨＴＭＬ文書と再変換後のＨＴＭＬ文書との間では、各ノードの対応関係がわからなくなる。このため、例えば、ＨＴＭＬ文書上であるノードを選択する機能を用いて、再変換前のＨＴＭＬ文書中にあるノードを選択状態にしておいても、再変換後では、当該ノードに当該選択状態を保持しておくことはできなかった。これは、再変換が行われたときに、再変換前に選択状態であったノードに対応するノードが再変換後のＨＴＭＬ文書に出力されていても、そのノードが選択状態であった元のノードと同じものであることが分からないからである。
【００１３】
また、同様の理由で、ＸＭＬ文書を変換することにより出力されたＨＴＭＬ文書の一部分を非表示にする、テーブルの幅を変更するなどのＤＨＴＭＬを用いた操作を行っても、再変換後には、どのノードに、ＤＨＴＭＬ操作を適用したのか分からなくなるので、例えば、再変換前に非表示にしたところが再変換後には表示されてしまう、再変換前にテーブルの幅を変更したのに再変換後には元に戻ってしまうなどといった問題が起こる。
【００１４】
これに対して、例えば、選択状態にするなどの操作を、ＨＴＭＬ文書中のノードではなく、ＸＭＬ文書中のノードに対してなされたものとして記憶する方法が考えられる。同様の方法は、あるデータを画面データに変換して表示するＨＴＭＬエディタやアウトラインエディタなどでも用いられている。この場合、変換前のデータのノード位置を記憶する。
【００１５】
しかしながら、ＸＳＬＴでは、ＸＭＬ文書中のノードが複数のＨＴＭＬ文書ノードに変換されることがあるため、ＨＴＭＬ文書中で１つのノードを選択状態にした場合に、上記手法を用いて、ＸＭＬ文書中で当該選択状態に操作されたノードを保持したとしても、当該ＸＳＬＴを用いて再変換した場合には、再変換後のＨＴＭＬ文書中で、複数のノードが選択状態になってしまう場合があり、特定の画面上の表示部分を特定することはできない。
【００１６】
なお、ＨＴＭＬエディタやワードプロセッサなどで、目次を本文と別に同時に表示し、かつ、目次の見出しを折り畳んで表示／非表示を切替えるものもあるが、この場合は、目次と本文の２箇所に見出しを表示していることを前提にプログラムは組まれており、目次に表示されている見出しを折り畳んだと記憶することで本文と区別を可能にしている。しかしながら、ＸＭＬ文書をＸＳＬＴで変換して表示する装置においては、変換規則であるＸＳＬＴ文書は表示プログラムにはあらかじめ与えられておらず、ＸＭＬ文書のノードが何箇所に出力されるかをあらかじめプログラムしておくことはできないため、上述の方法を用いることはできなかった。
【００１７】
また、ＸＳＬＴに埋め込まれたノードや文字列も、例えばテーブルの行頭に同じ文字列を表示するなど、何箇所に出力されるかあらかじめ決めておくことができないため、選択させることができなかった。
【００１８】
【発明が解決しようとする課題】
このように、ＸＭＬ文書などの構造化文書を、スタイルシートを用いてＨＴＭＬ文書などの他の構造化文書に変換して表示する場合、表示された要素に対しなされた操作内容が、ＸＭＬ文書やスタイルシートを更新した後に、再び変換を行って表示する際には、同じ要素に対し再現することができないという問題点があった。
【００１９】
そこで、本発明は、上記問題点に鑑み、ＸＭＬ文書などの構造化文書を、スタイルシートを用いてＨＴＭＬ文書などの他の構造化文書に変換して表示する場合、表示された要素に対しなされた操作内容が、ＸＭＬ文書やスタイルシートを更新した後であっても、再び変換を行って表示する際には、同じ要素に対し再現することができる操作位置記憶方法、それを用いた構造化文書表示方法、構造化文書表示装置、およびプログラムを提供することを目的とする。
【００２０】
【課題を解決するための手段】
本発明は、記憶手段と、複数の要素から構成された文書構造を有する構造化文書としての第１の構造化文書（例えば、ＸＭＬ文書）を、当該第１の構造化文書を表示用の前記構造化文書に変換するための変換規則を記述した第２の構造化文書（例えば、ＸＳＬＴ文書）を用いて変換することにより第３の構造化文書（例えば、ＨＴＭＬ文書）を得、この第３の構造化文書に基づき表示を行う表示手段とを具備する構造化文書表示装置において、前記表示手段で表示された前記第３の構造化文書の要素のうち、ユーザにより操作された操作対象の要素の位置を、当該要素を生成する際に用いられた前記第１の構造化文書の要素の位置情報と前記第２の構造化文書の要素の位置情報とで前記記憶手段に記憶し、前記第１の構造化文書あるいは前記第２の構造化文書を更新した後に再び前記変換を行って表示する際に、前記操作対象の要素に対しなされた操作内容を再現するために、前記記憶手段に記憶された前記位置情報を利用することを特徴とする。
【００２１】
本発明によれば、ＸＭＬ文書などの構造化文書を、スタイルシートを用いてＨＴＭＬ文書などの他の構造化文書に変換して表示する場合、表示された要素に対しなされた操作内容が、ＸＭＬ文書やスタイルシートを更新した後であっても、再び変換を行って表示する際には、同じ要素に対し再現することができる。
【００２２】
好ましくは、ユーザにより操作された操作対象の要素の位置を、当該要素を生成する際に用いられた前記第１の構造化文書の要素と前記第２の構造化文書の要素のそれぞれが格納されている記憶空間上の位置情報で記憶する。
【００２３】
また、好ましくは、ユーザにより操作された操作対象の要素の位置を、当該要素を生成する際に用いられた前記第１の構造化文書の要素と前記第２の構造化文書の要素のそれぞれの前記文書構造上の位置情報で記憶し、前記第１の構造化文書と前記第２の構造化文書のうち少なくとも一方の文書構造が更新されたときには、この更新内容に応じて、前記操作対象の要素の位置として記憶された、前記第１の構造化文書の要素と前記第２の構造化文書の要素の前記文書構造上の位置情報を補正する。
【００２４】
【発明の実施形態】
以下、本発明の実施形態について、図面を参照して説明する。
【００２５】
図１は、本発明の一実施形態にかかる構造化文書表示装置として、構造化文書としての例えばＸＭＬ文書を表示するためのＸＭＬ文書表示装置の構成例を示したものである。図１に示したＸＭＬ文書は、大きく分けて、データ入力部１、データ更新部２、表示部３、入力部４、制御部５からなり、データ入力部１から入力したＸＭＬ文書を、同じく、データ入力部１から入力したスタイルシートとしての例えばＸＳＬＴ文書を用いて表示データに変換し表示するものである。
【００２６】
表示部３は、ディスプレイなどの表示装置に表示データを表示するためのものである。例えば、コンピュータのディスプレイには接続インターフェースを介して接続し、制御ソフトウエアを介して表示するが、より典型的な例としては、Ｗｅｂブラウザを介してディスプレイに表示する形態もある。
【００２７】
入力部４は、表示部３でディスプレイに表示された画面イメージに対して、選択や操作を行うためのものであり、例えば、テキストを入力するためのキーボードや、データやメニュー、その他の表示物を指定するポインティングデバイスなどの物理的なデバイスの他に、画面上に表示されたソフトウエアキーボードをポインティングデバイスで指定する形態や、ユーザを介さないプログラムだけの形態もある。また、より典型的な例として、Ｗｅｂブラウザのプログラムを介して、キーボードやポインティングデバイスからの情報を受け取る場合もある。
【００２８】
なお、これらは同時に備える必要は無い。
【００２９】
データ入力部１は、外部のデータ記憶装置からＸＭＬ文書データとＸＳＬＴ文書データを読み出して、それらを制御部５内のＸＭＬ文書記憶部１１、ＸＳＬＴ文書記憶部１２のそれぞれに送る。
【００３０】
外部のデータ記憶装置が、ハードディスクや半導体メモリ等のデバイスの場合、データ入力部１は、これらデバイスの接続インターフェースと制御ソフトウエアの組合せの形態をとる。また、外部のデータ記憶装置がネットワークを介して接続された計算機上に配置される場合、データ入力部１はネットワーク接続装置と通信ソフトウエアの組合せの形態をとる。また、外部のデータ記憶装置のより典型的な例としては、ネットワークで接続された計算機上のＷｅｂサーバがある。
【００３１】
データ更新部２は、編集機能などを実現するプログラムなどであり、制御部５のＸＭＬ文書記憶部１１、ＸＳＬＴ文書記憶部１２に保持しているＸＭＬ文書とＸＳＬＴ文書を更新する。ＸＭＬ文書やＸＳＬＴ文書をＤＯＭ（ｄｏｃｕｍｅｎｔ　ｏｂｊｅｃｔ　ｍｏｄｅｌ）を用いて更新するプログラムであればなんでもよく、例えば、Ｗｅｂブラウザ上のスクリプトなどでもよい。また、ＤＯＭそのものを用いていなくても、ＤＯＭ操作に相当する操作を取り出すことが可能であればそれでもよい。
【００３２】
なお、表示部３と入力部４のみ、あるいは、表示部３と入力部４とデータ更新部２を、Ｗｅｂブラウザを用いて、ネットワークで接続された別の計算機上に配置してもよい。
【００３３】
また、データ更新部２のみを、ネットワークで接続された別の計算機上に配置してもよい。
【００３４】
なお、ネットワークは、有線ネットワークであっても、無線ネットワークであっても、有線の部分と無線の部分とを含むネットワークであっても良い。また、ネットワークは、インターネットであってもよいし、家庭網や企業ネットワークであってもよいし、通信事業者網であっても良いし、Ｗｅｂサーバがインターネット上にあり、ＷｅｂブラウザがＬＡＮ上にあるようなものであってもよい。
【００３５】
また、Ｗｅｂブラウザが配置された計算機は、１台でも、同様の計算機が複数台あってもかまわない。
【００３６】
また、図１に示した構成のＸＭＬ文書表示装置は、計算機（例えば、コンピュータ）上で実現されてもよいが、ＣＰＵを内蔵する携帯電話端末やＰＤＡ（ｐｅｒｓｏｎａｌ　ｄｉｇｉｔａｌ　ａｓｓｉｓｔａｎｔ）やネットワーク家電であってもかまわない。
【００３７】
また、図１に示したＸＭＬ文書表示装置は、ＸＭＬ文書などの構造化文書をディスプレイなどの表示手段で示するために、当該ＸＭＬ文書をＸＳＬＴ文書などのスタイルシートを用いて表示用の他の構造化文書しての例えばＨＴＭＬ文書に変換し、この他の構造化文書に基づき表示を行い、表示手段で表示された他の構造化文書の要素のうち、ユーザにより操作された操作対象の要素の位置を、当該要素を生成する際に用いられたＸＭＬ文書の要素とＸＳＬＴ文書の要素の位置で記憶し、この記憶内容を前記ユーザによる操作を再現するために利用するプログラムをコンピュータ（計算機）に実行させることにより実現することもできる。
【００３８】
また、図１に示した構成のＸＭＬ文書表示装置を複数用意し、１つ目のＸＭＬ文書表示装置の表示部３は、ディスプレイなどの物理的なデバイスではなく、２つ目のＸＭＬ文書表示装置のデータ入力部１２にＸＭＬ文書データを出力するソフトウエアであってもよい。
【００３９】
さて、制御部５では、データ入力部１から、処理対象のＸＭＬ文書と、当該ＸＭＬ文書を表示データとしての他の構造化文書（例えばＨＴＭＬ文書）に変換するための変換規則が記述されたＸＳＬＴ文書を受け取り、当該ＸＭＬ文書を当該ＸＳＬＴ文書を用いて表示データに変換する。
【００４０】
表示データとしての他の構造化文書としては、例えば、ＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ　Ｍａｒｋｕｐ　Ｌａｎｇｕａｇｅ）文書が挙げられるが、その他に、各種ＸＭＬ文書、例えば、ＸＨＴＭＬ（Ｔｈｅ　Ｅｘｔｅｎｓｉｂｌｅ　Ｈｙｐｅｒ　Ｔｅｘｔ　Ｍａｒｋｕｐ　Ｌａｎｇｕａｇｅ）文書、ＳＶＧ（Ｓｔａｎｄａｒｄ　Ｖｅｃｔｏｒ　Ｇｒａｐｈｉｃｓ）文書、ＭａｔｈＭＬ（Ｍａｔｈｅｍａｔｉｃａｌ　Ｍａｒｋｕｐ　Ｌａｎｇｕａｇｅ）文書、他のＸＭＬ文書（例えば元のＸＭＬ文書に修飾を加えたもの）や、これらを組み合わせたＸＭＬ文書などがある。
【００４１】
表示データとしての構造化文書として、どのようなものを使用するかについては、表示部３、例えばＷｅｂブラウザがどのような構造化文書をサポートしているかに依存する。
【００４２】
なお、ＸＨＴＭＬの規格については例えば、　ｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＴＲ／ｘｈｔｍｌ１に、ＳＶＧの規格については例えば　ｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＴＲ／ＳＶＧ　に、ＭａｔｈＭＬの規格については例えば　ｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＴＲ／ＲＥＣ−ＭａｔｈＭＬ　にそれぞれ詳しい。
【００４３】
以下では、表示データとしての構造化文書として、ＨＴＭＬ文書を用いるものとして説明する。
【００４４】
ここで、図５に、以下の説明で用いるＸＭＬ文書の一例を、図６にＸＳＬＴ文書の一例を、図７にＨＴＭＬ文書の一例をそれぞれ示し、図８には、図７に示したＨＴＭＬ文書を表示部３で表示した場合（ブラウザ上で閲覧した場合）の画面表示例を示す。
【００４５】
ＤＨＴＭＬやＤＯＭは、構造化文書の階層的な文書構造をツリー構造として表し、構造化文書を構成する要素（構成要素名（タグ）や構成要素のもつ値としてのテキストデータや属性など）を当該ツリー構造上のノードとして表したツリー形式のデータ構造で表現し、構造化文書の各要素を当該ツリー状のデータ構造のノードとして、プログラムからアクセス可能にする技術である。以下、ＨＴＭＬ文書とＸＭＬ文書を区別せず、ツリー状のデータ構造として表現された構造化文書を「ＤＯＭツリー」と呼び、構造化文書の各要素を「ノード」あるいは「ＤＯＭノード」と呼ぶことがある。
【００４６】
図９は、図５のＸＭＬ文書に対応するＤＯＭツリーの一例を、図１０に図６のＸＳＬＴ文書に対応するＤＯＭツリーの一例を、図１１に図７のＨＴＭＬ文書に対応するＤＯＭツリーの一例をそれぞれ示す。なお、図９〜図１１に示したＤＯＭツリーでは、構成要素名に対応するノードを四角で囲み、構成要素のもつ値としてのテキストデータに対応するノードを長円で囲み表している。属性に対応するノードは、説明の簡単のため、省略している。
【００４７】
ＤＯＭツリーにおけるノード（要素）は、ＨＴＭＬ文書中やＸＭＬ文書中の、構成要素名や、その値としてのテキストデータ、属性などに対応する。
【００４８】
構成要素とは、構造化文書中でタグで囲まれた部分であり、「タグ」には、「開始タグ」と「終了タグ」があり、タグで囲まれた部分とは、開始タグから、それに対応する終了タグまでの部分を指す。開始タグは、例えば、図５中の＜ｂｏｏｋ＞や図７中の＜ＴＡＢＬＥ＞などがあり、終了タグは、タグ名の前にスラッシュ「／」のある、例えば、図５中の＜／ｂｏｏｋ＞や図７中の＜／ＴＡＢＬＥ＞などがある。構成要素は階層構造をもつことができる。
【００４９】
「属性」とは構成要素に付帯した、名前と値の組みで、開始タグ内部に、「名前＝値」の形で記述される。例えば図６中の＜ｘｓｌ：ｔｅｍｐｌａｔｅ＞開始タグに含まれる「ｓｅｌｅｃｔ＝“ｂｏｏｋ”」などとがある。
【００５０】
ＸＭＬ文書では開始タグと終了タグの間になにも含まれない場合（属性はあってもよい）には、例えば、図５中の＜ｘｓｌ：ｖａｌｕｅ−ｏｆ／＞などのように、タグ名をスラッシュ「／」で終了させ、終了タグを省略する表記法が許されている。
【００５１】
なお、以上の表記法は、ＸＭＬの規格書で定められていることである。
【００５２】
ここでは、図９〜図１１に示したＤＯＭツリーにおいて、各ノードは、各ＤＯＭツリーの階層構造に従って、当該ノードのツリー構造上の位置情報で識別する。
【００５３】
例えば、図９に示したＸＭＬ文書のＤＯＭツリーにおいて、第４階層にあるノードＸ７の位置情報は「１−１−２−１」であり、これは、第１階層のノードＸ１から、当該ノードＸ７に至る各階層毎のノード位置（番号）をハイフン「−」で繋げて表したものである。
【００５４】
ノードＸ７の位置情報「１−１−２−１」は、第１階層の１番目のノード（＜ｂｏｏｋｌｉｓｔ＞）Ｘ１の、１番目の子ノード（＜ｂｏｏｋ＞）Ｘ２の、２番目の子ノード（＜ａｕｔｈｏｒ＞）Ｘ６の、１番目のテキストノード（「紫式部」）Ｘ７を指すことを意味する。
【００５５】
なお、ＤＯＭノードは、主記憶のメモリ空間上、ツリー構造としてデータが配置されている必要は無く、仮想的にツリー形式のデータとしてアクセスできればよい。
【００５６】
実際には、ＤＯＭノードは、計算機の主記憶上に格納され、この場合、主記憶のメモリ空間上のアドレスで各ＤＯＭノードを識別、参照することが可能である。
【００５７】
後述するように、データ入力部１から入力されたＸＭＬ文書のＤＯＭツリーは、図１のＸＭＬ文書記憶部１１に格納され、データ入力部１から入力されたＸＳＬＴ文書のＤＯＭツリーは、図１のＸＳＬＴ文書記憶部１２に格納される。従って、ＸＭＬ文書記憶部１１に格納されているＸＭＬ文書の各ＤＯＭノードは、ＸＭＬ文書記憶部１１に割り当てられたメモリ空間上のアドレスにて識別（特定）される。同様に、ＸＳＬＴ文書記憶部１２に格納されているＸＳＬＴ文書の各ＤＯＭノードは、ＸＳＬＴ文書記憶部１２に割り当てられたメモリ空間上のアドレスにて識別（特定）される。
【００５８】
また、同様にして、表示データ記憶部１５に格納される表示データとしての例えば、ＨＴＭＬ文書の各ＤＯＭノードも、表示データ記憶部１５に割り当てられたメモリ空間上のアドレスにて識別（特定）することができる。
【００５９】
次に、図１の制御部５について説明する。
【００６０】
制御部５は、ＸＭＬ文書記憶部１１、ＸＳＬＴ文書記憶部１２、ＸＳＬＴ変換処理部１３、対応関係記憶部１４、表示データ記憶部１５、表示データ操作部１６、表示データ操作ログ記憶部１７，表示ログ再適用部１８から構成されている。
【００６１】
以下、図３、図４に示すフローチャートを参照しながら、制御部５の構成とその動作について説明する。
【００６２】
ＸＭＬ文書記憶部１１は、データ入力部１から入力されたＸＭＬ文書を取得し、ＤＯＭツリーとして保持する（ステップＳ１、ステップＳ２）。例えば、図５に示したＸＭＬ文書は、図９に示したようなＤＯＭツリーとして保持される。ＸＭＬ文書記憶部１１に記憶されたＸＭＬ文書は、データ更新部２から、例えば、ノードの追加や削除、（ノードの削除、移動を連続して行う操作である）ノードの移動、ノードの属性値を変更したり、テキストデータを変更したりなどといった操作で更新され得る。
【００６３】
同様に、ＸＳＬＴ文書記憶部１２は、データ入力部１から入力されたＸＳＬＴ文書を取得し、ＤＯＭツリーとして保持する（ステップＳ１、ステップＳ２）。例えば、図６に示したＸＳＬＴ文書は、図１０に示したようなＤＯＭツリーとして保持される。ＸＭＬ文書と同様に、ＸＳＬＴ文書記憶部１２に記憶されたＸＳＬＴ文書は、データ更新部２から、例えば、ノードの追加や削除、（ノードの削除、移動を連続して行う操作である）ノードの移動、ノードの属性値を変更したり、テキストデータを変更したりなどといった操作で更新され得る。
【００６４】
図１２は、ＸＭＬ文書記憶部１１におけるＸＭＬ文書の記憶例を模式的に示したもので、ここでは、図５に示したＸＭＬ文書の記憶例を示している。
【００６５】
図１２に示したように、ＸＭＬ文書を構成する（ＤＯＭツリーの各ノードに対応する）各要素は、ＸＭＬ文書記憶部１１に割り当てられた記憶空間（例えばここではメモリ空間）内に格納される。各要素は、当該メモリ空間内に（例えば入力される）順番に格納されて、その格納領域のアドレスにより、各要素を識別することができる。なお、図１２では、説明の簡単のため、各ノードに付した符号をアドレスとして表している。
【００６６】
ＤＯＭツリーにおけるノードとノードを結ぶ矢印に対応する、要素と要素との間の関係付けは、ポインタにより表されている。図１２では、各要素の格納領域には、それぞれに対応するポインタ情報の格納領域が設けられており、ここには、当該要素に、当該要素に結びつけるべき（例えば、子要素としての）他の要素があるときには、その他の要素の格納されているメモリ空間上の領域のアドレスがポインタ情報として格納される。
【００６７】
例えば、図９に示したＤＯＭツリーにおいて、第１階層の要素Ｘ１（「ｂｏｏｋｌｉｓｔ」）には、２つの子要素（子ノード）Ｘ２、Ｘ３が存在するが、この場合、図１２に示したように、ＸＭＬ文書格納部１１では、要素「ｂｏｏｋｌｉｓｔ」の格納位置に対応するポインタ情報の格納領域には、ノードＸ２、Ｘ３の格納されている格納領域のアドレス「Ｘ２」、「Ｘ３」が格納されている。
【００６８】
図１３は、ＸＳＬＴ文書記憶部１２におけるＸＳＬＴ文書の記憶例を模式的に示したもので、ここでは、図６に示したＸＳＬＴ文書の記憶例を示している。
【００６９】
ＸＭＬ文書記憶部１１と同様に、図１３に示したように、ＸＳＬＴ文書を構成する（ＤＯＭツリーの各ノードに対応する）各要素は、ＸＳＬＴ文書記憶部１１に割り当てられたメモリ空間内に格納され、各要素は、当該メモリ空間内に（例えば入力される）順番に格納されて、その格納領域のアドレスにより、各要素を識別することができる。なお、図１３では、説明の簡単のため、各ノードに付した符号をアドレスとして表している。
【００７０】
ＤＯＭツリーにおけるノードとノードを結ぶ矢印に対応する、要素と要素との間の関係付けは、ポインタにより表されている。図１３では、各要素の格納領域には、それぞれに対応するポインタ情報の格納領域が設けられており、ここには、当該要素に、当該要素に結びつけるべき（例えば、子要素としての）他の要素があるときには、その他の要素の格納されているメモリ空間上の領域のアドレスがポインタ情報として格納される。
【００７１】
ＸＳＬＴ変換処理部１３は、ＸＭＬ文書記憶部１１に記憶されているＸＭＬ文書を、ＸＳＬＴ文書記憶部１２に記憶されているＸＳＬＴ文書に従って、別の構造化文書、例えばＨＴＭＬ文書に変換し、表示データ記憶部１５に格納する（ステップＳ３）。この変換処理の際には、処理対象のＸＭＬ文書とＸＳＬＴ文書とＨＴＭＬ文書について、互いに対応関係にあるノードの位置情報を、対応関係記憶データとして対応関係記憶部１４に格納する（ステップＳ４）。
【００７２】
例えば、図５に示したＸＭＬ文書（そのＤＯＭツリーについては図９参照）を図６に示したＸＳＬＴ文書（そのＤＯＭツリーについては図１０参照）を用いて変換した結果得られるＨＴＭＬ文書を図７に示す。図７に示したＨＴＭＬ文書のＤＯＭツリーを図１１に示す。
【００７３】
図１１に示したような文書構造の図７に示したＨＴＭＬ文書は、表示データ記憶部１５に、図１４に示したように記憶される。
【００７４】
図１４は、表示データ記憶部１５における図１１に示したような文書構造の図７に示したＨＴＭＬ文書の記憶例を模式的に示したものである。ＸＭＬ文書記憶部１１やＸＳＬＴ文書記憶部１２と同様に、図１４に示したように、ＨＴＭＬ文書を構成する（ＤＯＭツリーの各ノードに対応する）各要素は、表示データ記憶部１５に割り当てられたメモリ空間内に格納され、各要素は、当該メモリ空間内に（例えば入力される）順番に格納されて、その格納領域のアドレスにより、各要素を識別することができる。なお、図１４では、説明の簡単のため、各ノードに付した符号をアドレスとして表している。
【００７５】
ＤＯＭツリーにおけるノードとノードを結ぶ矢印に対応する、要素と要素との間の関係付けは、ポインタにより表されている。図１４では、各要素の格納領域には、それぞれに対応するポインタ情報の格納領域が設けられており、ここには、当該要素に、当該要素に結びつけるべき（例えば、子要素としての）他の要素があるときには、その他の要素の格納されているメモリ空間上の領域のアドレスがポインタ情報として格納される。
【００７６】
ＸＳＬＴ変換処理部１３は、表示データとしての構造化文書を出力するＸＳＬＴプロセッサ１３ａと、上記対応関係記憶データを出力する対応関係生成部１３ｂからなる。ＸＳＬＴプロセッサ１３ａの仕様は、例えば、ＸＳＬＴの規格書にしたがったものでもよい。対応関係生成部１３ｂは、ＸＳＬＴプロセッサ１３ａが表示データとしてのＨＴＭＬ文書のノードを出力するごとに、当該出力ノードの位置情報と、ＸＭＬ文書とＸＳＬＴ文書のノートの位置情報との対応関係を示した対応関係記憶データを出力して、対応関係記憶部１４に登録するものである。
【００７７】
このような対応関係生成部１３ｂの動作は、例えば、ＸＳＬＴプロセッサ１３ａでの処理プログラムのうち出力処理を行う部分に組み込まれていて、当該出力処理のプログラムを実行することにより実現可能である。また、ＸＳＬＴ文書に記載されている命令にしたがってＸＳＬＴプロセッサ１３ａと同等の処理を行い、出力命令のみを対応関係記憶データを出力するプログラムに置き換えたものでもよい。さらに、ＸＳＬＴ文書を別のＸＳＬＴ文書に変換して、ＸＳＬＴプロセッサ１３ａの出力する構造化文書（ＨＴＭＬ文書）の属性値として対応関係記憶データを出力する命令を追加し、ＸＳＬＴプロセッサ１３ａに元のＸＳＬＴ文書の代わりに渡し、ＨＴＭＬ文書の属性値として対応関係記憶部データを生成するようにしてもよい。
【００７８】
対応関係記憶部１４における対応関係記憶データの記憶例を図１５、図１６、図１７に示す。
【００７９】
対応関係記憶データは、ＸＳＬＴプロセッサ１３ａがＸＭＬ文書をＸＳＬＴ文書を用いて変換することにより生成されたＨＴＭＬ文書の各要素と、当該要素を生成する際に用いたＸＭＬ文書の要素とＸＳＬＴ文書の要素との対応関係を示したもので、例えば、互いに対応関係のあるＨＴＭＬ文書の要素の位置情報と、当該要素を生成する際に用いたＸＭＬ文書の要素の位置情報とＸＳＬＴ文書の要素の位置情報を１組としたデータである。
【００８０】
図１５は、ＸＭＬ文書（図９）とＸＳＬＴ文書（図１０）とＨＴＭＬ文書（図１１）について、互いに対応関係にあるノード（要素）の位置情報（図１５では、各ノードの位置情報をメモリ空間上のアドレスで示している）を、例えば、図１１に示したようなＨＴＭＬ文書中の各ノードの位置情報に対応させて、当該ノードと対応関係にあるＸＭＬ文書とＸＳＬＴ文書中のノードの位置情報（図１５では、各ノードの位置情報をメモリ空間上のアドレスで示している）を記憶する場合を示している。
【００８１】
図１６は、ＸＭＬ文書（図９）とＸＳＬＴ文書（図１０）とＨＴＭＬ文書（図１１）について、互いに対応関係にあるノード（要素）の位置情報（図１６では、各ノードの位置情報をツリー構造上の位置情報で示している）を、例えば、図１１に示したようなＨＴＭＬ文書中の各ノードに、当該ノードと対応関係にあるＸＭＬ文書とＸＳＬＴ文書中のノードの位置情報を埋め込む形式で記憶する場合を示している。
【００８２】
例えば、ＨＴＭＬ文書中のノードＺ６には、ＸＭＬ文書中のノードの位置情報「１」と、ＸＳＬＴ文書中のノードの位置情報「１−２−１−１−１−１」とが対応付けられている。
【００８３】
図１７は、ＸＭＬ文書（図９）とＸＳＬＴ文書（図１０）とＨＴＭＬ文書（図１１）について、互いに対応関係にあるノード（要素）の位置情報（図１７では、各ノードの位置情報をツリー構造上の位置情報で示している）を、例えば、テーブル形式で記憶する場合を示している。
【００８４】
表示データ記憶部１５は、表示部３上で表示する表示データを保持する。例えば、ＨＴＭＬ文書をＤＯＭツリーとして保持する。また、別の機能ブロック、例えば、表示データ操作部１６から例えばノードが変更された場合には自動的に表示部３に変更を渡すものである。
【００８５】
さて、図５に示したＸＭＬ文書を図６に示したＸＳＬＴ文書を用いて変換した結果得られた、図７に示したようなＨＴＭＬ文書は、表示データ記憶部１５に、図１４に示したように記憶されるとともに、図８に示すように、表示部３に表示される（図３のステップＳ５）。
【００８６】
表示部３に図８に示したようにＨＴＭＬ文書が表示されたとき、この表示画面上の表示データに対し、ユーザが入力部４から何らかの操作を行ったとする。
【００８７】
例えば、ユーザにより、ポインティングデバイスで図８に示したテーブル中のセル１０１に対応する位置がクリックされて、当該セル１０１を選択する操作指示がなされたとする（図３のステップＳ６）。すると、この指示を受けて、表示データ操作部１６は、当該クリックされたセル１０１（の位置）に対応するＨＴＭＬ文書中の要素、すなわちノードＺ１９（図１１参照）の位置情報を取得する。この取得は、例えば、画面の位置と、ＨＴＭＬ文書中の各要素（の位置情報）との対応関係を保持するなど、公知・公用技術を用いればよい。ここでは、表示データ操作部１６は、例えば、ノードＺ１９が格納されている表示データ記憶部１５のメモリ空間上のアドレス「Ｚ１９」を取得するものとする。
【００８８】
表示データ操作部１６は、対応関係記憶部１４を検索して、例えば、図１５に示した対応関係記憶データから、例えば上記例の場合、ノードＺ１９と対応関係にあるＸＭＬ文書中の要素とＸＳＬＴ文書中の要素の位置情報を求めて、それを操作履歴（操作ログ）として表示データ操作ログ記憶部１７に記録する（ステップＳ７）。その際、ノードＺ１９と対応関係にあるＸＭＬ文書中の要素とＸＳＬＴ文書中の要素の位置情報の他に、さらに、当該操作対象のノードＺ１９に対しなされた操作の内容（例えば、操作の種類など）や、日時あるいは相対時刻などを操作履歴として、表示データ操作ログ記憶部１７に記録するようにしてもよい。
【００８９】
操作ログとして記録される内容のうち、表示データであるＨＴＭＬ文書中の操作対象のノードと対応関係のある、ＸＭＬ文書中のノードの位置情報とＸＳＬＴ文書中のノードの位置情報とを１組としたデータをここでは、表示ノード指示データと呼ぶ。
【００９０】
例えば、上記のように、ＨＴＭＬ文書中のノードＺ１９が操作対象であるとき、当該ノードＺ１９と対応関係のある、ＸＭＬ文書中のノードの位置情報とＸＳＬＴ文書中のノードの位置情報は、図１６、図１７に示したような対応関係記憶データから、「１−２」、「１−１−１−３」と求めることができる。また、図１５に示した対応関係記憶データから、「Ｘ３」、「Ｙ９」と求めることができる。
【００９１】
前者の場合、表示データ指示データは、図１８（ａ）に示すように、ＸＭＬ文書中の位置情報「１−２」と、ＸＳＬＴ文書中の位置情報「１−１−１−３」からなり、後者の場合、図１８（ｂ）に示すように、ＸＭＬ文書中の位置情報「Ｘ３」と、ＸＳＬＴ文書中の位置情報「Ｙ９」からなる。
【００９２】
表示データ操作部１６は、図１８（ａ）あるいは（ｂ）に示したような表示データ指示データや、表示データ中の操作対象の要素に対する操作の種類などが操作ログとして、表示データ操作ログ記憶部１７に記憶するとともに、ＨＴＭＬ文書中の例えば、選択操作のなされたノードのスタイルを変更するなどして、当該選択された位置を表示部３を介して表示画面上に表示する（図３のステップＳ８）。選択位置の表示方法としては、例えば、ノードの背景色を変更する、ノードの外枠を描くなどの方法がある。図１９に表示画面の一例を示す。
【００９３】
なお、表示画面上での選択位置の表示は、上記のように、表示データ操作ログ記憶部１７が更新されたときと、後述する、対応関係記憶部１４が更新されたとき、すなわち、表示データが再変換されて、生成しなおされたときに行う。
【００９４】
ユーによる表示データに対する操作が終了するまで、ステップＳ６〜ステップＳ８を繰り返すようにしてもよい（ステップＳ９）。この場合、例えば、ユーザが表示データに対し１つ操作指示を行う度に（ステップＳ６）、当該操作の操作履歴（ログ）が表示データ操作ログ記憶部１７に格納され（ステップＳ７）、表示データ（すなわち、ＨＴＭＬ文書）上に、当該操作内容に対応する表示がなされる（ステップＳ８）。
【００９５】
ここで、ＸＳＬＴ文書のデータ構造と、ＸＳＬＴプロセッサの動作について説明する。なお、これらは、基本的には、ＸＳＬＴの規格書に従うものである。
【００９６】
図２０に、ＸＳＬＴ文書のデータ構造の構成例を示す。ＸＳＬＴ文書は、少なくとも１つのＸＳＬＴテンプレート２０１で構成され、ＸＳＬＴテンプレート２０１は、条件部２０２と実行部２０３で構成される。実行部２０３は、０個以上の命令で構成され、命令には、出力命令やテンプレート呼出命令（Ｘｓｌ：ａｐｐｌｙ−ｔｅｍｐｌａｔｅｓ）、繰り返し命令（Ｘｓｌ：ｆｏｒ−ｅａｃｈ）などの種類がある。
【００９７】
出力命令は、出力のＸＭＬ文書や、ＸＳＬＴ文書にノードを出力する命令で、決まった要素、テキスト、属性を出力する命令などがある他、与えられた評価式を評価した結果をテキストノードなどで出力する命令などがある。
【００９８】
テンプレート呼出命令は、ＸＰａｔｈと呼ばれる条件式に適合したノード集合の各ノードにテンプレートを適用して出力を得る命令である。
【００９９】
繰り返し命令には、ＸＰａｔｈによる条件式を属性として、少なくとも１回以上の繰り返す命令を子ノードとして与える。
【０１００】
ＸＳＬＴプロセッサの動作中には、カレントノードという、テンプレートの条件部２０２をチェックした際のノードを保持する。ＸＰａｔｈでは、カレントノードからの相対パスでノードを指定できる。
【０１０１】
ＸＳＬＴプロセッサは、入力されたＸＭＬ文書中のルートノードと呼ばれる最上階層のノードをまず、カレントノードに設定し、カレントノードが適合するＸＳＬＴテンプレートの条件部２０２を探す。適合したＸＳＬＴテンプレート２０１が見付かった場合には、実行部２０３の命令が順に実行される。
【０１０２】
命令が出力命令であれば、対応するＨＴＭＬ文書ノードやＸＭＬ文書ノードを出力する。また、命令がテンプレート呼出しであれば、引数で与えられたＸＰａｔｈで与えられた条件式に適合するノードの集合を探し、見付かったノードを順に、カレントノードに設定し、適合するＸＳＬＴテンプレートを探して適用する。以下同じ要領でテンプレートの適用が終るまで繰り返す。また、繰り返し命令は、ＸＰａｔｈで与えられた条件式に適合するノード集合を取り出し、見付かったノードを順に、カレントノードに設定し、子ノードの命令を実行していく。
【０１０３】
ここで、ＸＳＬＴ文書中の１つの命令が複数回繰り返される場合、繰り返し命令にしても、テンプレート呼出にしても、ある条件に適合したノード集合の個数だけ繰り返されることが特徴であり、ノード集合には、ＸＭＬ文書のノードが重複して含まれることはない。このため、出力されるＨＴＭＬ文書のノードを、ＸＳＬＴ文書の出力命令のノードと、そのときのＸＭＬ文書のカレントノードの組みで表すことができる。
【０１０４】
表示ノード指示データは、表示データであるＨＴＭＬ文書のノードを指し示すのに用いられ、ＸＭＬ文書中のノードの位置情報とＸＳＬＴ文書中のノードの位置情報で構成される。
【０１０５】
ＸＳＬＴプロセッサの処理の性質を用いて、表示データのノードを生成した際、（対応関係記憶部１４に対応関係記憶データとして記憶された）ＸＳＬＴ文書中の出力命令のノードの位置情報と、そのときのＸＭＬ文書中のカレントノードの位置情報とを、表示データ中の操作対象ノードを指し示す目的で用いるので、表示データ指示データと呼ぶ。
【０１０６】
ＸＭＬ文書記憶部１１，ＸＳＬＴ文書記憶部１２に記憶されているＸＭＬ文書やＸＳＬＴ文書に対し、例えばノードを追加する更新を行うと、当該追加されたノードは、メモリ空間上の新たな格納領域に格納されるとともに、ツリー構造上の追加位置に対応して、ポインタ情報は更新されるが、更新前の各ノードのメモリ空間上のアドレス（格納領域）には全く変更がない。また、同様に、ＸＭＬ文書記憶部１１，ＸＳＬＴ文書記憶部１２に記憶されているＸＭＬ文書やＸＳＬＴ文書に対し、例えばノードを削除する更新を行うと、当該削除されたノードは、メモリ空間上の格納領域から削除されるとともに、ツリー構造上の当該ノードの位置に対応して、ポインタ情報は更新されるが、更新前の各ノードのメモリ空間上のアドレス（格納領域）には全く変更がない。ノードを移動する更新の場合も上記同様にして、更新前の各ノードのメモリ空間上のアドレスには全く変更がない。すなわち、ＸＭＬ文書記憶部１１，ＸＳＬＴ文書記憶部１２に記憶されているＸＭＬ文書やＸＳＬＴ文書に対しノードの追加や削除、移動、テキストデータや属性の変更などといった更新がなされても、更新前の各記憶部１１，１２における元の文書中の各ノードのメモリ空間上の格納領域（アドレス）は変更することがない。
【０１０７】
このように、ＸＭＬ文書とＸＳＬＴ文書中のノードの位置情報で表された表示データ指示データにて指し示す表示データ（ＨＴＭＬ文書）中のノードは、たとえ、当該ＸＭＬ文書とＸＳＬＴ文書が更新されても、更新前と同じノードを指し示しているのである。
【０１０８】
この点に着目し、本実施形態明では、表示データ上での操作位置を、当該表示データを生成する際に用いられたＸＭＬ文書とＸＳＬＴ文書における、当該操作位置に対応するノードの位置情報（メモリ空間上のアドレス）で（表示データ指示データとして）記録するようにしている。
【０１０９】
次に、対応関係記憶データについて説明する。
【０１１０】
ここでは、ＸＭＬ文書中のノードと、ＸＳＬＴ文書中のノードと、ＨＴＭＬ文書中のノードとの対応関係を分かり易く表記した、図１６を参照して説明する。
【０１１１】
図１６は、ＨＴＭＬ文書中の各ノードに、当該ノードと対応関係のあるＸＭＬ文書中のノードと、ＸＳＬＴ文書中のノードのツリー構造上の位置情報を埋め込む形式で対応関係記憶データを表現している。
【０１１２】
図１６に示したＨＴＭＬ文書の画面表示例を示したものが図８である。図８に示すテーブルには、著者名の列が２つあり、例えば、「吉田　兼好」という同一のデータが２箇所に表示されている。テーブル中のセル１０２の「吉田　兼好」に対応するテキストノードＺ２０は、図９のＸＭＬ文書中のノードＸ３（ツリー構造上の位置情報で示すと「１−２」）がカレントノードのときに、図１０のＸＳＬＴ文書中の出力命令（ノードＹ６）（ツリー構造上の位置情報で示すと「１−１−１−１−１」）で出力されている。
【０１１３】
このため、図８のテーブル中のセル１０２に対応する図１６のＨＴＭＬ文書中のテキストノードＺ２０には、表示ノード指示データとして、「１−２，１−１−１−１−１」が対応付けられている。
【０１１４】
一方、図８のテーブル中のセル１０１の「吉田　兼好」に対応するＨＴＭＬ文書中のテキストノードＺ２２（図１６参照）は、同じＸＭＬ文書中のノードＸ３（ツリー構造上の位置情報で示すと「１−２」）がカレントノードの時に生成されているが、図１０のＸＳＬＴ文書中の出力命令（ノードＹ１０）（ツリー構造上の位置情報で示すと「１−１−１−３−１」）で生成されているため、図１６に示すように、当該ノードＺ２２には、表示ノード指示データとして、「１−２，１−１−１−３−１」が対応付けられている。上記の場合と区別ができる。
【０１１５】
これにより、図８のテーブル中のセル１０１とセル１０２を区別することができ、従って、セル１０１の「吉田　兼好」だけを選択することができる。
【０１１６】
ただし、実際にはテンプレート呼出が複数回同じノード集合で呼ばれる場合があるので、この表示ノード指示データは、ただひとつの表示データのノードを示すとはかぎらない。しかし、実用上はこのようにユニークでない場合には、用途に応じて、複数選択する、文書の先頭に近いだけを選択する、両方とも選択するなどすればよい。
【０１１７】
図３に示したフローチャートによれば、データ入力部１からＸＭＬ文書とＸＳＬＴ文書が読み込まれ、それぞれ、ＸＭＬ文書記憶部１１と、ＸＳＬＴ文書記憶部１２とに、ＤＯＭノードとして記憶される。
【０１１８】
次に、ＸＳＬＴ変換処理部１３のＸＳＬＴプロセッサ１３ａは、それぞれのＤＯＭノードを読み込み、ＸＳＬＴの規格書に定められた手順で、ＸＳＬＴ文書の命令に従って、ＸＭＬ文書を他の構造化文書である表示データ（例えば、ＨＴＭＬ文書）に変換する。これと同時に、ＸＳＬＴ変換処理部１３の対応関係生成部１３ｂは、例えばＸＳＬＴプロセッサと同様の手順だが、ノードを出力する際に、ＸＭＬ文書中のカレントノードと、その出力を行うＸＳＬＴの出力命令ノードとの位置情報を求め、さらに出力する表示データのノードの位置情報を求め、これらの位置情報を１組とした対応関係記憶データを対応関係記憶部１４に記録する。
【０１１９】
上記において、対応関係記憶部１４に記憶される対応関係記憶データは、例えば、図１５に示したように、ＨＴＭＬ文書中の各ノードの表示データ記憶部１５におけるメモリ空間上のアドレスと、当該ノートと対応関係のあるＸＭＬ文書中のノードのＸＭＬ文書記憶部１１におけるメモリ空間上のアドレスと、ＸＳＬＴ文書中のノードのＸＳＬＴ文書記憶部１２におけるメモリ空間上のアドレスである。
【０１２０】
図８に示したように、表示画面上に表示されたテーブル中のセル１０１を、ポインティングデバイスでクリックして、当該セル１０１を選択する操作を行うと、表示データ操作部１６は、当該セル１０１に対応するＨＴＭＬ文書上のノードＺ２２の位置情報、例えば、ここでは、当該ノードＺ２２が格納されている表示データ記憶部１５の格納領域のアドレス（メモリ空間上のアドレス「Ｚ２２」）を取得する。表示データ操作部１６は、対応関係記憶部１４に記憶されている対応関係記憶データから、メモリ空間上のアドレス「Ｚ２２」に対応する表示データ指示データ、すなわち、この場合、「Ｘ３、Ｙ９」を求め、少なくとも当該表示データ指示データを表示データ操作ログ記憶部１７に操作履歴として記録する。
【０１２１】
表示データ操作部１６は、表示データ操作ログ記憶部１７のデータが更新されたので、もし、このとき、以前に記憶された、選択などの操作がなされていたＨＴＭＬ文書中のノードについての操作履歴があれば、当該操作履歴を基に、当該ノードを選択されていない元の表示に戻す。そして、今回の操作履歴を読み込み、今回の操作履歴にある表示データ指示データ（例えば、「Ｘ３，Ｙ９」）に対応するＨＴＭＬ文書中のノードの位置情報を対応関係記憶データから読みとり（この場合、例えば、「Ｚ２２」）、当該位置情報のＨＴＭＬ文書中のノードのスタイルを変更するなどして、当該選択位置を表示画面上に表示する。例えば、図１９に示したように、ノードの外枠を描くなどの当該選択操作を反映した表示を行う。
【０１２２】
次に、この状態において、データ更新部２から、ＸＭＬ文書記憶部１１に記憶されているＸＭＬ文書を更新する場合について説明する。
【０１２３】
図４において、データ更新部２から、ＸＭＬ文書記憶部１１に記憶されているＸＭＬ文書が更新されたとする（図４のステップＳ１１）。
【０１２４】
更新操作としては、例えば、ノードの削除や追加、ノードの削除・追加を続けて行うことによりなるノードの移動、構成要素の値としてのテキストの変更や、構成要素の属性の変更などがある。
【０１２５】
ここでは、例えば、図２１に示したように、点線で囲まれたノードＸ１２〜Ｘ１６がノードＸ１の下位階層に追加されたとする。この場合、ＸＭＬ文書記憶部１１は、図２２に示したように更新される。図２２では、更新された部分を実線で囲み示している。すなわち、ＸＭＬ文書記憶部１１の空の記憶領域（アドレス「Ｘ１２」〜「Ｘ１６」）に新たに追加されたノード（要素）が例えば入力された順番に格納され、この追加したノードのツリー構造上の位置に対応して、ポインタ情報も更新されている。なお、更新前のＸＭＬ文書を示した図９と、更新後のＸＭＬ文書である図２２とから明らかように、更新前のＸＭＬ文書中の各ノードの格納領域（アドレス「Ｘ１」〜「Ｘ１１」）には全く変更はない。
【０１２６】
図２１、図２２に示したように、ＸＭＬ文書記憶部１１に格納されたＸＭＬ文書が更新された後、ＸＳＬＴ変換処理部１３において、ＸＳＬＴ文書記憶部１２に格納されているＸＳＬＴ文書を用いて、当該ＸＭＬ文書が、図３のステップＳ３と同様にして、再びＨＴＭＬ文書に変換される（再変換される）。その際、図３のステップＳ４と同様にして、対応関係記憶部１４には、ＸＭＬ文書とＸＳＬＴ文書とＨＴＭＬ文書の互いに対応関係のある要素について、それらが格納されている、ＸＭＬ文書記憶部１１，ＸＳＬＴ文書記憶部１２，表示データ記憶部１５のそれぞれに割り当てられたメモリ空間上のアドレスが、対応関係記憶データとして、対応関係記憶部１４に記憶される（ステップＳ１２〜ステップＳ１３）。
【０１２７】
図２１に示したように更新されたＸＭＬ文書を再変換することにより得られたＨＴＭＬ文書をブラウザ上で表示する（ステップＳ１４）。その表示例を図２３（ａ）に示す。図２３（ａ）に示すテーブル中には、セル１１１〜１１３を含む行が追加されている。この時点では、まだ、操作履歴は適用されていない。
【０１２８】
次に、表示ログ再適用部１８は、対応関係記憶部１４が更新されたのを受け、再変換が行われたと判断し、以下に示すように、操作履歴に基づく操作の再現のための処理動作を開始する。まず、表示データ操作ログ記憶部１７から操作履歴を読み出す（ステップＳ１５）。そして、当該操作履歴にある表示データ指示データ中のＸＭＬ文書中の要素とＸＳＬＴ文書中の要素の位置情報（メモリ空間上のアドレス）に対応するＨＴＭＬ文書中の要素の位置情報（メモリ空間上のアドレス）を対応関係記憶部１４に記憶されている対応関係記憶データを検索することにより求める（ステップＳ１６）。例えば、この場合、操作履歴の表示データ指示データは、「Ｘ３、Ｙ９」であるので、図１５に示したような内容の対応関係記憶部１４から、ＸＭＬ文書の要素のアドレスとＸＳＬＴ文書の要素のアドレスがそれぞれ「Ｘ３」、「Ｙ９」であるＨＴＭＬ文書の要素のアドレス、すなわち、「Ｚ２２」を求めることができる。
【０１２９】
表示ログ再適用部１８は、表示データ記憶部１５のメモリ空間上のアドレス「Ｚ２２」に格納されている要素、すなわち図２３（ａ）に示したテーブル中のセル１０１を、選択状態の表示にすべく、図２３（ｂ）に示すように、例えば、枠線を太くしたり、背景色を変更したりする（ステップＳ１７）。このとき、操作履歴として操作の種類が記録されているときには、当該操作の内容を当該要素に再現して表示する（ステップＳ１７）。
【０１３０】
以上の手順の結果、図２３（ｂ）に示すように、ＸＭＬ文書を更新する前に選択したセル１０１が、ＸＭＬ文書更新後にも再び選択状態の表示になる。
【０１３１】
このとき、表示ノード指示データの指し示す表示データ中の要素が無効である場合、すなわち、対応関係記憶部１４に当該表示データ指示データに対応する表示データ中の要素のアドレスが存在しないなどの場合には、その操作履歴（ログ）は適用せずに、表示データ操作ログ記憶部１７からも削除する。
【０１３２】
なお、上記ステップＳ１７において、更新されたＸＭＬ文書が、例えば図２３（ｂ）に示すように表示された後、この状態から再び、図３のステップＳ６へ進み、前述同様にして、表示データに対する操作を行うこともできる。そして、図３のステップＳ６〜ステップＳ９の表示データへの操作から、図４のステップＳ１１〜ステップＳ１７の操作内容の再現に至る処理は、何度でも繰り返し行うことができる。
【０１３３】
上記例では、表示データ中のノードに対する操作は、選択操作のように、ユーザにより選択された位置を表示するものであるから、表示データ操作ログ記憶部１７に記憶される操作履歴（操作ログあるいはログ）は、１つのみであった。
【０１３４】
表示データ中のノードに対する操作は、このような選択操作のみに限らないし、表示データ中の複数のノードに対し、異なる複数の操作がなされる場合もある。そこで、このような場合には、表示データ操作ログ記憶部１７に操作履歴として、表示データ指示データの他に、さらに、当該表示データ指示データにより特定される表示データ中のノードに対してなされた操作内容（操作の種類）、操作の順序が明らかになるような情報として、例えば、操作日時や相対時刻、単純に操作の順序を表す番号などが含まれていることが望ましい。
【０１３５】
このような操作履歴を用いることにより、図４に示したフローチャートに従って、ＸＭＬ文書記憶部１１に記憶されたＸＭＬ文書の更新後においても、更新前に表示データ中の複数のノードになされた複数の操作、あるいは表示データ中のある１つのノードになされた複数の操作を、当該表示データ中のノードに対し再現することができる。
【０１３６】
図２４は、上記のような操作履歴の一例を示したもので、各操作履歴データは、「操作順序」と「表示データ指示データ」と「操作内容」から構成されている。
【０１３７】
操作内容は、スクリプト言語で保持しても良いし、ＤＯＭ操作を表すデータ、例えば、メソッドとその引数などで表しておいてもよい。図２４では、説明の簡単のため、自然言語で操作内容を記述したが、例えば、「表示データのＳｔｙｌｅ属性のｂａｃｋｇｒｏｕｎｄ−ｃｏｌｏｒに‘ｒｅｄ’を代入」は、例えばスクリプト言語で「ｔｈｉｓ．ｓｔｙｌｅ．ｂａｃｋｇｒｏｕｎｄＣｏｌｏｒ　＝‘ｒｅｄ’」と表しても良いし、「Ｓｅｔ，　＠ｓｔｙｌｅ／ｂａｃｋｇｒｏｕｎｄＣｏｌｏｒ，　‘ｒｅｄ’」と、メソッドとその引数というデータで表してもよい。
【０１３８】
例えば、図３のステップＳ５で表示された図８に示した表示データ（そのツリー構造は図１１参照）に対し、図２４に示した操作履歴中の操作がなされると、ステップＳ８では、図２５に示したように表示される。
【０１３９】
すなわち、表示データ操作部１６は、入力部４から伝えられるユーザの指示に基づいて、表示データに対するＤＯＭ操作を行い、そのログを表示データ操作ログ記憶部１７に記録する。例えば、ユーザがポインティングデバイスで表示装置の画面上に表示されているＨＴＭＬ文書のノードをダブルクリックすると、ＨＴＭＬ文書のノードの位置情報を求め、そのノードのｓｔｙｌｅ属性のｖｉｓｉｂｌｉｔｙ値を「‘ｆａｌｓｅ’」に設定する。そして、対応関係記憶部１４の対応関係記憶データから、当該ＨＴＭＬ文書中のノードの位置情報に対応する表示ノード指示データを求め、これと、操作内容（操作の種類）を操作履歴（ログ）として追加記録する。操作内容としては、例えば、「ｔｈｉｓ．ｓｔｙｌｅ．ｖｉｓｉｂｌｉｔｙ＝‘ｆａｌｓｅ’」というスクリプトで表す。
【０１４０】
なお、図２４に示した表示データ指示データ中のノードの位置情報は、説明上分かり易いように、メモリ空間上のアドレスとともに、その横の括弧内にツリー構造上の位置情報を示している。
【０１４１】
図２４に示した操作履歴によれば、操作順序１の操作履歴に対応する操作として、まず、図１１に示した表示データ中のノードＺ２２（表示データ指示データ「Ｘ３、Ｙ９」（ツリー構造上の位置情報で示すと「１−２、１−１−１−３」）で示される＜ＴＤ＞ノード）で表されるテーブル中のセル１０１の背景を赤に設定する（なお、図２５では網掛けで背景色の「赤」を示している）。次に、操作順序２の操作履歴に対応する操作として、図１１に示した表示データ中のノードＺ１（表示データ指示データ「Ｘ１、Ｙ１１」（ツリー構造上の位置情報で示すと「１、１−２−１」）で示される＜ＴＡＢＬＥ＞ノード）で表されるテーブル自体を１００ポイント下に下げる。そして、操作順序３の操作履歴に対応する操作として、図１１に示した表示データ中のノードＺ９（表示データ指示データ「Ｘ１、Ｙ１３」（ツリー構造上の位置情報で示すと「１−１、１−１−１」）で示される＜ＴＲ＞ノード）で表されるテーブル中の行（図８の行１２１）を非表示にする。
【０１４２】
以上の操作を図８に示した表示データ（そのツリー構造は図１１参照）に対し、行った結果が図２５に示した表示例である。
【０１４３】
表示ログ再適用部１８は、対応関係記憶部１４のデータが更新されたとき、すなわち、ＸＭＬ文書記憶部１１に記憶されているＸＭＬ文書が更新された後再変換により表示データが生成しなおされたとき、表示データ操作ログ記憶部１７のログを古い順に表示データに対して適用していく。
【０１４４】
このとき、表示データ指示データの指し示すＨＴＭＬ文書中のノードが無効である場合、すなわち、対応関係記憶部１４に当該ノードが格納されていない、含まれていない場合には、そのログは適用せずに、表示データ操作ログ記憶部１７からも削除する。
【０１４５】
図９に示したＸＭＬ文書から生成されたＨＴＭＬ文書（図８に示したように表示されたＨＴＭＬ文書）に対し、図２４に示したような操作がなされて、図２５に示したように表示された後、図９に示したＸＭＬ文書が図２１に示すように更新されたとする。
【０１４６】
この更新後のＸＭＬ文書に対し、図２４に示した操作履歴を適用する手順を図４を参照して説明する。
【０１４７】
すなわち、当該更新後のＸＭＬ文書は、ＸＳＬＴ変換処理部１３でＨＴＭＬ文書に変換して、表示データ記憶部１５に格納するとともに、その際、ＸＳＬＴ変換処理部１３から出力される対応関係記憶データが対応関係記憶部１４に記憶される（ステップＳ１１〜ステップＳ１３）。
【０１４８】
ステップＳ３で得られたＨＴＭＬ文書をブラウザ上で表示すると、図２３（ａ）に示したように、図８に示したテーブル中に、セル１１１〜１１３が追加されたものが表示される（ステップＳ１４）。
【０１４９】
次に、表示ログ再適用部１８は、対応関係記憶部１４が更新されたのを受けて、表示データ操作ログ記憶部１７に記憶された図２４に示したような操作ログを古い順に、表示データ記憶部１５に記憶されている表示データに対し適用していく（ステップＳ１５〜ステップＳ１７）。
【０１５０】
前述したように、ＸＭＬ文書記憶部１１，ＸＳＬＴ文書記憶部１２に記憶されているＸＭＬ文書やＸＳＬＴ文書に対しノードの追加や削除、移動、テキストデータや属性の変更などといった更新がなされても、更新前の各記憶部１１，１２における元の文書中の各ノードのメモリ空間上の格納位置（アドレス）は変更することはない。従って、ＸＭＬ文書とＸＳＬＴ文書中のノードの位置情報で表された表示データ指示データにて指し示す表示データ（ＨＴＭＬ文書）中のノードは、たとえ、当該ＸＭＬ文書とＸＳＬＴ文書が更新されても、更新前と同じノードを指し示している。
【０１５１】
すなわち、表示データ記憶部１５に記憶されている表示データ（ＨＴＭＬ文書）に対し、図２４に示した操作ログを適用すると、操作順序１の操作履歴に対応する操作は、当該ＨＴＭＬ文書中のノードＺ２２であり、操作順序１の操作履歴に対応する操作は、当該ＨＴＭＬ文書中のノードＺ５１であり、操作順序１の操作履歴に対応する操作は、当該ＨＴＭＬ文書中のノードＺ９である。当該操作ログが適用される（ＸＭＬ文書更新後の再変換された）ＨＴＭＬ文書中のノードは、やはり、ＸＭＬ文書を更新する前のＨＴＭＬ文書中のノードＺ２２、Ｚ１、Ｚ９と同じである。すなわち、ＸＭＬ文書更新後の再変換されたＨＴＭＬ文書中において、各操作ログ中の表示データ指示データにより特定されるＨＴＭＬ文書中のノードは、ノードＺ２２、Ｚ１、Ｚ９である。
【０１５２】
従って、操作ログ適用前に表示された、図２３（ａ）に示したようなテーブルは、図２４に示した操作ログが適用されて、図２６に示したように表示される。すなわち、図２６において、テーブル中のセル１０１の背景は赤に設定され、テーブル自体は１００ポイント下に下がり、テーブル中の行（図２３（ａ）の行１２１）が非表示になっている。なお、ＸＭＬ文書を更新することにより追加されたテーブル中のセル１１１〜１１３は表示されている。
【０１５３】
上記説明では、表示データに対する操作を行った後に、ＸＭＬ文書記憶部１１に記憶されたＸＭＬ文書を更新する場合について説明したが、ＸＳＬＴ文書記憶部１２に記憶されたＸＳＬＴ文書を更新した場合も上記同様である。すなわち、ＸＳＬＴ文書が更新されたときは、当該更新されたＸＳＬＴ文書を用いてＸＭＬ文書を変換することにより生成されたＨＴＭＬ文書の各要素と、当該要素を生成する際に用いられたＸＭＬ文書の要素と更新されたＸＳＬＴ文書の要素との対応関係記憶データを対応関係記憶部１４に格納する。そして、当該ＨＴＭＬ文書の要素の中から、操作履歴として記憶された表示データ指示データに対応する操作対象の要素を求めて、当該ＨＴＭＬ文書を表示する際には、当該ＨＴＭＬ文書中の当該操作対象の要素に対し、ユーザによる操作の内容を再現する。
【０１５４】
また、上記説明では、対応関係記憶部１４に記憶される対応関係記憶データは、図１５に示したように、ＨＴＭＬ文書中の各ノードの表示データ記憶部１５におけるメモリ空間上のアドレスと、当該ノートと対応関係のあるＸＭＬ文書中のノードのＸＭＬ文書記憶部１１におけるメモリ空間上のアドレスと、ＸＳＬＴ文書中のノードのＸＳＬＴ文書記憶部１２におけるメモリ空間上のアドレスであった。従って、表示データ指示データも、ＸＭＬ文書中のノードのＸＭＬ文書記憶部１１におけるメモリ空間上のアドレスと、ＸＳＬＴ文書中のノードのＸＳＬＴ文書記憶部１２におけるメモリ空間上のアドレスにて表されていた。しかし、この場合に限らず、前述したように、ＸＭＬ文書、ＸＳＬＴ文書、ＨＴＭＬ文書中の各ノードは、それぞれの文書のツリー構造上の位置情報にて識別（特定）するようにしてもよい。
【０１５５】
すなわち、対応関係記憶部１４に記憶される対応関係記憶データは、図１６や図１７に示すように、ＸＭＬ文書とＸＳＬＴ文書とＨＴＭＬ文書の互いに対応関係にあるノード（要素）を、これら文書のツリー構造上の位置情報で表すようになっていてもよい。また、表示データ操作ログ記憶部１７に操作履歴として記憶される表示データ指示データは、ＸＭＬ文書とＸＳＬＴ文書のノードを、図１８（ａ）に示したように、これら文書のツリー構造上の位置情報で表すようになっていてもよい。
【０１５６】
ＸＭＬ文書記憶部１１に記憶されているＸＭＬ文書に対し、ノードの追加、削除、移動などの更新を行った場合、当該ＸＭＬ文書の文書構造、すなわち、ツリー構造（ＤＯＭツリー）も変更することとなるので、ＸＭＬ文書が更新されると、それに伴い、表示データ指示データも更新あるいは調節する必要がある。さらに、ＸＭＬ文書のツリー構造がどのように変更されたかを認識する必要がある。そこで、この場合、ＸＭＬ文書表示装置は、例えば、図２に示すような構成であることが望ましい。なお、図２において、図１と同一部分には同一符号を付し、異なる部分についてのみ説明する。すなわち、図２では、ノード位置更新部１９が新たに追加されている。
【０１５７】
また、データ更新部２は、ＸＭＬ文書記憶部１１に記憶されているＸＭＬ文書かＸＳＬＴ文書記憶部１２に記憶されているＸＳＬＴ文書に対し、ノードを挿入（追加）したり、他のノードを削除したり、あるいは、テキストノードの値を変更するなどのＤＯＭ操作が行われることにより、新たなノードが挿入（追加）された場合には、挿入（追加）されたノードがどれであり、また、どの位置に挿入（追加）されたのかなどを表した情報、既存のノードが削除された場合に、どの位置にあるノードが削除されたのかなどを表した情報、テキストノードの値が変更された場合には、そのノードはどれであり、どのような値に変更されたかなどを表した情報などを、ノード位置更新情報として、ノード位置更新部１９に出力するようになっている。また、ノードの移動の場合には、上記ノードの削除と挿入（追加）を連続して行う場合であるので、この場合に出力されるノード位置更新情報は、ノードの削除時とノードの挿入時に出力されるノード位置更新情報の内容と同様である。
【０１５８】
ノード位置更新部１９は、データ更新部２から出力された、上記ノード位置更新情報を基に、表示ノード指示データに含まれる、ＸＭＬ文書中のノードの位置情報とＸＳＬＴ文書中のノードの位置情報を更新する。すなわち、ここでのノードの位置情報は、ツリー構造上の位置情報であるので、階層を表す番号や、各階層におけるノード位置を表す番号を増減することで、ＸＭＬ文書やＸＳＬＴ文書を更新することにより生じるずれを調節するのである。
【０１５９】
次に、図２４に示した操作履歴を例にとり、ノード位置更新部１９が表示データ指示データに含まれるノードの位置情報を更新して、再変換されたＨＴＭＬ文書に当該操作ログを適用する場合について説明する。
【０１６０】
すなわち、図８に示した表示画面上のテーブルに対し、図２４に示したような操作が行われた後、ＸＭＬ文書記憶部１１に記憶されている図９に示したＸＭＬ文書が、図２１に示したように更新されたとする。すなわち、ノードＸ１２〜Ｘ１６がノードＸ１以下に、追加されたとする。
【０１６１】
図２４に示したように、ＸＭＬ文書を更新する前は、ノードＸ３の位置情報は、「１−２」であったが、ＸＭＬ文書を更新することにより、第２階層の位置が１つずれて（インクリメントされて）「１−３」となる。
【０１６２】
すなわち、ノード位置更新部１９は、図２７に示すように表示データ指示データの、ノードＸ３の位置情報を「１−２」から「１−３」へと更新する。
【０１６３】
このように、上記例の場合、ノード位置更新部１９は、表示データ指示データのＸＭＬ文書中のノードの位置情報において、第２階層の番号が「２」以上である場合には、当該第２階層の番号を１つインクリメントする。それ以外の場合は、そのままの値とする。すなわち、位置情報が「１−１−２」であるならば、そのままの値であるが、「１−２−２」であるならば、第２階層の番号を１つインクリメントして「１−３−２」とする。
【０１６４】
従って、図２４に示した、ノードＸ２の位置情報は「１−１」であるので、この位置情報は、図２７に示すように更新されない。
【０１６５】
なお、この例ではＸＭＬ文書の第２階層に２番目にノードを追加する場合を示したが、第２階層の２番目のノードを削除する場合にも、同様にして、第２階層の番号が「２」より大きければ、その値を１つデクリメントし、第２階層の番号「２」と等しい場合には、当該表示データ指示データを含む操作履歴を削除する。
【０１６６】
また、上記例では、ＸＬＭ文書を更新する場合を示したが、ＸＳＬＴ文書にノードを追加／削除した場合には、表示データ指示データにあるＸＳＬＴ文書中のノードの位置情報を上記同様にして更新すればよい。
【０１６７】
さて、図４に示したフローチャートに従えば、図２１に示したＸＭＬ文書はＨＴＭＬ文書に変換され、新たな対応関係記憶データが生成されて、対応関係記憶部１４に格納される（ステップＳ１２〜ステップＳ１３）。このＨＴＭＬ文書をブラウザ上で表示すると、図２３（ａ）のように１行追加されたテーブルとして表示される（ステップＳ１４）。この時点では、表示データに行ったＤＯＭ操作は失われている。また、対応関係記憶データは新たに生成しなおされる。
【０１６８】
つぎに、表示ログ再適用部１８は、対応関係記憶部１４のデータが更新されたので、表示データ操作ログ記憶部１７に記憶された操作ログを古い順に、表示データに対して順に適用していく（ステップＳ１５〜ステップＳ１７）。
【０１６９】
このとき、図２７に示したように、操作順序１の操作である表示データ指示データにおいて、ＸＭＬ文書中のノードの位置情報が「１−２」だったのが「１−３」に直されているので、ＸＭＬ文書更新前のときと同様に、図２６に示したように、テーブル中のセル１０１に対して、正しく、セルの背景を赤く設定することができる。
【０１７０】
なお、上記説明における各機能や各処理は、所定のソフトウエアがコンピュータおよび周辺機器を制御することで実現されるものとして、各機能や各処理に対応する仮想的回路ブロックを想定して説明しており、各ブロックに対して、各ハードウエア要素やソフトウエア要素が必ずしも１対１に対応しなくても構わない。また、上記説明における各機能や各処理の全部または一部を（あるいは以下で説明する各機能や各処理を搭載したＷｅｂブラウザ自体を）半導体チップなどのハードウェアで構成することも可能である。
【０１７１】
以上説明したように、上記実施形態によれば、ＸＭＬ文書を所望の表示スタイルで表示するために、当該ＸＭＬ文書をＸＳＬＴ文書（スタイルシート）を用いて変換することにより生成されたＨＴＭＬ文書に基づき表示する表示装置において、当該表示されたＨＴＭＬ文書中の要素のうち、ユーザにより操作された操作対象の要素の位置を、当該操作対象の要素を生成する際に用いられたＸＭＬ文書の要素とＸＳＬＴ文書の要素の位置情報（好ましくは、上記各要素が格納されている記憶空間（例えばメモリ空間）上のアドレス）である表示データ指示データで記憶しておく。ＸＭＬ文書やＸＳＬＹ文書を更新した後に、再び変換を行っても、再変換後のＨＴＭＬ文書中の当該表示データ指示データにより特定される要素は、再変換前のＨＴＭＬ文書中の操作対象の要素と一致するため、再変換前のＨＴＭＬ文書中の要素（操作対象の要素）に対しなされた操作内容が、再変換後のＨＴＭＬ文書中の同じ操作対象の要素に対し再現することができる。
【０１７２】
本発明の実施の形態に記載した本発明の手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フロッピーディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、半導体メモリなどの記録媒体に格納して頒布することもできる。
【０１７３】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、上記実施形態には種々の段階の発明は含まれており、開示される複数の構成用件における適宜な組み合わせにより、種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題（の少なくとも１つ）が解決でき、発明の効果の欄で述べられている効果（のなくとも１つ）が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【０１７４】
【本発明の効果】
以上のように本発明によれば、ＸＭＬ文書などの構造化文書を、スタイルシートを用いてＨＴＭＬ文書などの他の構造化文書に変換して表示する場合、表示された要素に対しなされた操作内容が、ＸＭＬ文書やスタイルシートを更新した後であっても、再び変換を行って表示する際には、同じ要素に対し再現することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る構造化文書表示装置の構成例を示した図。
【図２】構造化文書表示装置の他の構成例を示した図。
【図３】構造化文書表示装置の処理動作を説明するためのフローチャート。
【図４】構造化文書表示装置の処理動作を説明するためのフローチャート。
【図５】ＸＭＬ文書の一具体例を示した図。
【図６】ＸＳＬＴ文書の一具体例を示した図。
【図７】ＨＴＭＬ文書の一具体例を示した図で、図５のＸＭＬ文書を図６のＸＳＬＴ文書を用いて変換した結果生成されたＨＴＭＬ文書を示している。
【図８】図７のＨＴＭＬ文書の表示例を示した図。
【図９】図５のＸＭＬ文書のツリー構造を示した図。
【図１０】図６のＸＳＬＴ文書のツリー構造を示した図。
【図１１】図７のＨＴＭＬ文書のツリー構造を示した図。
【図１２】ＸＭＬ文書記憶部における図５のＸＭＬ文書の記憶例を示した図。
【図１３】ＸＳＬＴ文書記憶部における図６のＸＳＬＴ文書の記憶例を示した図。
【図１４】表示データ記憶部における図７のＨＴＭＬ文書の記憶例を示した図。
【図１５】対応関係記憶部における対応関係記憶データの記憶例を示した図。
【図１６】対応関係記憶部における対応関係記憶データの他の記憶例を示した図。
【図１７】対応関係記憶部における対応関係記憶データのさらに他の記憶例を示した図。
【図１８】表示データ指示データの具体例を示した図。
【図１９】ＨＴＭＬ文書の表示例を示した図。
【図２０】ＸＳＬＴ文書のデータ構造を説明するための図。
【図２１】更新されたＸＭＬ文書のツリー構造を示した図。
【図２２】ＸＭＬ文書記憶部における図２１のＸＭＬ文書の記憶例を示した図。
【図２３】（ａ）図は、図２１のＸＭＬ文書を図６に示したＸＳＬＴ文書を用いて変換した結果得られたＨＴＭＬ文書の表示例を示した図で、（ｂ）図は、（ａ）図のＨＴＭＬ文書に操作履歴を適用した場合の表示例を示した図。
【図２４】表示データ操作ログ記憶部に記憶された操作履歴（操作ログあるいはログ）の一例を示した図。
【図２５】図８に示したＨＴＭＬ文書に対し、図２４に示した操作ログを適用した場合の表示例を示した図。
【図２６】図２３（ａ）に示したＨＴＭＬ文書に対し、図２４に示した操作ログを適用した場合の表示例を示した図。
【図２７】図２に示した構造化文書表示装置において、ＸＭＬ文書の更新内容に伴い、ノード位置更新部１９が表示データ指示データの位置情報を更新した結果を示した図。
【符号の説明】
１…データ入力部
２…データ更新部
３…表示部
４…入力部
５…制御部
１１…ＸＭＬ文書記憶部
１２…ＸＳＬＴ文書記憶部
１３…ＸＳＬＴ変換処理部
１３ａ…ＸＳＬＴプロセッサ
１３ｂ…対応関係生成部
１４…対応関係記憶部
１５…表示データ記憶部
１６…表示データ操作部
１７…表示データ操作ログ記憶部
１８…表示ログ再適用部
１９…ノード位置更新部
Ｘ１〜Ｘ１１、Ｙ１〜Ｙ１９、Ｚ１〜Ｚ２２…ノード（要素）
【図１】
2004038334.tif 000003
【図２】
2004038334.tif 000004
【図３】
2004038334.tif 000005
【図４】
2004038334.tif 000006
【図５】
2004038334.tif 000007
【図６】
2004038334.tif 000008
【図７】
2004038334.tif 000009
【図８】
2004038334.tif 000010
【図９】
2004038334.tif 000011
【図１０】
2004038334.tif 000012
【図１１】
2004038334.tif 000013
【図１２】
2004038334.tif 000014
【図１３】
2004038334.tif 000015
【図１４】
2004038334.tif 000016
【図１５】
2004038334.tif 000017
【図１６】
2004038334.tif 000018
【図１７】
2004038334.tif 000019
【図１８】
2004038334.tif 000020
【図１９】
2004038334.tif 000021
【図２０】
2004038334.tif 000022
【図２１】
2004038334.tif 000023
【図２２】
2004038334.tif 000024
【図２３】
2004038334.tif 000025
【図２４】
2004038334.tif 000026
【図２５】
2004038334.tif 000027
【図２６】
2004038334.tif 000028
【図２７】
2004038334.tif 000029