(57)【特許請求の範囲】
【請求項１】
複数の要素で構成された文書構造をもつ第１の構造化文書を第１の記憶手段に記憶する第１のステップと、
前記第１の構造化文書を、当該第１の構造化文書を利用する種別の異なる複数の端末のうちの１つである第１の端末での利用形態に対応する文書構造に変換するための変換規則の集合であって、当該第１の構造化文書中の前記複数の要素のうちの少なくとも１つの要素からなる第１の部分文書をそれとは文書構造が異なる第２の部分文書に変換する第１の変換規則と、当該複数の要素のうちの第１の要素を削除する第２の変換規則とを含む前記変換規則の集合を第２の記憶手段に記憶する第２のステップと、
前記第１の構造化文書を前記変換規則の集合に従って第２の構造化文書に変換する第３のステップと、
前記第１の端末で、前記第２の構造化文書を更新する第４のステップと、
前記第１の端末で更新された前記第２の構造化文書中の前記第２の部分文書を前記第１の部分文書に変換するとともに、当該第２の構造化文書中に追加された新たな前記第２の部分文書を前記第１の部分文書に変換し、当該第２の構造化文書に前記第１の要素を挿入して、当該更新された第２の構造化文書を第３の構造化文書に変換する第５のステップと、
前記第１の記憶手段に記憶された前記第１の構造化文書を当該第１の構造化文書と前記第３の構造化文書との間の差分で更新する第６のステップと、
を有することを特徴とする文書構造変換方法。
【請求項２】
前記変換規則の集合は、前記構造化文書中の前記複数の要素のうちの少なくとも１つの要素からなる第３の部分文書の当該構造化文書中の位置を移動する第３の変換規則をさらに含み、
前記第５のステップは、前記更新された前記第２の構造化文書中の前記第３の部分文書の位置を元の位置に戻して、前記更新された第２の構造化文書を前記第３の構造化文書に変換することを特徴とする請求項１記載の文書構造変換方法。
【請求項３】
前記第３のステップで前記第１の構造化文書を前記第２の構造化文書に変換する際には、前記第１の変換規則を適用した前記第１の構造化文書中の前記第１の部分文書の位置と、前記第２の変換規則を適用した前記第１の構造化文書中の前記第１の要素の位置を変換記録として第３の記憶手段に記憶する第７のステップをさらに有し、
前記第５のステップは前記変換記録を基に、前記更新された第２の構造化文書を前記第３の構造化文書に変換することを特徴とする請求項１記載の文書構造変換方法。
【請求項４】
前記第１の構造化文書中の前記第１の部分文書と前記第１の要素の位置は、当該第１の部分文書中のいずれか１つの要素の識別子と当該第１の要素の識別子をそれぞれ用いて表されていることを特徴とする請求項３記載の文書構造変換方法。
【請求項５】
前記第１の部分文書中のいずれか１つの要素の識別子を前記第２の部分文書中のいずれか１つの要素の識別子として用いることを特徴とする請求項４記載の文書構造変換方法。
【請求項６】
前記第４のステップでは、前記利用形態に対応する文書構造に適合する範囲内で前記第２の構造化文書が前記第１の端末で更新されることを特徴とする請求項１記載の文書構造変換方法。
【請求項７】
前記第１の要素に前記第２の変換規則により削除するか否かを予め設定し、この設定に基づき前記第３のステップで前記第１の要素が削除され、かつ、前記第４のステップで前記第２の構造化文書中の第３の要素が前記第１の要素に書き換えられたとき、次回から前記第１の要素が前記第３のステップで削除されないように設定し直すことを特徴とする請求項１記載の文書構造変換方法。
【請求項８】
前記変換規則の集合には、前記第１の構造化文書中の前記複数の要素のうちの少なくとも１つの要素からなる第４の部分文書を前記第２の部分文書に変換する第４の変換規則をさらに含み、
前記第５のステップでは、前記更新された第２の構造化文書中の前記第２の部分文書の前記第１の部分文書への変換と前記第２の部分文書の前記第４の部分文書への変換のうち、予め設定された優先度の高い変換から先に行うことを特徴とする請求項１記載の文書構造変換方法。
【請求項９】
複数の要素で構成された文書構造をもつ第１の構造化文書を記憶する第１の記憶手段と、
前記第１の構造化文書を、当該第１の構造化文書を利用する種別の異なる複数の端末のうちの１つである第１の端末での利用形態に対応する文書構造に変換するための変換規則の集合であって、当該第１の構造化文書中の前記複数の要素のうちの少なくとも１つの要素からなる第１の部分文書をそれとは文書構造が異なる第２の部分文書に変換する第１の変換規則と、当該複数の要素のうちの第１の要素を削除する第２の変換規則とを含む前記変換規則の集合を記憶する第２の記憶手段と、
前記第１の構造化文書を前記変換規則の集合に従って第２の構造化文書に変換する第１の変換手段と、
前記第１の端末で更新された前記第２の構造化文書中の前記第２の部分文書を前記第１の部分文書に変換し、当該第２の構造化文書中に追加された新たな前記第２の部分文書を前記第１の部分文書に変換し、当該第２の構造化文書に前記第１の要素を挿入して、前記更新された第２の構造化文書を第３の構造化文書に変換する第２の変換手段と、
前記第１の記憶手段に記憶された前記第１の構造化文書を当該第１の構造化文書と前記第３の構造化文書との間の差分で更新する更新手段と、
を具備したことを特徴とする文書構造変換装置。
【請求項１０】
前記変換規則の集合は、前記構造化文書中の前記複数の要素のうちの少なくとも１つの要素からなる第３の部分文書の当該構造化文書中の位置を移動する第３の変換規則をさらに含み、
前記第２の変換手段は、前記更新された前記第２の構造化文書中の前記第３の部分文書の位置を元の位置に戻し、前記更新された第２の構造化文書を前記第３の構造化文書に変換することを特徴とする請求項９記載の文書構造変換装置。
【請求項１１】
前記第１の変換手段で前記第１の構造化文書を前記第２の構造化文書に変換する際に、前記第１の変換規則を適用した前記第１の構造化文書中の前記第１の部分文書の位置と、前記第２の変換規則を適用した前記第１の構造化文書中の前記第１の要素の位置を変換記録として記憶する第３の記憶手段をさらに具備し、
前記第２の変換手段は、前記変換記録を基に、前記更新された第２の構造化文書を前記第３の構造化文書に変換することを特徴とする請求項９記載の文書構造変換装置。
【請求項１２】
前記第１の構造化文書中の前記第１の部分文書と前記第１の要素の位置は、当該第１の部分文書中のいずれか１つの要素の識別子と当該第１の要素の識別子をそれぞれ用いて表されていることを特徴とする請求項１１記載の文書構造変換装置。
【請求項１３】
前記第１の部分文書中のいずれか１つの要素の識別子を前記第２の部分文書中のいずれか１つの要素の識別子として用いることを特徴とする請求項１２記載の文書構造変換装置。
【請求項１４】
前記第１の要素に前記第２の変換規則により削除するか否かを予め設定し、この設定に基づき前記第１の変換手段で前記第１の要素が削除され、かつ、前記第１の端末で前記第２の構造化文書中の第３の要素が前記第１の要素に書き換えられたとき、次回から前記第１の要素が前記第１の変換手段で削除されないように設定し直すことを特徴とする請求項９記載の文書構造変換装置。
【請求項１５】
前記変換規則の集合には、前記第１の構造化文書中の前記複数の要素のうちの少なくとも１つの要素からなる第４の部分文書を前記第２の部分文書に変換する第４の変換規則をさらに含み、
前記第２の変換手段は、前記更新された第２の構造化文書中の前記第２の部分文書の前記第１の部分文書への変換と前記第２部分文書の前記第４の部分文書への変換のうち、予め設定された優先度の高い変換から先に行うことを特徴とする請求項９記載の文書構造変換装置。
【請求項１６】
複数の要素で構成された文書構造をもつ第１の構造化文書を第１の記憶手段に記憶する第１のステップと、
前記第１の構造化文書を、当該第１の構造化文書を利用する種別の異なる複数の端末のうちの１つである第１の端末での利用形態に対応する文書構造に変換するための変換規則の集合であって、当該第１の構造化文書中の前記複数の要素のうちの少なくとも１つの要素からなる第１の部分文書をそれとは文書構造が異なる第２の部分文書に変換する第１の変換規則と、当該複数の要素のうちの第１の要素を削除する第２の変換規則とを含む前記変換規則の集合を第２の記憶手段に記憶する第２のステップと、
前記第１の構造化文書を前記変換規則の集合に従って第２の構造化文書に変換する第３のステップと、
前記第２の構造化文書中の前記第２の部分文書を前記第１の部分文書に変換するとともに、当該第２の構造化文書中に追加された新たな前記第２の部分文書を前記第１の部分文書に変換し、当該第２の構造化文書に前記第１の要素を挿入して、前記更新された第２の構造化文書を第３の構造化文書に変換する第４のステップと、
前記第１の記憶手段に記憶された前記第１の構造化文書を当該第１の構造化文書と前記第３の構造化文書との間の差分で更新する第５のステップと、
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＸＭＬ文書などの構造化文書の文書構造の変換技術に関する。
【０００２】
【従来の技術】
近年の電化製品の普及にともない、１人のユーザが、デスクトップパソコン、ノートパソコン、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）、携帯電話などの複数の異なる端末機器を保有するケースが増えてきている。これら複数の端末機器であつかう情報の中にはお互いに非常に関連姓のあるデータが多く含まれており、住所録はその代表例である。
【０００３】
複数の端末機器で管理される住所録の情報の中には姓、名、住所、電話番号、電子メールアドレスなどが含まれることが多いと考えられるが、これらの情報はたとえ端末機器ごとにデータ形式が異なっていたとしても、それらが表す内容は同一である。したがって、住所録に登録されている人が引越しを行い電話番号が変更になった場合には、この人の情報をデスクトップパソコンで参照する場合でも、ノートパソコンで参照する場合でも、ＰＤＡで参照する場合でも、携帯電話で参照する場合でも、すべての場合において新しくなった電話番号が参照されるべきである。もしデスクトップパソコン、ノートパソコン、ＰＤＡ、携帯電話で完全に独立に住所録が管理されているとすると、登録されている個人情報が変更になった場合、すべての端末機器ごとに情報の更新を行わなければならず、端末機器が増えれば増えるほど管理が煩雑になり、情報の一貫姓を保つことが難しくなる。
【０００４】
そこで、今までデスクトップパソコン、ノートパソコン、ＰＤＡ、携帯電話などの複数の異なる端末機器によって個別に独立に管理されていた情報を、サーバ計算機で集中的に一括管理し、必要に応じてサーバ計算機から個別の端末機器に読み出して利用するさまざまなシステムが考えられている。このようなシステムを導入する利点は、情報がサーバ計算機上で一元的に管理されるため、情報の一貫姓を保つことが比較的容易である点が挙げられる。もし、住所録の情報がサーバ計算機で一括管理されていたとすると、個人情報が変更になった場合でも、（端末機器を通して）サーバ計算機上の情報のみを更新しておけば、個々の端末機器はサーバ計算機から住所録情報を読み出すことによって、端末機器ごとにユーザが情報の更新を行うことなく、一貫姓のある最新の情報を取得することが可能であるからである。
【０００５】
サーバ計算機に集中的に格納されているデータは、複数の端末機器で利用するデータをまとめあげたものである。一般に、すべての端末機器で利用するデータがすべて同一のデータ形式にしたがっていることは稀である上に、すべての端末で利用するデータがすべて同一であることも稀である。例えば、携帯電話とＰＤＡでは住所録を扱うデータ形式は異なっており、さらに、携帯電話では住所録の情報のうち名前と電話番号のみを利用するのに対して、別のＰＤＡでは名前と電話番号に加えて、住所や電子メールアドレスを利用するといった違いもある。
【０００６】
そこで、サーバ計算機に格納されている情報を読み出し端末機器で利用するためには、各端末機器に適した形式と内容に変換しなければならない。
【０００７】
このように、複数の端末機器で利用する情報をサーバ計算機上で一元管理し、必要に応じてサーバ計算機から端末機器に情報を読み出して利用するシステムでは、ユーザが利用することが可能な端末機器が特定の機器に限定されており、サーバ計算機に格納されている情報を端末機器で利用可能な形式に変換したり、端末機器に格納されている情報をサーバ計算機に格納可能な形式に変換するためには、機器ごとに特化された変換プログラムを用いている。この方法だと、新しく端末機器が追加されるごとに新たなプログラムを新規作成しなければならず、システムの保守が煩雑である。
【０００８】
また、ＸＭＬ文書形式で表現される構造化文書に場合には、その構造化文書の文書構造を変換するために、スタイルシート（ＸＳＬ（Ｅｘｔｅｓｉｂｌｅ  Ｓｔｙｌｅｓｈｅｅｔ  Ｌａｇｕａｇｅ  ））を用いた変換（ＸＳＬＴ）がよく用いられている。
【０００９】
上記のような、複数の端末機器で利用する情報をサーバ計算機上で一元管理し、必要に応じてサーバ計算機から端末機器に情報を読み出して利用するシステムにおいて、構造化文書をターゲットにした場合、ＸＳＬＴを用いるとプログラムを新たに作成しなくても、新しく変換規則のみを作成すれば、ＸＭＬ文書を変換し別の構造化文書を得る仕組みを提供することが可能である。しかし、ＸＳＬＴはＸＭＬ文書を変換し別の構造化文書に得る目的には適しているが、変換規則が複雑であり、変換に用いた規則を利用して新たに得られた構造化文書から変換を行う前のＸＭＬ文書がしたがっていた文書構造にしたがうＸＭＬ文書へ逆方向の変換を行うことは非常に困難である。
【００１０】
【発明が解決しようとする課題】
このように、サーバクライアントシステムにより、サーバにて一元管理されている文書情報をクライアントとしての各種端末装置から読み出して利用する場合、サーバでは、１つの文書情報として管理していても、クライアント側で当該文書情報を利用する際には、当該文書情報の形式（文書構造）が端末装置毎に異なる。このような場合に、サーバ側対応の文書形式（文書構造）と各クライアント対応の文書形式（文書構造）との間で変換プログラムなどを用いて相互変換する場合には、新規にクライアントとして端末装置を追加する度に、そのための新たな変換プログラムを作成しなければならず、また、このような変換プログラム作成の制約上、利用できる端末装置の種類が制限されることもあり、クライアントとして端末装置を追加するための保守が容易ではないという問題点があった。
【００１１】
また、処理対象をＸＭＬなどで記述された構造化文書とし、サーバ側対応の文書構造と各クライアント対応の文書構造への変換は、ＸＳＬＴで可能だが、逆変換が容易に行えないという問題点があった。
【００１２】
そこで、本発明は、上記問題点に鑑み、サーバクライアントシステムにより、サーバにて一元管理されている文書情報をクライアントとしての各種端末装置から読み出して利用する場合、サーバ側対応の文書構造と各クライアント対応の文書構造との間の相互変換が容易に行える文書構造変換方法およびそれを用いた文書構造変換装置およびプログラムを提供することを目的とする。
【００１３】
【課題を解決するための手段】
本発明は、異なる文書構造の複数の構造化文書のうち所望の構造化文書を、文書構造毎に予め定められた構造化文書の利用形態対応の変換規則に従って、前記利用形態対応の文書構造に変換し、その際、前記構造化文書中の前記変換規則を適用した領域とその領域に適用した変換規則とを変換記録として記録し、前記利用形態対応の文書構造に変換された前記構造化文書に対し編集を行った結果得られた構造化文書を前記変換記録と前記変換規則とに基づき、元の文書構造に変換することを特徴とする。
【００１４】
本発明によれば、１つの文書構造の構造化文書を、その構造化文書の利用形態対応の複数の異なる文書構造に変換したり、利用形態対応の異なる文書構造を元の同じ１つの文書構造へ変換したりすることが容易に行える。例えば、サーバクライアントシステムにより、サーバにて一元管理されている構造化文書をクライアントとしての各種端末装置から読み出して利用する場合、サーバ側対応の文書構造と各クライアント対応（利用形態対応）の文書構造との間の相互変換が容易に行える。
【００１５】
また、前記変換規則は、前記構造化文書に対する、前記構造化文書中の少なくとも１つの構成要素からなる部分文書の文書構造の変更や、前記部分文書の削除・移動などの操作内容を記述したものであることを特徴とする。
【００１６】
また、前記変換記録には、前記構造化文書の各構成要素の持つ識別子を用いて前記変換規則を適用した領域が示されていることを特徴とする。
【００１７】
また、前記構造化文書中の少なくとも１つの構成要素からなる部分文書に対し前記変換規則を適用することにより、その部分文書の文書構造が変更されたとき、変更前の前記部分文書中の少なくとも１つの構成要素の識別子が、変更後の前記部分文書中の少なくとも１つの構成要素の識別子として継承されることを特徴とする。
【００１８】
また、前記利用形態対応の文書構造の構造化文書に対しなされた編集は、該利用形態対応の文書構造に適合する範囲内の編集であることを特徴とする。
【００１９】
また、前記構造化文書中の少なくとも１つの構成要素からなる異なる複数の部分文書のそれぞれに、該構造化文書の文書構造を前記利用形態対応の文書構造に変換する際に削除するか否かを予め設定し、この設定に基づき前記利用形態対応の文書構造に変換する際に削除されずに残された部分文書が前記編集により削除された部分文書で書き換えられたとき、前記削除された部分文書が次回から削除されないように設定し直す（微調整）ことを特徴とする。
【００２０】
また、前記構造化文書中の少なくとも１つの構成要素からなる異なる部分文書のそれぞれに対し異なる変換規則を適用することにより該部分文書の文書構造が変換されて、前記利用形態対応の文書構造に変換された構造化文書中に同一の文書構造の部分文書が生成されるとき、前記利用形態対応の文書構造の構造化文書を元の文書構造に変換する際には、前記異なる変換規則のそれぞれに予め設定されている優先度に基づき、前記元の文書構造への変換のために適用する変換規則を選択することを特徴とする（変換規則グループ）。
【００２１】
【発明の実施の形態】
以下、本発明の実施形態について、図面を参照して説明する。
【００２２】
（第１の実施形態）
近年インターネットやイントラネットなどの通信路を介して交換される標準的な文書形式の１つに、ＨＴＭＬ文書やＸＭＬ文書などがある。ＨＴＭＬ文書に関しては、ＨＴＭＬ  ４．０１  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｗ３Ｃ  Ｒｅｃｏｍｍｅｎｄａｔｉｏｎ  ２４  Ｄｅｃｅｍｂｅｒ  １９９９  に、ＸＭＬ文書に関しては、Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ  （ＸＭＬ）  １．０  （Ｓｅｃｏｎｄ  Ｅｄｉｔｉｏｎ）  Ｗ３Ｃ  Ｒｅｃｏｍｍｅｎｄａｔｉｏｎ  ６  Ｏｃｔｏｂｅｒ  ２０００  に詳細に書かれている。これらの文書はともに構造化文書の一例である。以下の本発明の実施形態では、構造化文書の一例であるＸＭＬ文書を処理対象とした場合を例にとり説明する。
【００２３】
まず、ＸＭＬ文書について、簡単に説明を行う。
【００２４】
ＸＭＬ文書は要素（あるいは構成要素とも呼ぶ）から構成された階層構造の文書構造を持つ。根（ルート）と呼ばれる特別な要素以外のＸＭＬ文書のすべての要素は、ただ１つの親要素を保持し、ＸＭＬ文書のすべての要素は、１つまたは複数の子要素を保持することもある。要素の親子関係がＸＭＬ文書の階層構造を形成する。
【００２５】
たとえば、「住所録」情報をＸＭＬで記述したもの（ＸＭＬ文書）を以下に示す。
【００２６】
0003692054.tif 000002
上記ＸＭＬ文書は、「住所録」という構成要素の子要素に複数の「メンバ」という子要素があり、さらに、各「メンバ」要素は、「名前」、「メール」、「勤務先」という子要素から構成された文書構造を持つ。各構成要素は、その要素名を表したタグ（＜要素名＞）で囲まれてなる。
【００２７】
例えば、上記「住所録」情報というＸＭＬ文書の持つ上記したような文書構造の識別情報を「住所録」とする。
【００２８】
ＸＭＬは、文書の構造の表現にタグが用いられる。タグには、開始タグと終了タグがあり、文書構造を構成する構成要素を開始タグと終了タグで囲むことにより、文書中の文字列（テキスト）区切りと、そのテキストが構造上どの構成要素に属するのかを明確に記述することができる。
【００２９】
ここで開始タグとは要素名を記号「＜」、「＞」で閉じたものであり、終了タグとは要素名を記号「＜／」と「＞」で閉じたものである。タグに続く構成要素の内容が、テキスト（文字列）または子供の構成要素の繰り返しである。また開始タグには「要素名  属性＝“属性値”」などのように属性情報を設定することができる。
【００３０】
ここでは、「住所録」タグの子要素の１つである「メンバ」要素およびその子要素を含むデータ範囲を指定するために、「住所録／メンバ」と表し、さらに、「メンバ」の子要素である「名前」要素を指定するために「住所録／メンバ／名前」と表す。このような構造化文書中の特定のエリアをその文書構造に基づき指定するものをパスと呼び、「住所録／メンバ」、「住所録／メンバ／名前」などをパス名と呼ぶ。
【００３１】
また、「神奈川ガス」という要素値を持つ要素を指定する場合のパスも上記同様にして、「住所録／メンバ／勤務先／神奈川ガス」と表すことができる。
【００３２】
また、パスにより指定される構造化文書中の特定のエリアを当該構造化文書の部分文書と呼ぶ。部分文書には、要素とその値も含まれる。例えば、「メンバ」要素からなる部分文書と呼ぶとき、この部分文書には「メンバ」要素の子孫要素とそれらの値を含む範囲をさす。
【００３３】
図１は、本発明の一実施形態である構造化文書管理システムの構成例を示す。構造化文書としてはＸＭＬ文書を考える。
【００３４】
図１の構造化文書管理システムは、大きく分けて、構造化文書配信装置１、構造化文書変換装置５、構造化文書閲覧・編集装置１２の３つの装置からなる。
【００３５】
構造化文書配信装置１と構造化文書変換装置５は、単一の装置の中に組み込まれて機能する場合と、別個の装置として、ネットワークを通じて結合されている場合との両方の構成が考えられる。
【００３６】
また、構造化文書変換装置５と構造化文書閲覧・編集装置１２に関しても同様に、１つの装置の中に組み込まれている場合と、それぞれ別個の装置としてネットワークを通じて結合されている場合の両方の構成が考えられる。
【００３７】
例えば、構造化文書配信装置１と構造化文書変換装置５の機能をサーバ装置に持たせ、構造化文書閲覧・編集装置１２の機能をクライアント端末に持たせる構成であってもよい。この場合、サーバ装置の構成には、構造化文書配信装置１と構造化文書変換装置５の構成を含み、クライアント端末には、構造化文書閲覧・編集装置１２の構成を含む。
【００３８】
また、構造化文書配信装置１の機能をサーバ装置に持たせ、構造化文書変換装置５と構造化文書閲覧・編集装置１２の機能をクライアント端末に持たせるような構成であってもよい。この場合、サーバ装置の構成には、構造化文書配信装置１の構成を含み、クライアント端末には、構造化文書変換装置５と構造化文書閲覧・編集装置１２の構成を含む。
【００３９】
構造化文書配信装置１は、格納部２、読み出し部３、書き込み部４とから構成される。
【００４０】
格納部２は、異なる文書構造の複数のＸＭＬ文書を格納するようになっている。
【００４１】
読み出し部３は、ＸＭＬ文書を格納部１から読み出し、読み出したＸＭＬ文書を構造化文書変換装置５へ送信する。格納部２には一般に複数のＸＭＬ文書が格納されているので、それら複数のＸＭＬ文書の中から（構造化文書閲覧・編集装置１２を用いてユーザから要求されたＸＭＬ文書であって）構造化文書変換装置５へ送信すべき適切なＸＭＬ文書を選択し、読み出す。ただし、読み出し部３で読み出すものは、ＸＭＬ文書全体である場合と、前回格納部２から読み出したＸＭＬ文書と今回読み出したＸＭＬ文書との差分のみである場合のいずれであってもよい。読み出し部３は、読み出すべき情報がＸＭＬ文書全体であるかそれともＸＭＬ文書の差分のみであるかを適切に判断する。
【００４２】
書き込み部４は、構造化文書変換装置２から送信されてきたＸＭＬ文書を受信し、受信したＸＭＬ文書を格納部２に格納する。ただし、書き込み部で受信するものは、ＸＭＬ文書全体である場合と、前回格納部２から読み出したＸＭＬ文書との差分のみである場合のいずれであってもよい。
【００４３】
書き込み部４は、受信した情報が、ＸＭＬ文書全体であるかそれともＸＭＬ文書の差分のみであるかに応じて、適切な書き込みを行う。格納部２には一般に複数のＸＭＬ文書が格納されているので、それら複数のＸＭＬ文書の中から構造化文書変換装置５から送信されてきたＸＭＬ文書に対応する適切なＸＭＬ文書を選択し、このＸＭＬ文書を構造化文書変換装置５から送信されてきたＸＭＬ文書の内容にしたがって更新する。
【００４４】
なお、図１の構造化文書管理システムでは、格納部２に格納されるＸＭＬ文書のすべての構成要素は、各構成要素を一意に識別するための識別子が付与される。構造化文書変換装置５から送信されてきたＸＭＬ文書の構成要素のうち、ユーザによって後述の構造化文書閲覧・編集装置１２上で新規作成されたものには識別子が付与されていないので、書き込み部４が、それらの識別子が付与されていない要素に識別子を付与する。
【００４５】
構造化文書変換装置５は、変換実行部６、逆変換実行部７、一時格納部８、解析部９、変換規則管理部１０、変換記録管理部１１から構成され、構造化文書配信装置１から配信された構造化文書を構造化文書閲覧・編集装置１２で閲覧・編集する目的に適した形式（文書構造）に変換したり、構造化文書閲覧・編集装置１２から送信されてきた構造化文書を構造化文書配信装置１に格納する目的に適した形式（文書構造）に逆方向の変換を行うなど、構造化文書配信装置１と構造化文書閲覧・編集装置１２の中間に位置し構造化文書を仲介する役割を果たす。
【００４６】
一時格納部８は、構造化文書変換装置５によって変換される前の構造化文書を一時格納する。構造化文書の逆方向の変換を行う際に、変換を行う前の構造化文書の内容を参照する必要が生じたら、一時格納部８から構造化文書を取り出し、参照することが可能である。
【００４７】
解析部９は、構造化文書を解析し、解析結果は、変換実行部６，逆変換実行部７で構造化文書の文書構造の変換・逆変換時に利用される。
【００４８】
ＸＭＬ文書は、ある要素が別の要素と親子関係を持つという階層構造を保持し、この階層構造によって意味のまとまりを形成している。
【００４９】
図１のシステムでは、構造化文書配信装置１に格納されているＸＭＬ文書の持つすべての要素に識別子が付与されており、それらの識別子のうち一部またはすべては変換、編集、逆変換後のＸＭＬ文書に継承されることを特徴としているが、以下の説明において、特に混乱がない限り、識別子が付与されていないＸＭＬ文書を用いて説明を行う。
【００５０】
例えば、次に示すような「名簿」情報をＸＭＬで記述したＸＭＬ文書を考える。
【００５１】
0003692054.tif 000003
上記ＸＭＬ文書において、「名前」要素は、「姓」要素と「名」要素の組という意味のまとまりを形成している。したがって、「名前」要素を削除する変換を行うと、
0003692054.tif 000004
となってしまうため意味のまとまりが崩れてしまい、どの姓とどの名が対応するか明確でなくなってしまう。また、「名前」要素を２要素に分割し、「姓」要素と「名」要素を別の要素の子要素にする変換を行うと、
0003692054.tif 000005
となってしまい、この場合も意味のまとまりが崩れて、どの姓とどの名が対応するか明確でなくなってしまう。
【００５２】
一方、「名簿」情報を管理する上記ＸＭＬ文書とは異なる下記ＸＭＬ文書を考える。
【００５３】
0003692054.tif 000006
このＸＭＬ文書において、「住所」要素を削除する変換を行うと、
0003692054.tif 000007
となる。この場合には、「住所」要素が削除された後であってもどの「郵便番号」要素とどの「市町村」要素が対応するかは明確であり、その意味において意味のまとまりは崩れていない。また、「住所」要素を２要素に分割し、「郵便番号」要素と「市町村」要素を別の要素の子要素にする変換を行うと、
0003692054.tif 000008
となり、この場合も変換後のＸＭＬ文書において意味のまとまりは明確である。
【００５４】
このように、ＸＭＬ文書中の要素の中には、それを削除したり、複数要素に分割することによって、ＸＭＬ文書の意味のまとまりが不明確になるものと、削除したり、複数要素に分割しても、ＸＭＬ文書の意味のまとまりが明確であるものの２種類が存在する。
【００５５】
構造化文書配信装置１から送信されたＸＭＬ文書を構造化文書閲覧・編集装置１２で閲覧・編集する目的に適した形式に変換する際には、構造化文書配信装置１内に格納されているＸＭＬ文書が保持する意味のまとまりを崩さない範囲で変換することが必要である。
【００５６】
解析部９は、構造化文書を解析し、上記２種類の要素を検出するためのものである。
【００５７】
変換規則管理部１０は、ＸＭＬ文書を変換する際の変換規則を管理する。
【００５８】
変換規則には、例えば以下に示す規則が考えられる。
【００５９】
（１）ＸＭＬ文書中のパス名を別のパス名に変更する。すなわち、構成要素名の変更のみを行う場合と、文書構造の変更のみを行う場合と、文書構造の変更と構成要素名の変更とを行う場合とがある。ここで、パス名の変更によってパスに含まれる要素数が変化しても構わない。パス名の変更という変換規則を用いれば、例えば、「メンバ／名前／電話番号」というパス名を「ｍｅｍｂｅｒ／ｎａｍｅ／ｔｅｌ」という英字のパス名に変更したり、「名簿／名前／自宅／電話番号／＄１」というパス名を「名簿／名前／電話番号／＄１」と「自宅」要素を削除して文書構造を変更したり、さらに、「名簿／名前／連絡先／＄１」と「電話番号」要素の要素名を「連絡先」と変更することができる。このようにして、パス名の変更という変換規則の実行された構造化文書は、この変換規則にて指定された（変更前の）パスにより特定される当該構造化文書中の領域（部分文書）の文書構造が（変換規則で指定された変更後のパスで表されるような文書構造に）変更されることになる。
【００６０】
（２）ＸＭＬ文書のパスを削除する。パスを削除するとは、そのパスにて指定される部分文書を削除するということである。なお、ＸＭＬ文書のパスの最終要素が子孫要素を保持する場合には、それらも合わせて削除することになる。また、パスの最終要素とは、例えばパス「メンバ／住所」であるときの最終要素は、「住所」要素である。また、「住所」要素以下に、子要素として「郵便番号」「都道府県」などの子要素があるときは、それらも削除する。
【００６１】
（３）ＸＭＬ文書のパスを移動する。パスの移動という変換規則の実行された構造化文書は、この変換規則にて指定されたパスにより特定される当該構造化文書中のエリア（部分文書）が変換規則で指定された位置に移動することになる。ここで、ＸＭＬ文書のパスの移動によって、ＸＭＬ文書が保持する意味のまとまりを崩してはいけないという制約がある。
【００６２】
より詳細に変換の種類を定義するならば、上記パス（名）の変更にも、
（４）新たな部分文書を追加する。
【００６３】
（５）異なるパスにて指定される複数の部分文書を１つのパスにて指定することのできる１つの部分文書に併合する。
【００６４】
（６）１つのパスにて指定される１つの部分文書を複数の異なるパスを用いて指定される別個の部分文書に分割する。
【００６５】
（７）部分文書中に別の部分文書の複製を追加する。
【００６６】
というような種類の変更もありえるだろう。これらをパスの変更とは別個の種類の変換規則として定義するようにしてもよい。
【００６７】
なお、変換規則は、上記のみに限るものではなく、必要に応じて、必要な変換規則を用いればよい。ここでは、例えば、上記（１）〜（３）に示したような種類の変換規則を例にとり説明する。
【００６８】
ＸＳＬＴにおけるＸＭＬ文書の文書構造の変換が、一般にある条件に合致する文書構造を表す「木」から新規の「木」を作成する操作を基本にしているのに対して、本発明におけるＸＭＬ文書の文書構造の変換は、「パス」にて特定される部分文書に対する操作を基本にしている。このため、本発明における文書構造の変換は、ＸＳＬＴにおける変換よりも単純であり、変換に対応する逆方向の変換を自動的に行うことが容易である。
【００６９】
１つの構造化文書中のあるパスにて特定される部分文書を別のパス名になるような文書構造に変換するパス名の変更といった変換では、要素名や要素数が変化するため、変換を行う前の要素と変換を行った後の要素を１対１に対応付けることは不可能である。したがって、変換前の要素が保持する識別子をすべて変換後の要素に継承することも不可能である。そこで、変更前の部分文書中の少なくとも１つの構成要素の識別子が、変更後の当該部分文書中の少なくとも１つの構成要素の識別子として継承するようにする。例えば、ここでは、変換前のパスの最終要素が保持する識別子を変換後のパスの最終要素に継承させる。この方法を取ることによって、変換を行う前の要素と変換を行った後の要素を１対１に対応付けることは不可能であるが、変換を行う前の部分文書と変換を行った後の部分文書を１対１に対応付けることが可能となる。
【００７０】
また、後述するように、変換記録では、変換前のパスの最終要素の保持する要素識別子は、変換規則が実行された構造化文書中の領域（位置）を特定するためにも用いられる。
【００７１】
次に、上記複数の変換規則のうち、パス名の変更、パスの削除、パスの移動という３つの変換規則を例にとり、変換規則により文書構造が変換される様子と、要素識別子の継承について、具体的に説明する。例えば、以下に示す「名簿」情報をＸＭＬで記述したＸＭＬ文書を考える。ただし、ここでは、要素の識別子（要素識別子）は、その要素の属性情報として、各要素の開始タグ内に「ｉｄ＝“要素識別子”」と書き込まれている。
【００７２】
0003692054.tif 000009
変換規則管理部１０で管理されている変換規則の１つが、「パス「会社／住所／＄１」をパス「会社住所／＄１」に変更する」というものであったとする。ただし、ここで「＄１」は変数を表すものとする。この場合、「会社」要素からなる部分文書（より詳しく表現すると、「会社」要素とその子要素である「住所」要素からなる部分文書）の文書構造を変更する。すなわち、上記ＸＭＬ文書にこの変換規則を適用すると、部分文書「<会社  id=”pi3”><住所  id=”pi4”>A2</住所></会社>」が、部分文書「<会社住所  id=”pi4”>A2</会社住所>」と変換される。
【００７３】
そして、この場合、変換前のパスの最終要素（「住所」要素）が保持する要素識別子「ｐｉ４」を変換後のパスの最終要素（「会社住所」要素）に承継させる。よって、以下に示すＸＭＬ文書が得られる。
【００７４】
0003692054.tif 000010
変換規則管理部１０で管理されている別の変換規則の１つが、「パス「自宅／住所／＄１」を削除する」というものであったとする。この場合、「自宅」要素からなる部分文書（より詳しくは、「自宅」要素とその子要素からなる「住所」要素からなる部分文書）を削除する。上記ＸＭＬ文書にこの変換規則を適用すると、以下に示すＸＭＬ文書が得られる。
【００７５】
<個人情報  id=”pi1”>
<名前  id=”pi2”>A1</名前>
<会社住所  id=”pi4”>A2</住所>
<電子メール  id=”pi7”>A4</電子メール>
</個人情報>
さらに、変換規則管理部１０で管理されている別の変換規則の１つが、「パス「電子メール／＄１」を「名前」要素の直後に移動する」というものであったとする。この場合、「電子メール」要素からなる部分文書を「名前」要素からなる部分文書の直後に移動する。すなわち、上記ＸＭＬ文書にこの変換規則を適用すると以下に示すＸＭＬ文書が得られる。
【００７６】
<個人情報  id=”pi1”>
<名前  id=”pi2”>A1</名前>
<電子メール  id=”pi7”>A4</電子メール>
<住所  id=”pi4”>A2</住所>
</個人情報>
例えば、上記３種類の変換規則が登録されて、管理するのが変換規則管理部１０である。
ＸＭＬ文書に対して変換規則を適用したら、どの変換規則を当該ＸＭＬ文書中のどの領域（どの部分文書）に対して適用したかを表す変換記録を変換記録管理部１１に記録される。「どの領域（部分文書）に対して適用したか」という情報を、ここでは、当該部分文書を示すパス名にある最終要素の要素識別子にて示している。
【００７７】
逆変換実行部７は、構造化文書閲覧・編集装置１２から送信されたＸＭＬ文書を構造化文書配信装置１に格納する目的に適した形式に変換する際に、構造化文書配信装置１から送信されたＸＭＬ文書を構造化文書閲覧・編集装置１２に表示する目的に適した形式に変換した際の変換記録を用い、記録されている変換の逆変換を行う。
【００７８】
逆変換実行部７は、構造化文書閲覧・編集装置１２から送信されてきたＸＭＬ文書を受信し、受信したＸＭＬ文書に対して、変換実行部６で行った変換の逆変換を行うものである。逆変換を行う際には、変換記録管理部１１で管理されている変換記録を１つずつ取得し、取得した変換記録を順番に、当該ＸＭＬ文書に適用する。この際、変換規則や変換実行部６で変換を行う前のＸＭＬ文書を参照する必要がある場合には、適宜、変換規則管理部１０や一時格納部８に問い合わせて必要な情報を取得する。
【００７９】
構造化文書変換装置５で変換されＸＭＬ文書は、構造化文書閲覧・編集装置１２に送信され、ここで、当該ＸＭＬ文書が編集された場合には、構造化文書閲覧・編集装置１２から構造化文書変換装置５に送信されるＸＭＬ文書は、構造化文書変換装置５から構造化文書閲覧・編集装置１２に送信されたＸＭＬ文書と異なっている。
【００８０】
この場合には、逆変換実行部７で行う逆変換は変換実行部６で行われた変換と完全に対称になっている訳ではない。すなわち、構造化文書閲覧・編集装置１２における編集によって削除された部分文書（パス）は変換の対象であったにもかかわらず逆変換の対象にはならない。また、構造化文書閲覧・編集装置１２における編集によって新規作成された部分文書（パス）は変換の対象でなかったにもかかわらず逆変換の対象になる。
【００８１】
例えば、以下に示すＸＭＬ文書を考える。ただし、ここでも、要素識別子は、その要素の属性情報として、各要素の開始タグ内に「ｉｄ＝“要素の識別子”」と書き込まれている。
【００８２】
0003692054.tif 000011
この場合、変換規則管理部１０に、上記ＸＭＬ文書の文書構造を変換するための、例えば、以下示すような２つの変換規則が登録・管理されているとする。
変換規則Ｒ１０１：パス「会社／住所／＄１」を「会社住所／＄１」に変更する。
【００８３】
変換規則Ｒ１０２：パス「自宅／住所／＄１」を「自宅住所／＄１」に変更する。
【００８４】
ただし、ここで「＄１」は変数を表すものとする。上記ＸＭＬ文書に、この変換規則Ｒ１０１、Ｒ１０２を適用し、変換実行部６で変換を行うと、変換規則Ｒ１０１のみが適用され、以下に示すＸＭＬ文書が得られる。
【００８５】
0003692054.tif 000012
また、この際、変換記録管理部１１に記録される変換記録は以下の２つである。
【００８６】
変換記録Ｍ１０１：要素識別子「ｐｉ４」の要素を最終要素として保持するパスに、変換規則Ｒ１０１を適用
変換記録Ｍ１０２：変換規則Ｒ１０２を適用するパスは存在しない。
【００８７】
上記変換記録は、逆変換実行部７でＸＭＬ文書の文書構造の逆変換を行う際に用いる。
【００８８】
このＸＭＬ文書を構造化文書閲覧・編集装置１２で編集し、「会社住所」要素が削除され、「自宅住所」要素が新規追加され、以下に示すＸＭＬ文書が得られたとする。
【００８９】
0003692054.tif 000013
上記ＸＭＬ文書に上記変換記録Ｍ１０１、Ｍ１０２を適用し、構造化文書変換装置５の逆変換実行部７で逆変換を行うと、上記ＸＭＬ文書中には、もはや要素識別子「ｐｉ４」の要素を最終要素として保持するパス「会社住所／Ａ２」は存在せず、かわってパス「自宅住所／Ａ３」が存在するので、変換記録Ｍ１０１は適用できずに、変換記録Ｍ１０２が適用される。この場合、変換規則Ｒ１０２の操作の逆の操作を、パス名「自宅住所／＄１」に対して行い、その結果、このパスは、「自宅／住所／＄１」に変更され、以下に示すＸＭＬ文書が得られる。
【００９０】
0003692054.tif 000014
このように、変換記録は、構造化文書中のどの位置に（最終要素の識別子にて判断されるエリア）、どの変換規則を適用したかを記録したものである。なお、逆変換に対し、変換記録に沿った変換を順方向変換と呼ぶこともある。
【００９１】
また、文書構造の逆変換とは、変換記録を基に、変換規則にて定義されている変換の逆の変換を行うものである。
【００９２】
パス名の変更を行う変換規則対応の逆変換とは、パス名の変更という順方向変換のなされた部分文書の文書構造を順方向変換を行う前の文書構造に戻す変換である。その際、当該部分文書に要素識別子や、後述するようなポインタ属性のような属性情報が与えられているときはそれらの設定も含めて復元される。
【００９３】
パスの削除を行う変換規則対応の逆変換とは、パスの削除という順方向変換で削除された部分文書を復元する変換である。
【００９４】
パスの移動を行う変換規則対応の逆変換とは、パスの移動という順方向変換のなされた部分文書の位置を順方向変換を行う前の位置に戻す変換である。
【００９５】
パスＡをパスＢに変更する、パス名の変更という変換規則対応の逆変換は、変換記録で最終要素の識別子にて指定される部分文書（パスＢにて示されているような文書構造を持つ部分文書）に対し、パスＡにて示されるような文書構造に変換する操作である。また、これから逆変換しようとする処理対象の構造化文書中に、変換記録で最終要素の識別子にて指定される部分文書以外に、パスＢに対応する（一致する）パス（部分文書）が存在するときは、そのパス（部分文書）に対してもパスＡにて示されるような文書構造に変更する。その際、当該部分文書に、後述するようなポインタ属性のような属性情報を設定することができる。さらに、パス名の変換を行う変換規則を適用しなかったという変換記録である場合にも、パスＢに対応する（一致する）パス（部分文書）が、これから逆変換しようとする処理対象の構造化文書中に存在するときは、そのパス（部分文書）をパスＡにて示されるような文書構造に変更するという逆変換を行う。その際、当該部分文書に後述するようなポインタ属性のような属性情報を設定することができる。
【００９６】
パスＡを削除する、パスの削除という変換規則の逆変換は、変換記録で最終要素の識別子にて指定される部分文書を、一時格納部８に格納されている順方向変換を行う前の構造化文書から抽出し、この抽出した部分文書を、これから逆変換しようとする処理対象の構造化文書中の削除した位置に追加する操作である。その際、当該部分文書に要素識別子や、後述するようなポインタ属性のような属性情報が与えられているときはそれらの設定も含めて復元される。また、これから逆変換しようとする処理対象の構造化文書中に、変換記録で最終要素の識別子にて指定される部分文書以外に、パスＡに対応する（一致する）パス（部分文書）が存在するときは、その部分文書に後述するようなポインタ属性のような属性情報を設定するような操作もできる。さらに、パスを削除する変換規則を適用しなかったという変換記録である場合にも、パスＡに対応する（一致する）パス（部分文書）が、これから逆変換しようとする処理対象の構造化文書中に存在するときは、その部分文書に後述するようなポインタ属性のような属性情報を設定するような操作もある。
【００９７】
パスＡを（位置ｘ１から）位置ｘ２へ移動する、パスの移動という変換規則対応の逆変換は、変換記録で最終要素の識別子にて指定される部分文書の移動前の位置を、一時格納部８に格納されている順方向変換を行う前の構造化文書を参照して検出し、この検出した位置に当該部分文書を移動させる操作である。また、これから逆変換しようとする処理対象の構造化文書中に、変換記録で最終要素の識別子にて指定される部分文書以外に、パスＡに対応する（一致する）部分文書が位置ｘ２に存在するときは、その部分文書も位置ｘ１へ移動させる。その際、部分文書に後述するようなポインタ属性のような属性情報を設定するような操作もできる。さらに、パスを移動する変換規則を適用しなかったという変換記録である場合にも、パスＡに対応する（一致する）部分文書が、これから逆変換しようとする処理対象の構造化文書の位置ｘ２に存在するときは、その部分文書も位置ｘ１へ移動させる。その際、部分文書に後述するようなポインタ属性のような属性情報を設定するような操作もできる。
【００９８】
逆変換が施されたＸＭＬ文書は、構造化文書格納装置１に送信される。ここで、構造化文書格納装置１へ送信するものは逆変換が終了したＸＭＬ文書全体である場合と、逆変換が終了したＸＭＬ文書と一時格納部８に格納されているＸＭＬ文書との差分である場合とのいずれであってもよい。
【００９９】
構造化文書閲覧・編集装置１２は、解析部１３と閲覧・編集実行部１４とからなる。
【０１００】
構造化文書閲覧・編集装置１２でＸＭＬ文書の編集が行われる際、構造化文書変換装置５でＸＭＬ文書の変換を行った際と同様、ＸＭＬ文書が保持する意味のまとまりを崩す編集は避けるべきである。また、編集が終了したＸＭＬ文書は、編集を行う前のＸＭＬ文書がしたがっていた文書構造と同一の文書構造にしたがっているべきである。
【０１０１】
解析部１３は、閲覧・編集実行部１４にて編集されたＸＭＬ文書の文書構造に対して、編集前の文書構造と同一の文書構造に従っているか、当該ＸＭＬ文書が保持する意味のまとまりを崩すような編集はおこなっていないかなどをチェックする。これは、当該ＸＭＬ文書の文書構造の種類（と端末の種別）に対応して予め用意されたＤＴＤ（Ｄｏｃｕｍｅｎｔ  Ｔｙｐｅ  Ｄｅｆｉｎｉｔｉｏｎ）を用いて、パーサ（Ｐａｒｓｅｒ）という検証プログラムを使って、編集後の当該ＸＭＬ文書が当該ＤＴＤに従っているかどうかをチェックすることにより実現することができる。このように、解析部１３により、閲覧・実行部１４にて構造化文書に対しなされる編集は、当該構造化文書の利用形態対応の文書構造に適合する範囲内の編集のみが許され、その範囲外の編集は拒否される。
【０１０２】
閲覧・編集実行部１４は、構造化文書変換装置５から送信されてきたＸＭＬ文書を受信し、構造化文書をユーザに対して表示し、ユーザの編集を受け付け、編集の終了したＸＭＬ文書を構造化文書変換装置５に対して送信する。前述したように、編集を行った後のＸＭＬ文書は、しかるべき文書の構造にしたがっていなければならない。文書構造にしたがっているかどうかの検査は、解析部１３を利用して行われる。
【０１０３】
閲覧・編集実行部１４は、ユーザの編集と同時進行に解析部１３で解析を行いながら、始めから文書構造を崩さない編集のみを受け付けるものであってもよいし、一度ユーザの編集を受け付けた上で、その編集が文書構造に違反しているかどうか解析部１３を通して検査するようになっていてもよい。例えば、ここでは、前者の場合を例にとり説明するが、後者の場合であっても、閲覧・編集実行部１４、解析部１３の処理動作は基本的には同じである。
【０１０４】
次に、ＸＭＬ文書を構造化文書配信装置１から構造化文書変換装置５を経由して、構造化文書閲覧・編集装置１２へ送信するまでの処理動作について説明する。
【０１０５】
構造化文書配信装置１は、構造化文書閲覧・編集装置１２からの文書読み出し要求を受けて、構造化文書配信装置１内の格納部２に格納されている、当該読み出し要求にて指定されたXML文書を読み出し部３を経由して読み出し、それを構造化文書変換装置５へ送信する。
以下、図２に示すフローチャートを参照して、構造化文書変換装置５の主に変換実行部６の処理動作について説明する。
【０１０６】
変換実行部６は、構造化文書配信装置１から送信されてきたＸＭＬ文書を受信すると（ステップＳ２）、受信したＸＭＬ文書の複写を一時格納部８に格納する（ステップＳ３）。受信したＸＭＬ文書に対し、以下に続く変換規則を用いた変換に適した形式に変換する。そのために、まず、当該ＸＭＬ文書に対し前処理を行う（ステップＳ４）。前処理とは、解析部９による当該ＸＭＬ文書の解析結果を参照し（当該ＸＭＬ文書の文書構造を定義したＤＴＤをチェックしながら）、ＸＭＬ文書が保持する意味のまとまりを崩さないように、当該ＸＭＬ文書の記述形式を、変換規則を用いた変換に適した形式に変換する処理である。
【０１０７】
次に、変換規則管理部１０で登録・管理されている変換規則を１つずつ先頭から取得し、取得した変換規則を順番に適用して、当該ＸＭＬ文書の文書構造を変換する。また、変換規則を適用したら、当該ＸＭＬ文書のどのパスに対してどの変換規則を適用したかを表す変換記録を、変換記録管理部１１に記録する。この手続きをすべての変換規則に関して行う（ステップＳ５、ステップＳ８〜ステップＳ１５）。
【０１０８】
すなわち、変換規則管理部１０から取り出した変換規則の種類が、ＸＭＬ文書のパス名の変更に関するものである場合は（ステップＳ８）、ステップＳ９へ進み、そうでない場合にはステップＳ１０へ進む。
【０１０９】
ステップＳ１０において、変換規則管理部１０から取り出した変換規則の種類が、ＸＭＬ文書のパスの削除に関するものである場合にはステップＳ１１へ進み、そうでない場合はステップＳ１２へ進む。
【０１１０】
ステップＳ１２において、変換規則管理部１０から取り出した変換規則が、ＸＭＬ文書のパスの移動に関するものである場合にはステップＳ１３へ進み、そうでない場合に、上記パス名の変更、パスの削除、パスの移動以外の変換規則（例えば、先述したような、パスの新規作成、パスの併合、パスの分割など）であるときには、さらに、ステップＳ１４へ進む。
【０１１１】
ステップＳ１４において、変換規則管理部１０から取り出した変換規則が、上記パス名の変更、パスの削除、パスの移動以外の変換規則（例えば、先述したような、パスの新規作成、パスの併合、パスの分割など）である場合には、ステップＳ１５へ進み、そうでない場合、例えば、予め用意された変換の種類に該当しないような場合には、異常終了する。
【０１１２】
ステップＳ９では、変換実行部６が、ＸＭＬ文書のパス名を変換規則にしたがって変更する。
【０１１３】
ステップＳ１１では、変換実行部６が、ＸＭＬ文書のパスを変換規則にしたがって削除する。また、その際、当該削除するパスにて指定される要素の子孫要素もすべて削除する。
【０１１４】
ステップＳ１３では、変換実行部６が、ＸＭＬ文書のパスを変換規則にしたがって移動する。
【０１１５】
ステップＳ１５では、上記パス名の変更、パスの削除、パスの移動以外の変換規則の種類対応の変換、すなわち、例えば、前述したような、パスの新規作成、パスの併合、パスの分割などがあるときには、それぞれの種類対応の変換を行う。
【０１１６】
ステップＳ５において、当該ＸＭＬ文書に対し適用可能な全ての変換規則を適用したなら、次に、ステップＳ６へ進み、変換が終了したＸＭＬ文書に対し後処理を施す（ステップＳ６）。後処理とは、解析部９による当該ＸＭＬ文書の解析結果を参照し（当該ＸＭＬ文書の文書構造を定義したＤＴＤをチェックしながら）、変換後のＸＭＬ文書を構造化文書閲覧・編集装置１２で閲覧・編集する目的に適した記述形式に変換することである。その後、構造化文書閲覧・編集装置１２に送信する（ステップＳ７）。
【０１１７】
なお、変換規則は、上記したような、パス名の変更、パスの削除、パスの移動、パスの新規作成、パスの併合、パスの分割に限定するものではなく、上記以外の種類の変換規則ももちろん存在するであろう。しかし、本発明では、どのような変換規則が存在しても、どのように組み合わせて用いても、適用可能である。実際、ＸＭＬ文書を閲覧、編集するクライアント側に合わせて、これらのうちのいくつかを組み合わせて適宜用いればよい。
【０１１８】
次に、図３〜図４を参照して、構造化文書変換装置５から送信されるＸＭＬ文書を構造化文書閲覧・編集装置１２で受信し、構造化文書閲覧・編集装置１２でＸＭＬ文書の閲覧・編集後、構造化文書閲覧・編集装置１２から構造化文書変換装置５へＸＭＬ文書を送信するまでの処理手順を示す。
【０１１９】
図３は、構造化文書閲覧・編集装置１２の処理動作を説明するためのフローチャートである。
【０１２０】
構造化文書変換装置５から送信されてくるＸＭＬ文書は、閲覧・編集実行部１４で受信され、所定の表示のための処理が行われて、ディスプレイなどの表示装置に表示される（ステップＳ２１）。
【０１２１】
ユーザからの編集要求が終了するまで、ステップＳ２３〜ステップＳ２４の処理を繰り返す。
【０１２２】
閲覧・編集実行部１４は、解析部１３から得られる情報を利用しながら、ユーザにより行われた編集内容が、当該ＸＭＬ文書の文書構造を崩すものであるかどうか調べ（当該ＸＭＬ文書の文書構造対応のＤＴＤにあっているか否かを調べ）、文書構造を崩すものである場合には、そのような編集を拒否し、そうでない場合には、ステップＳ２４へ進み、当該編集内容を受け付ける。
【０１２３】
ステップＳ２４では、閲覧・編集実行部１４は、ユーザからの編集要求にしたがったＸＭＬ文書更新を行い、ステップＳ２２へ戻り、上記ステップＳ２３〜ステップＳ２４の処理を編集要求が終了するまで繰り返す。
【０１２４】
ユーザからの編集要求が終了したら、編集した結果であるＸＭＬ文書を閲覧・編集実行部１４から構造化文書変換装置５へ送信する（ステップＳ２５）。
【０１２５】
図４は、構造化文書変換装置５の主に逆変換実行部７の処理動作を説明するためのフローチャートである。
【０１２６】
構造化文書閲覧・編集装置１２から構造化文書変換装置５へ、編集のなされたＸＭＬ文書が送信されると、逆変換実行部７でそれを受信する（ステップＳ３２）。解析部９が当該ＸＭＬ文書を解析し、逆変換実行部７は、当該ＸＭＬ文書に対し前処理を行う（ステップＳ３３）。前処理とは、解析部９による当該ＸＭＬ文書の解析結果を参照し（当該ＸＭＬ文書の文書構造を定義したＤＴＤをチェックしながら）、当該ＸＭＬ文書の記述形式を、変換記録を用いた逆変換に適した形式に変換する処理である。
【０１２７】
変換記録管理部１１で管理されている変換記録のうち、当該ＸＭＬ文書に適用されていない変換記録がまだ存在する場合は、その変換記録を例えば、最後から１つずつ取り出し、取り出した変換記録を順番に適用して、当該ＸＭＬ文書の文書構造を逆変換する。この手続きをすべての変換記録に関して行う（ステップＳ３４、ステップＳ３８〜ステップＳ４５）。
【０１２８】
すなわち、ステップＳ３８において、変換記録管理部１１から取り出した変換記録に記録されている変換の種類が、パス名の変更に関するものである場合は、ステップＳ３９へ進み、そうでない場合にはステップＳ４０へ進む。
【０１２９】
ステップＳ３９において、変換記録管理部１１から取り出した変換記録に記録されている変換の種類が、パスの削除に関するものである場合は、ステップＳ４１へ進み、そうでない場合にはステップＳ４２へ進む。
【０１３０】
ステップＳ４２において、変換記録管理部１１から取り出した変換記録に記録されている変換の種類が、パスの移動に関するものである場合は、ステップＳ４３へ進み、そうでない場合に、上記パス名の変更、パスの削除、パスの移動以外の変換（例えば、先述したような、パスの新規作成、パスの併合、パスの分割など）でがあるときには、さらに、ステップＳ４４へ進む。
【０１３１】
ステップＳ４４において、変換記録管理部１１から取り出した変換記録に記録されている変換の種類が、上記パス名の変更、パスの削除、パスの移動以外の変換規則（例えば、先述したような、パスの新規作成、パスの併合、パスの分割など）である場合には、ステップＳ４５へ進み、そうでない場合、例えば、予め用意された変換の種類に該当しないような場合には、異常終了する。
【０１３２】
ステップＳ３９では、逆変換実行部７が、ＸＭＬ文書のパス名を変換記録にしたがって変更する。
【０１３３】
ステップＳ４１では、逆変換実行部７が、変換記録に従って、削除されたパスと、当該削除されたパスにて指定される領域内にある子孫要素もすべて削除する前の状態に戻す。
【０１３４】
ステップＳ４３では、逆変換実行部７が、変換記録に従って、移動したパスを元の位置に移動する。
【０１３５】
ステップＳ４５では、上記パス名の変更、パスの削除、パスの移動以外の変換の種類対応の逆変換、すなわち、例えば、前述したような、パスの新規作成、パスの併合、パスの分割などがあるときには、それぞれの種類対応の逆変換を行う。
【０１３６】
ステップＳ３４において、当該ＸＭＬ文書に対し全ての変換記録を適用したなら、次に、ステップＳ３５へ進み、逆変換が終了したＸＭＬ文書に対し後処理を施す（ステップＳ３６）。後処理とは、解析部９による当該ＸＭＬ文書の解析結果を参照し（当該ＸＭＬ文書の文書構造を定義したＤＴＤをチェックしながら）、逆変換後のＸＭＬ文書を構造化文書配信装置１の格納部２に格納する目的に適した記述形式に変換することである。その後、構造化文書配信装置１に送信する（ステップＳ３７）。
【０１３７】
構造化文書変換装置５から構造化文書配信装置１に送信されたＸＭＬ文書は、書き込み部４で受信し、格納部２へ格納される。
【０１３８】
次に、構造化文書変換装置５における、ＸＭＬ文書の文書構造の変換処理、逆変換処理について、具体的に説明する。
【０１３９】
構造化文書配装置１に格納されているＸＭＬ文書を構造化文書閲覧・編集装置１２で閲覧・編集する目的に達したＸＭＬ文書に変換する際には、変換に先立ち、複数の子要素を保持する要素を子要素の数と同じ要素に分割する前処理を行っている。これは、複数の子要素を保持する要素を含むパスのパス名の変更を伴う変換を行った際に、変換に曖昧さを残さないために行なわれる。
【０１４０】
例えば、下記のＸＭＬ文書（Ｄｏｃ１）を例に取る。
【０１４１】
0003692054.tif 000015
上記ＸＭＬ文書に下記変換規則を適用する場合を考察する。
【０１４２】
変換規則：パス「名前／姓／＄１」をパス「姓／＄１」に変換する。
【０１４３】
この変換規則を上記ＸＭＬ文書に適用すると、「名前」要素が複数の子要素すなわち、「姓」要素、「名」要素を保持するが、パス「名前／姓／Ａ１」に変換規則を適用した結果得られるパス「姓／＄１」は、「名前」要素を含んでいないために、変換実行後の「名」要素に関して曖昧さが残る。
【０１４４】
変換実施後の「名」要素に関して、例えば下記の二例が考えられる。
【０１４５】
0003692054.tif 000016
上記は、パス「名前／姓／Ａ１」に変換規則を適用した結果得られるパス「姓／＄１」が「名前」要素を含んでいないために、「名」要素は親要素を失って、ＸＭＬ文書から削除されるべきであるという立場に立った場合に得られるＸＭＬ文書である。
【０１４６】
0003692054.tif 000017
上記は、「パス「名前／姓／＄１」をパス「姓／＄１」に変換する」という変換規則を、「「名前」要素の子要素から「姓」要素を削除して、「「個人情報」要素の子要素として同一の要素値「Ａ２」を保持する「「姓」要素を追加する」という変換規則であると解釈する立場に立った場合に得られるＸＭＬ文書である。
【０１４７】
上記曖昧さを取り除くためには、構造化文書変換装置５に対して付加的な規則を与えなければならず、システム管理や、変換の処理が複雑になる。
【０１４８】
しかしながら、上記のＸＭＬ文書に複数の子要素を保持する要素をその子要素の数の要素に分割する前処理を施した結果得られる以下のＸＭＬ文書（Ｄｏｃ２）に対して行なうと、パス名の変更を伴う変換は、上記の曖昧さを残さない。
【０１４９】
0003692054.tif 000018
上記の通り、前処理は変換に曖昧さを残さない目的で行なわれるもので、文書構造自体が変更されるものではなく、順方向変換、逆変換といった文書構造の変換の際に処理し易いように文書構造の記述形式を変更するだけの処理であり、本願発明の要旨ではない。よって、以下の本願発明の実施形態の説明中では、前処理、後処理については、簡単な説明のみとする。
【０１５０】
なお、構造化文書閲覧・編集装置１２で閲覧・編集しているＸＭＬ文書を構造化文書配信装置１に格納する目的に適したＸＭＬ文書に変換する際に行う後処理は、上記前処理とは逆の処理であって、ＸＭＬ文書（Ｄｏｃ２）をＸＭＬ文書（Ｄｏｃ１）に示した形式に変換することである。
【０１５１】
さて、構造化文書配信装置１の格納部２から読み出され、構造化文書変換装置５へ、図７に示すような「住所録」情報のXML文書が送信されてきたとする。
【０１５２】
図７に示したＸＭＬ文書は、「住所録」という要素の子要素に複数の「メンバ」要素があり、さらに、各「メンバ」要素は、「名前」、「自宅」、「会社」という子要素から構成され、さらに、「名前」という要素は、「姓」「名」という子要素から構成され、「会社」という要素は「電話番号」「住所」という子要素から構成され、「自宅」という要素は「電話番号」「住所」という子要素から構成され、「住所」という要素は「郵便番号」「都道府県」「市町村」「丁目番地号」という子要素から構成された文書構造を持つ。図７に示す「住所録」情報には、現在のところ、２人分のメンバ情報がある。
【０１５３】
図１０は、図７の「住所録」情報の文書構造（木構造）を模式的に示したもので、ここでは、主に、１人分のメンバ情報の文書構造を構成する構成要素にて示している。各要素名の（  ）内の記述は、要素識別子である。
【０１５４】
構造化文書変換装置５で受信したＸＭＬ文書は、変換規則を用いて変換を行うのに先立ち、変換規則を用いた変換に適した記述形式に書き換える前処理を行う。ただし、前処理を行う際、元のＸＭＬ文書が保持する意味のまとまりを崩さない様にする必要がある。前処理を行った結果のＸＭＬ文書を図８に示す。
【０１５５】
図７に示すＸＭＬ文書は、複数の「メンバ」情報からなるので、前処理として、ここでは、各「メンバ」情報を構成する文書構造を、例えば、親子関係にある構成要素間の関係が明確になるようにタグを重複させた記述形式に書き換えている。が、文書構造自体は、図７、すなわち、図１０と同様である。
【０１５６】
こうして得られた前処理済のＸＭＬ文書に対して、変換規則を適用し、文書構造の変換されたＸＭＬ文書を得る。変換規則として、例えば図５に示すように、７つの変換規則があるとする。ただし、ここで「＄＋数字」は変数を表すものとする。ＸＭＬ文書に、図５の変換規則を適用した結果得られる変換記録を図６に示す。また、変換された結果得られるＸＭＬ文書を、図９に示す。図１１は、図９のＸＭＬ文書の文書構造を模式的に示したものである。
【０１５７】
この場合の、順方向変換について、図１０、図１１を参照して簡単に説明する。すなわち、図５の変換規則Ｒ１〜Ｒ５をこの順番に適用することにより、図１１に示すように、「メンバ」要素の子要素として、「姓」「名」「会社電話番号」「住所」「自宅電話番号」がこの順に並べられて、さらに、変換規則Ｒ６を適用して、「自宅電話番号」要素からなる部分文書を「会社電話番号」要素からなる部分文書の直後に移動させて、最後に、変換規則Ｒ７を適用して、パス名「自宅／住所」にて指定される部分文書を削除することにより、図１１に示すような文書構造に変換される。
【０１５８】
文書構造の変換されたＸＭＬ文書は、構造化文書閲覧・編集装置１２で閲覧・編集する目的に適した記述形式に書き換える後処理が施され、その結果、図１２に示すようなＸＭＬ文書が得られる。
【０１５９】
後処理の施されたＸＭＬ文書は構造化文書閲覧・編集装置１２上でユーザによって閲覧・編集され、編集された結果新たなＸＭＬ文書が得られる。ここでは、要素識別子が「ｍｅｍｂｅｒ１」である「メンバ」要素の子要素である「住所」要素の持つ値を変更する編集と、新たに「メンバ」情報（「姓」「名」「会社電話番号」「自宅電話番号」「住所」要素から構成される情報）を２人分追加する編集を考える。編集を行った結果得られたＸＭＬ文書を図１３に示す。
【０１６０】
構造化文書閲覧・編集装置１２で編集されたＸＭＬ文書は構造化文書変換装置５へ送信される。構造化文書変換装置５は、ＸＭＬ文書を受信後、変換記録を用いて逆変換を行うのに先立ち、変換記録を用いた変換に適した記述形式へ書き換える前処理が施される。この前処理は、前述した順方向変換の際の前処理と同様である。
【０１６１】
ＸＭＬ文書の前処理が終了したら、変換記録管理部１１で管理されている変換記録を後から順番に１つずつ調べ、変換記録に記録されている変換に対応する逆変換を行う。以下、図６に示した変換記録を１つずつ適用して逆変換を行い、ＸＭＬ文書が変更される様子を図１４〜図１６を参照して説明する。なお、図１４〜図１６では、要素識別子「ｍｅｍｂｅｒ１」の情報と、編集により追加された「メンバ」情報１人分に対する操作のみを示しているが、実際には、要素識別子「ｍｅｍｂｅｒ１」の情報と同様、要素識別子「ｍｅｍｂｅｒ２」の情報に対しても操作を行っているし、もう一つの「メンバ」情報に対しても同様である。
【０１６２】
（１）変換記録Ｍ７に対応する逆変換を行う。具体的には要素識別子「ｍｅｍｂｅｒ１−１３」、「ｍｅｍｂｅｒ２−１３」を持つ要素をそれぞれ最終要素として保持するパスにて指定される部分文書を挿入する（図１４参照）。この挿入する部分文書は「郵便番号」「都道府県」「市町村」「丁目番地号」要素から構成される「住所」要素を持つ「自宅」要素からなる部分文書である。
【０１６３】
（２）変換規則Ｍ６に対応する逆変換を行う。この際、要素識別子「ｍｅｍｂｅｒ１−１２」、「ｍｅｍｂｅｒ２−１２」をもつ要素をそれぞれ最終要素として保持する部分文書に加えて、編集により追加された２人分の「メンバ」情報についても逆変換が行われる。すなわち、図１４に示すように、各「メンバ」情報中の「メンバ」要素の子要素の「自宅電話番号」要素からなる部分文書を、同じく「メンバ」要素の子要素である「住所」要素からなる部分文書の次の位置に移動する。
【０１６４】
（３）変換記録Ｍ５に対応する逆変換を行う。この際、要素識別子「ｍｅｍｂｅｒ１−１２」、「ｍｅｍｂｅｒ２−１２」をもつ要素を最終要素として保持する部分文書に加えて、編集により追加された２人分の「メンバ」情報についても逆変換が行われる。すなわち、図１５に示すように、各「メンバ」情報中の「メンバ」要素の子要素の「自宅電話番号」要素からなる部分文書を、「自宅」要素とその子要素としての「電話番号」要素からなる部分文書に変更する。
【０１６５】
（４）変換記録Ｍ４に対応する逆変換を行う。この際、要素識別子「ｍｅｍｂｅｒ１−６」、「ｍｅｍｂｅｒ２−６」をもつ要素を最終要素として保持する部分文書に加えて、編集により追加された２人分の「メンバ」情報についても逆変換が行われる。すなわち、図１５に示すように、各「メンバ」情報中の「メンバ」要素の子要素の「住所」要素からなる部分文書を、「会社」要素とその子要素としての「住所」要素からなる部分文書に変更する。
【０１６６】
（５）変換記録Ｍ３に対応する逆変換を行う。この際、要素識別子「ｍｅｍｂｅｒ１−５」、「ｍｅｍｂｅｒ２−５」をもつ要素を最終要素として保持する部分文書に加えて、編集により追加された２人分の「メンバ」情報についても逆変換が行われる。すなわち、図１６に示すように、各「メンバ」情報中の「メンバ」要素の子要素の「会社電話番号」からなる部分文書を、「会社」要素とその子要素としての「電話番号」要素からなる部分文書に変更する。
【０１６７】
（６）変換記録Ｍ２に対応する逆変換を行う。この際、要素識別子「ｍｅｍｂｅｒ１−３」「ｍｅｍｂｅｒ２−３」をもつ要素を最終要素として保持する部分文書に加えて、編集により追加された２人分の「メンバ」情報についても逆変換が行われる。すなわち、図１６に示すように、各「メンバ」情報中の「メンバ」要素の子要素の「名」要素からなる部分文書を、「名前」要素とその子要素としての「名」要素からなる部分文書に変更する。
【０１６８】
（７）変換記録Ｍ1に対応する逆変換を行う。この際、要素識別子「ｍｅｍｂｅｒ１−２」、「ｍｅｍｂｅｒ２−２」をもつ要素を最終要素として保持する部分文書に加えて、編集により追加された２人分の「メンバ」情報についても逆変換が行われる。すなわち、図１６に示すように、各「メンバ」情報中の「メンバ」要素の子要素の「姓」要素からなる部分文書を、「名前」要素とその子要素としての「姓」要素からなる部分文書に変更する。
【０１６９】
変換記録を利用したＸＭＬ文書の文書構造の逆変換が終了したので、次に、ＸＭＬ文書を構造化文書配信装置１に格納する形式に適した記述形式に書き直す後処理を施す。この後処理は、たとえば、重複するタグをまとめるといったような処理を行う。
【０１７０】
後処理の施されたＸＭＬ文書が構造化文書配信装置１に送信され、構造化文書閲覧・編集装置１２で行った編集内容を構造化文書配信装置１に格納してあるＸＭＬ文書に反映させる。その際、本実施形態では、ＸＭＬ文書全体を構造化文書変換装置５から構造化文書配信装置１に送信するのではなく、編集のために読み出した際のＸＭＬ文書との差分のみを図１７に示すような形式の差分情報として送信する。
【０１７１】
図１７に示した差分情報では、編集により書き換えられた要素識別子「ｍｅｍｂｅｒ１」の「メンバ」要素の子要素の「会社」要素の子要素の「住所」要素からなる部分文書と、追加された２人分の「メンバ」情報に対応する部分文書とから構成されている。このように、差分文書には、１つの文書中の書き換えられた部分文書、追加された部分文書が含まれている。
【０１７２】
図１７に示した差分情報を受信した構造化文書配信装置１は、受信内容を構造化文書配信装置１に格納されているＸＭＬ文書に反映させる。その際、差分情報のうちユーザの編集によって新規作成された要素には識別子が付与されていない。そこで、識別子が付与されていない要素に対しては、構造化文書配信装置１でそのＸＭＬ文書内でユニークな識別子を付与した上で、ＸＭＬ文書に反映させる。
【０１７３】
（第２の実施形態）
上記第１の実施形態では、主に、本発明の主要な部分を説明するために、１つの構造化文書閲覧・編集装置１２により、１つの構造化文書を閲覧・編集する場合を示したが、本発明の構造化文書管理システムは、一般的には、複数の構造化文書閲覧・編集装置１２が、それぞれ異なる構造化文書を閲覧・編集するような利用形態で用いられるものである。そこで、第２の実施形態では、前述した第１の実施形態の説明を補足する意味で、より一般的な利用形態で用いられる構造化文書管理システムについて説明する。
【０１７４】
ます、第２の実施形態として、以下の３点を新たに追加して説明を行う。
【０１７５】
（１）変換規則管理部１０は、文書構造と構造化文書閲覧・編集装置１２（の種別）対応、すなわち、構造化文書の利用形態対応に１または複数の変換規則からなる変換規則の集合を記憶・管理する。ある１つの構造化文書の利用形態は、クライアントが携帯電話か、ＰＤＡかなどの端末機器の種別により異なる。一般に、すべての端末機器で利用するデータがすべて同一のデータ形式にしたがっていることは稀である上に、すべての端末で利用するデータがすべて同一であることも稀である。さらに、携帯電話では住所録の情報のうち名前と電話番号のみを利用するのに対して、ＰＤＡでは名前と電話番号に加えて、住所や電子メールアドレスを利用するといった違いもある。そこで、本実施形態のシステム構成において、ある構造化文書の文書構造をどの様な（利用形態の）文書構造に変換するかを記述した当該構造化文書の変換規則を、当該構造化文書を実際に利用する（閲覧・編集など）構造化文書閲覧・編集装置１２の種別に対応させて記憶・管理する場合について説明する。
【０１７６】
（２）完全に同じ１つのパス（部分的な文書構造）を生成する可能性がある複数の変換規則をまとめた変換規則グループを定義し、変換規則管理部１０は、変換規則の集合に、この変換規則グループが存在する場合には、変換規則の集合と、変換規則グループとを対応付けて記憶・管理する。なお、各変換規則グループには、逆変換の際に優先的に用いる変換規則はどれであるかが予め設定されている。
【０１７７】
（３）ＸＭＬ文書の構成要素のもつ属性として、要素識別子とポインタ属性を付与する。
【０１７８】
図１８は、本発明の第２の実施形態に係る構造化文書管理システムの構成例を示したものである。なお、図１８において、図１と同一部分には同一符号を付し、異なる部分についてのみ説明する。すなわち、構造化文書配信装置１の格納部２には、文書構造の異なる複数の構造化文書が格納されていて、複数の構造化文書閲覧・編集装置１２が、この格納部２に格納されている構造化文書へアクセス可能なようになっている。
【０１７９】
図１９は、格納部２の構造化文書の格納例を模式的に示したもので、複数の構造化文書のデータファイルが、そのそれぞれが持つ文書構造にて分類されて格納部２に格納されている。例えば、図１９に示すように、異なる文書構造のそれぞれの識別情報（例えば、「住所録」、「スケジュール」など）と、それに対応する構造化文書のデータファイル（例えば、「住所録Ａ」「住所録Ｂ」、「スケジュールＡ」、「スケジュールＢ」などのファイル名を持つデータファイル）とが対応付けて記憶されている。
【０１８０】
また、ある１つの構造化文書の文書構造を変換するために用いられる１または複数の変換規則を変換規則の集合と呼ぶ。例えば、図５に示した７つの変換規則を１つの変換規則の集合と呼ぶ。
【０１８１】
構造化文書変換装置５で構造化文書の文書構造を変換する際、一般的に、変換対象となる構造化文書が、構造化文書配信装置１に格納されている複数のＸＭＬ文書のうちどれであるか（どの文書構造をもつ構造化文書であるか）、また、構造化文書を閲覧・編集する構造化文書閲覧・編集装置１２は、例えば、携帯電話、ＰＤＡ、パーソナルコンピュータなどのうちのどの種別に対応するかによって、適用する変換規則の集合は異なる。そこで、変換規則管理部１０は、例えば、図２０に示すように、文書構造と、構造化文書を閲覧・編集する構造化文書閲覧・編集装置１２とに対応付けて、それらに対応する変換規則の集合を予め記憶・管理するようになっている。
【０１８２】
例えば、図２０では、各変換規則の集合（図２０では、簡単のため、変換規則の集合を、Ｒ（文書構造の識別情報、構造化文書閲覧・編集装置の種別の識別情報）と記述している）を、文書構造の識別情報と、構造化文書閲覧・編集装置１２の（例えば種別）の識別情報とに対応付けて記憶するようになっている。
【０１８３】
変換規則管理部１０は、例えば、図２０に示すようなテーブルを記憶・管理し、構造化文書の文書構造の変換を行う際には、変換対象のＸＭＬ文書の文書構造は何であるか、変換後のＸＭＬ文書を閲覧・編集する構造化文書閲覧・編集装置１２の種別が何であるかに応じて、適切な変換規則の集合を選択するようになっている。
【０１８４】
また、構造化文書閲覧・編集装置１２から構造化文書配信装置１に対し文書の読み出し要求を行う場合には、例えば、読み出したい構造化文書のファイル名の他に、その文書の文書構造の識別情報と要求元の構造化文書閲覧・編集装置１２の種別を表す識別情報とが含まれていることが望ましい。
【０１８５】
次に、変換規則グループについて説明する。
【０１８６】
例えば、「住所録」という識別情報を持つ文書構造のＸＭＬ文書を「ＴＥ１」という識別情報をもつ構造化文書閲覧・編集装置１２にて閲覧・編集するために、当該ＸＭＬ文書の文書構造を変換するめに用いる変換規則の集合が図２０から、Ｒ（住所録、ＴＥ１）であったとする。この変換規則の集合のうち、ＸＭＬ文書中のパス名を別のパス名に変更する２つの変換規則が、完全に同じパス名を生成する場合がある。
【０１８７】
例えば、その２つの変換規則が、以下に示す２つであったとする。
【０１８８】
変換規則Ｒ２０１：パス「会社／住所／＄１」を「住所／＄１」に変更する。
【０１８９】
変換規則Ｒ２０２：パス「自宅／住所／＄１」を「住所／＄１」に変更す。
【０１９０】
また、以下に示すＸＭＬ文書が構造化文書配信装置１に格納されているとする。
【０１９１】
0003692054.tif 000019
上記ＸＭＬ文書に上記変換規則Ｒ２０１、Ｒ２０２を適用した結果得られるＸＭＬ文書は下記の通りである。
【０１９２】
0003692054.tif 000020
上記の例からも分かる通り、２つの変換規則が完全に同じパスを生成する場合が存在する。
【０１９３】
逆に、構造化文書閲覧・編集装置１２で下記のＸＭＬ文書を新規作成した場合を考える。
【０１９４】
0003692054.tif 000021
上記ＸＭＬ文書を上記変換規則Ｒ２０１、Ｒ２０２（より厳密には、上記変換規則を適用して文書構造を変換した際に用いた変換記録）を用いて、逆変換を行おうとすると、パス「住所／Ａ２」は、変換規則Ｒ２０１に対応する逆変換を行うことも、変換規則Ｒ２０２に対応する逆変換を行うことも可能であるので、２種類存在する変換規則のうちどちらを適用するかを決定しないと逆変換を行うことができない。そこで、完全に同じ１つのパスを生成する可能性がある複数の変換規則をまとめた変換規則グループを定義し、同一の変換規則グループに属する変換規則のうち、逆変換を行う際に優先的に利用されるものを定める。
【０１９５】
例えば、上記２種類の変換規則を１つの変換規則グループにまとめて、その識別情報を、例えば「変換規則グループＧ１」とし、上記２つの変換規則のうち、変換規則Ｒ２０１を逆変換の際に優先的に用いると予め定めるものとする。また、この「変換規則グループＧ１」は、変換規則の集合Ｒ（住所録、ＴＥ１）に存在するものとする。この場合、変換規則管理部１０は、例えば、図２１に示すようなテーブルを予め記憶する。
【０１９６】
図２１に示すように、ある変換規則の集合に、完全に同じ１つのパスを生成する可能性がある複数の変換規則が存在する場合は、それらを変換規則グループとしてまとめ、逆変換の際に、この変換規則グループ中のどの変換規則を優先的に用いるかという優先度を予め設定して管理することにより、ＸＭＬ文書を逆変換する際に適用可能な変換規則が複数存在する場合であっても、どの変換規則を適用するか自動的に決定することが可能である。上記のＸＭＬ文書を逆変換した結果は下記の通りである。
【０１９７】
0003692054.tif 000022
次に、ＸＭＬ文書の要素のもつ属性について説明する。すなわち、要素属性には、識別子属性と、ポインタ属性とがある。
【０１９８】
識別子属性は、第１の実施形態ですでに説明を行っているので、ここではポインタ属性について説明を行う。ポインタ属性は複数の要素の中から特定の要素を指し示す目的で用いられる。
【０１９９】
例えば、要素にポインタ属性を与える場合、その要素の開始タグに属性情報として「表示＝“ｔｒｕｅ”」あるいは「表示＝“ｆａｌｓｅ”」を書き込みこととする。構造化文書変換装置５において、部分文書要素を削除するような文書構造の変換を行う必要のある構造化文書閲覧・編集装置１２において、ポインタ属性値が「ｔｒｕｅ（Ｔ）」である要素からなる部分文書は残し、「ｆａｌｓｅ（Ｆ）」である要素からなる部分文書を削除するといった制御の目的で用いられる。
【０２００】
次に、このポインタ属性の用途について説明する。
【０２０１】
構造化文書配信装置１から送信されてきたＸＭＬ文書を構造化文書変換装置５において、変換規則を用いて文書構造を変換すると、変換によって得られたＸＭＬ文書は、変換時に削除された部分文書を含んでいない。したがって、構造化文書配信装置１から送信されたＸＭＬ文書に含まれる情報は、文書構造の変換後のＸＭＬ文書にも含まれる情報と、変換後のＸＭＬ文書には含まれない情報とに分類できる。
【０２０２】
変換後のＸＭＬ文書を構造化文書閲覧・編集装置１２において編集して新たなＸＭＬ文書を得た際、実際に編集されるのは、構造化文書配信装置１から送信されたＸＭＬ文書に含まれる情報のうち、変換後のＸＭＬ文書にも含まれる情報のみであるが、編集を行ったユーザの意図は、構造化文書配信装置１から送信されたＸＭＬ文書に含まれる情報のうち、変換後のＸＭＬ文書にも含まれる情報の変更である場合と、構造化文書配信装置１から送信されてきたＸＭＬ文書に含まれる情報のうち現在は変換後のＸＭＬ文書には含まれない情報を、次回から構造化文書配信装置１から送信されたＸＭＬ文書を構造化文書変換装置で変換する際には、変換後の構造化文書にも含まれる情報にする変更である場合の２種類が存在する。
【０２０３】
以下、図２２を参照しながら説明する。
【０２０４】
例えば、以下に示す個人情報を表したＸＭＬ文書を考える。
【０２０５】
0003692054.tif 000023
このＸＭＬ文書は、図２２（ａ）に示すように、「名前」「電子メール」「電話番号」要素を子要素として持つ文書構造であり、「電子メール」要素にはポインタ属性値「ｔｒｕｅ」（以下、簡単に「Ｔ」と表す）が与えられ、「電話番号」要素にはポインタ属性値「ｆａｌｓｅ」（以下、簡単に「Ｆ」と表す）が与えられているので、「電子メール」要素からなる部分文書と「電話番号」要素からなる部分文書のうち、後者を削除することが予め設定されている。
【０２０６】
このＸＭＬ文書に対し以下に示す変換規則を用いて変換したとする。
【０２０７】
変換規則Ｒ３０１：パス「電子メール(表示＝“ｔｒｕｅ”)／＄１」をパス「電子メール／＄１」に変更する。
【０２０８】
変換規則Ｒ３０２：パス「電子メール（表示＝“ｆａｌｓｅ”）／＄１」を削除する。
【０２０９】
変換規則Ｒ３０３：パス「電話番号（表示＝“ｔｒｕｅ”）／＄１」をパス「電話番号／＄１」に変更する。
【０２１０】
変換規則Ｒ３０４：パス「電話番号（表示＝“ｆａｌｓｅ”）／＄１」を削除する。
【０２１１】
ただし、ここで、変換規則の記述において、要素に付与される属性情報を（  ）内で記述した。すると、上記ポインタ属性値から、「電話番号」要素からなる部分文書が削除され、図２２（ｂ）に示すような文書構造のＸＭＬ文書が得られる。このときのＸＭＬ文書は、以下の通りである。
【０２１２】
0003692054.tif 000024
また、上記変換規則Ｒ３０１〜Ｒ３０４を用いて、ＸＭＬ文書の文書構造の変換を行った際に得られる変換記録は下記の通りである。
【０２１３】
変換記録Ｍ３０１：変換規則Ｒ３０１を要素識別子「ｐｉ３」の要素を最終要素に持つパスに適用した。
【０２１４】
変換記録Ｍ３０２：変換規則Ｒ３０２を適用しなかった。
【０２１５】
変換記録Ｍ３０３：変換規則Ｒ３０３を適用しなかった。
【０２１６】
変換記録Ｍ３０４：変換規則Ｒ３０４を要素識別子「ｐｉ４」の要素を最終要素に持つパスに適用した。
【０２１７】
引き続き変換後のＸＭＬ文書を構造化文書閲覧・編集装置１２上で、下記のような、「電子メール」要素からなる部分文書を「電話番号」要素からなる部分文書に書き換えるような編集を行ったとする（図２２（ｃ）参照）。
【０２１８】
0003692054.tif 000025
上記ＸＭＬ文書に変換記録Ｍ３０１〜Ｍ３０４を後から順番に１つずつ適用し、逆変換を行う様子を以下に示す。
【０２１９】
（１）変換記録Ｍ３０４を参照し、変換規則Ｍ３０４適用時に削除した部分文書（<電話番号  id=”pi4”  連絡先=”false”>111-1111</電話番号>）を元に戻す。この結果、図２２（ｄ）に示すように、順方向変換時に削除した「電話番号」要素からなる部分文書が復元されて（このとき、要素識別子、ポインタ属性値もそのままの状態で復元される）、得られるＸＭＬ文書は下記の通りである。
【０２２０】
0003692054.tif 000026
（２）変換記録Ｍ３０３を参照する。ここで、順方向の変換時には変換規則Ｒ３０３は適用しなかったが、上記ＸＭＬ文書中には、変換規則Ｒ３０３対応の順方向変換を行うことによって生成されるはずの「電話番号」要素が存在する。しかし、「電話番号」要素には、変換規則Ｒ３０３で示しているようなポインタ属性値が与えられていない。そこで、ここでは、当該「電話番号」要素にポインタ属性（「表示する＝“ｔｒｕｅ”」）が追加設定される（図２２（ｅ）参照）。ここで、順方向の変換時には変換規則Ｒ３０３は適用しなかったが、逆変換時には変換規則Ｒ３０３を利用している。この結果得られるＸＭＬ文書は下記の通りである。
【０２２１】
0003692054.tif 000027
（３）変換記録Ｍ３０２を参照する。ここでは、変換規則Ｒ３０２は適用していないので、実際には何もしない。
【０２２２】
（４）変換記録Ｍ３０１を参照し、逆変換を行う。ただし。上記ＸＭＬ文書中に変換規則Ｒ３０１対応の順方向変換を行うことによって生成されるはずの「電子メール」要素が存在しないし、要素識別子「ｉｄ３」を持つ要素も存在しないので、実際には何もしない。
【０２２３】
変換記録Ｍ３０１〜Ｍ３０４を全て用いてＸＭＬ文書の逆変換を行った結果は下記の通りである（図２２（ｅ）参照）。
【０２２４】
0003692054.tif 000028
上記ＸＭＬ文書には、「電話番号」要素という、ポインタ属性を有し、しかも同じ値を持つ同じ要素名の構成要素からなる２つの部分文書が存在する（<電話番号  表示=”true”>111-1111</電話番号>と、<電話番号  id=”pi4”  表示=”false”>111-1111</電話番号>）。
【０２２５】
このように、逆変換を実行した結果、１つのＸＭＬ文書中に、ポインタ属性をもつとともに、同じ値を持つ同じ要素名の構成要素からなる複数の部分文書が存在する場合には、上記ＸＭＬ文書は構造化文書配信装置１に最終的に反映されるべきＸＭＬ文書ではなく、構造化文書閲覧・編集装置１２上で行った編集の意図は以下に示すＸＭＬ文書を構造化文書配信装置１に最終的に反映することであるとみなす。
【０２２６】
0003692054.tif 000029
すなわち、上記のような編集を行ったユーザからすれば、順方向変換時に削除せずに残してほしい部分文書は「電子メール」要素からなる部分文書から、「電話番号」要素からなる部分文書に変更したいので、ポインタ属性値を変更するような処理（これを微調整、あるいは微調整処理と呼ぶ）を行う必要性があると判断する。すなわち、この微調整処理を行うことによって、「電子メール」要素に属性情報「表示＝”ｔｒｕｅ”」を与え、「電話番号」要素に属性情報「表示＝”ｔｒｕｅ”」を与える。
【０２２７】
図２３は、第２の実施形態に係る構造化文書変換装置５の主に逆変換実行部７の処理動作を説明するためのフローチャートである。なお、図２３において、図４と異なる部分についてのみ説明する。すなわち、図４のステップＳ３５が図２３では、ステップＳ３５ａに置き換わっている。
【０２２８】
図２３のステップＳ３５ａでは、逆変換実行部７では、逆変換を終了した時点で、逆変換を実行した結果、１つにＸＭＬ文書中に、ポインタ属性をもつとともに、同じ値を持つ同じ要素名からなる部分文書が複数存在する場合には、上記のようなユーザの意図を察し、ポインタ属性値を変更する微調整を行うようになっている。
【０２２９】
次に、図２４に示すフローチャートを参照して、上記微調整処理について説明する。
【０２３０】
逆変換後の構造化文書中に、順方向変換実行時に、パスの削除により削除された（逆変換により追加された）部分文書と同じ部分文書（文書構造と要素名と各要素の値が同じ部分文書）が存在するときは（ステップＳ５１）、この逆変換により追加された部分文書中のポインタ属性値を変更する（ステップＳ５２）。
【０２３１】
次に、編集された部分文書を編集前の状態に戻し、その中のポインタ属性値を変更する（ステップＳ５３）。
【０２３２】
先に示したＸＭＬ文書、すなわち、下記に示すＸＭＬ文書を用いて、上記の微調整が行われる様子を説明する。
【０２３３】
0003692054.tif 000030
上記ＸＭＬ文書に対し編集を行われた後、変換記録Ｍ３０１〜Ｍ３０４を用いて逆変換がなされ、下記に示したＸＭＬ文書が得られることは前述のとおりである。
【０２３４】
0003692054.tif 000031
さて、このＸＭＬ文書において、順方向変換時に削除された（逆方向の変換時に追加された）部分文書、すなわち、パス「電話番号／１１１−１１１１」に合致するものを探索する。探索を行った結果、これと同じ部分文書が存在することが確認される。確認された部分文書は、
<電話番号  表示=”true”>111-1111</電話番号>
である。
【０２３５】
そこで、逆変換により追加（復元）された方の部分文書、すなわち、
<電話番号  id=”pi4”  表示=”false”>111-1111</電話番号>
のポインタ属性を「ｔｒｕｅ」に変更する。
【０２３６】
さらに、構造化文書閲覧・編集部１４で編集された部分文書、すなわち、
<電話番号  表示=”true”>111-1111</電話番号>
を編集が行われる前の元の状態、すなわち、
<電子メール  id=”pi3”  表示=”true”>A2</電子メール>
に戻す。また、さらに、ポインタ属性の値を「ｆａｌｓｅ」に変更する。
【０２３７】
その結果、構造化文書配信装置１から読み出されたときに、「電子メール」要素と「電話番号」要素とに設定されていたポインタ属性値が書き換えられた以下に示すようなＸＭＬ文書が得られる。
【０２３８】
0003692054.tif 000032
このように、変換記録を用いた逆変換を行う際に、ＸＭＬ文書中の特定のパスに対して複数の構造化文書変換記録が適用可能である場合には、変換規則グループにて定義される優先順位に従った適用を行う点や、構造化文書閲覧・編集装置１２上でポインタ属性に関連する要素が編集された場合には微調整が必要である点に注意を要する。
【０２３９】
次に、具体的なＸＭＬ文書に即して、ＸＭＬ文書が構造化文書変換装置５で順方向変換される様子と逆変換される様子を説明する。
【０２４０】
格納部２から構造化文書変換装置５へ、図２７に示すようなＸＭＬ文書が送信されたとする。
【０２４１】
構造化文書変換装置５で受信したＸＭＬ文書は、変換規則を用いて変換を行うのに先立ち、変換規則を用いた変換に適した形式に前処理の変換を行う。ただし、前処理を行う際、元のＸＭＬ文書が保持する意味のまとまりを崩さない範囲で変換を行う必要がある。
【０２４２】
前処理済のＸＭＬ文書に対して変換規則を適用し、構造化文書閲覧・編集装置１２で利用する目的に適した形式のＸＭＬ文書を得る。ここで用いる変換規則の集合を図２５に示す。図２５に示すように、変換規則Ｒ４０５とＲ４０６とは変換規則グループＧ５として定義されていて、逆変換の際には、変換規則Ｒ４０５を優先的に用いるように予め設定されている。なお、図２５の変換規則の記述において、「＄＋数字」は変数を表すものとする。
【０２４３】
図２７に示した「住所録」情報を表したＸＭＬ文書は、図２８に示すような２人分の「メンバ」情報から構成された文書構造を持つ。なお、図２８において、各構成要素のもつ要素識別子、ポインタ属性値を（  ）内に示している。
【０２４４】
図２７に示したＸＭＬ文書に対し、図２５に示した変換規則の集合を適用した結果得られる変換記録を図２６に示す。
【０２４５】
図２５に示した変換規則の集合を用いた順方向変換について簡単に説明する。図２５の変換規則Ｒ４０１〜Ｒ４０４をこの順番に適用することにより、各「メンバ」情報中のパス名「会社／住所」にて指定される部分文書と、パス名「自宅／住所」にて指定される部分文書とのうちポインタ属性値が「ｔｒｕｅ」と設定されている方を残して、他方は削除する。また、ポインタ属性は削除する。そして、変換規則Ｒ４０５を適用して、「電子メール」要素からなる部分文書を「連絡先」要素からなる部分文書に変更し、次に、変換規則Ｒ４０６を適用して、「携帯電話番号」要素からなる部分文書を「連絡先」要素からなる部分文書に変更する。その結果、図３０に示すような文書構造のＸＭＬ文書に変換される。
【０２４６】
変換規則を用いて文書構造の変換された図３０に示したＸＭＬ文書は、構造化文書閲覧・編集装置１２で閲覧・編集する目的に適した形式に後処理の変換が施される。
【０２４７】
後処理の施されたＸＭＬ文書は構造化文書閲覧・編集装置１２上でユーザによって閲覧・編集され、編集された結果新たなＸＭＬ文書が得られる。ここでは、図３１に示すように、要素識別子が「ｍｅｍｂｅｒ１」である要素からなる部分文書中の「住所」要素の値「Ａ２」を「Ａ３」に変更する編集と、新たにメンバを２人追加する編集がなされたとする。
【０２４８】
構造化文書閲覧・編集装置１２で編集されたＸＭＬ文書は構造化文書変換装置５へ送信される。構造化文書変換装置５は、ＸＭＬ文書を受信後、変換記録を用いて逆変換を行うのに先立ち、変換記録を用いた変換に適した形式に前処理の変換を行う。
【０２４９】
ＸＭＬ文書の前処理が終了したら、変換記録管理部１１で管理されている図２６に示したような変換記録を後から順番に１つずつ調べ、変換記録に記録されている変換に対応する逆変換を行う。以下、変換記録を１つずつ適用した際に、ＸＭＬ文書が変更される様子を図３２〜図３４を参照して説明する。
【０２５０】
（１）変換記録Ｍ４０５に対応する逆変換を行う。変換記録Ｍ４０５には、変換規則Ｒ４０５の適用に関する記録と、変換規則Ｍ４０６の適用に関する記録の両方が含まれており、これら２つの変換規則のうち、変換規則Ｍ４０５を優先的に用いることが定められている（図２５参照）。そこで、要素識別子「ｍｅｍｂｅｒ１−６」をもつ要素に対して変換規則Ｍ４０５の逆変換を行い、次に、要素識別子「ｍｅｍｂｅｒ２−６」に対して変換規則Ｍ４０６の逆変換を行う（図３２参照）。
【０２５１】
次に、「名前」要素に値「Ｃ１」を持つ「メンバ」情報中の「連絡先」要素からなる部分文書と、「名前」要素に値「Ｄ１」を持つ「メンバ」情報中の「連絡先」要素からなる部分文書に対し、逆変換を行う。逆変換を行う場合、これら部分文書は、変換規則Ｒ４０５に対応する逆方向の変換、変換規則Ｒ４０６に対応する逆方向の変換の両方に合致するが、これら２通りの変換規則のうち、優先的に用いることが予め指定されている変換規則Ｒ４０５の逆変換を行う。その結果、双方の「メンバ」情報中の「連絡先」要素からなる部分文書は「電子メール」要素からなる部分文書に変更される（図３２参照）。
【０２５２】
（２）変換記録Ｍ４０４に対応する逆変換を行う。すなわち、図３３に示すように、要素識別子「ｍｅｍｂｅｒ１−４」からなる部分文書を復元する。
【０２５３】
（３）変換記録Ｍ４０３に対応する逆変換を行う。この場合、図３３に示すように、要素識別子「ｍｅｍｂｅｒ２−５」を最終要素として持つ部分文書に加えて、「名前」要素に値「Ｄ１」を持つ「メンバ」情報も逆変換の対象になる。その結果、要素識別子「ｍｅｍｂｅｒ２−４」を持つ「自宅」要素にポインタ属性「ｔｒｕｅ」が設定され、さらに、編集により新たに追加された「メンバ」情報中の「自宅」要素にもポインタ属性「ｔｒｕｅ」が設定される。
【０２５４】
（４）変換記録Ｍ４０２に対応する逆変換を行う。すなわち、図３４に示すように、要素識別子「ｍｅｍｂｅｒ２−２」からなる部分文書を復元する。
【０２５５】
（５）変換記録Ｍ４０１に対応する逆変換を行う。この場合、図３４に示すように、要素識別子「ｍｅｍｂｅｒ１−３」を最終要素として持つ部分文書に加えて、「名前」要素に値「Ｃ１」を持つ「メンバ」情報も逆変換の対象になる。その結果、要素識別子「ｍｅｍｂｅｒ１−２」を持つ「会社」要素にポインタ属性「ｔｒｕｅ」が設定され、さらに、編集により新たに追加された「メンバ」情報中の「会社」要素にもポインタ属性「ｔｒｕｅ」が設定される。
【０２５６】
以上で、変換記録を利用したＸＭＬ文書の逆変換が終了した。
【０２５７】
図３４からもわかるように、このＸＭＬ文書には、ポインタ属性をもつとともに、同じ値をもつ同じ要素名からなる部分文書が２つ存在する。すなわち、図３５に示すように、要素識別子「ｍｅｍｂｅｒ１」をもつ構成要素からなる「メンバ」情報中にある「会社」要素からなる部分文書中の「住所」要素からなる部分文書と、「自宅」要素からなる部分文書中の「住所」要素からなる部分文書である。
【０２５８】
そこで、最後に、ＸＭＬ文書の微調整を行う。図２４に従って説明を行う。まず、逆変換により追加（復元）された部分文書、すなわち図３５に示すように、「自宅」要素からなる部分文書中のポインタ属性値を「ｔｒｕｅ」に変更し（ステップＳ５２）、次に、構造化文書閲覧・編集部１４で編集された部分文書、すなわち、「会社」要素から部分文書を編集が行われる前の元の状態、すなわち「住所」要素の値を「Ａ３」から「Ａ２」に戻す。さらに、ポインタ属性の値を「ｆａｌｓｅ」に変更する（ステップＳ５３）。
【０２５９】
このように、微調整の施されたＸＭＬ文書は、次に、構造化文書配信装置１に格納する形式に適した形式に後処理の変換を行う。
【０２６０】
この段階において、ユーザの編集によって新規作成された要素には識別子が付与されていない。識別子が付与されていない要素に対して、書き込み部４が、一意な識別子を付与する。図３６に示したＸＭＬ文書はすべての要素に識別子が付与されたＸＭＬ文書である。このＸＭＬ文書が最終的に構造化文書配信装置に格納されるべきものである。
【０２６１】
以上説明しように、上記第１〜第２の実施形態によれば、異なる文書構造の複数の構造化文書のうち所望の構造化文書を、文書構造毎に予め定められた構造化文書の利用形態対応の変換規則に従って、利用形態対応の文書構造に変換し、その際、当該構造化文書中の変換規則を適用した部分文書とその部分文書に適用した変換規則とを変換記録として記録しておく。そして、当該利用形態対応の文書構造に変換された構造化文書に対し編集を行った結果得られた構造化文書を変換記録と変換規則とに基づき、元の文書構造に変換することにより、１つの文書構造の構造化文書を、その構造化文書の利用形態対応の複数の異なる文書構造に変換したり、利用形態対応の異なる文書構造を元の同じ１つの文書構造へ変換したりすることが容易に行える。
【０２６２】
本発明の実施の形態に記載した本発明の手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フロッピー（登録商標）ディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、半導体メモリなどの記録媒体に格納して頒布することもできる。すなわち、構図化文書配信装置１の格納部２を除く全ての構成部、構造化文書変換装置５の全ての構成部、構造化文書閲覧、編集装置１２の全ての構成部は、コンピュータに実行させることのできるプログラムとして実現可能である。
【０２６３】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、上記実施形態には種々の段階の発明は含まれており、開示される複数の構成用件における適宜な組み合わせにより、種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題（の少なくとも１つ）が解決でき、発明の効果の欄で述べられている効果（のなくとも１つ）が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【０２６４】
【発明の効果】
以上説明したように、本発明によれば、１つの文書構造の構造化文書を、その構造化文書の利用形態対応の複数の異なる文書構造に変換したり、利用形態対応の異なる文書構造を元の同じ１つの文書構造へ変換したりすることが容易に行える。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係る構造化文書管理システムの構成例を示した図。
【図２】構造化文書変換装置の主に変換実行部の処理動作について説明するためのフローチャート。
【図３】構造化文書閲覧・編集装置の処理動作を説明するためのフローチャート。
【図４】構造化文書変換装置の主に逆変換実行部の処理動作を説明するためのフローチャート。
【図５】変換規則の集合の一例を示した図。
【図６】変換記録の一例を示した図。
【図７】  XML文書の具体例を示した図。
【図８】図７のＸＭＬ文書に対し、変換規則を用いた変換に適した記述形式に書き換える前処理を施した結果を示した図。
【図９】変換規則を適用して文書構造の変換された結果を示した図。
【図１０】図７のＸＭＬ文書の文書構造を示した図。
【図１１】図９のＸＭＬ文書の文書構造を示した図。
【図１２】文書構造の変換されたＸＭＬ文書に対し、構造化文書閲覧・編集装置で閲覧・編集する目的に適した記述形式に書き換える後処理を施さした結果のＸＭＬ文書を示した図。
【図１３】要素識別子が「ｍｅｍｂｅｒ１」である要素の子要素である「住所」要素の持つ値を変更する編集と、新たにメンバを２人追加する編集を行った結果得られたＸＭＬ文書を示した図。
【図１４】図６に示した変換記録を１つずつ適用して逆変換を行い、ＸＭＬ文書が変更される様子を説明するための図。
【図１５】図６に示した変換記録を１つずつ適用して逆変換を行い、ＸＭＬ文書が変更される様子を説明するための図。
【図１６】図６に示した変換記録を１つずつ適用して逆変換を行い、ＸＭＬ文書が変更される様子を説明するための図。
【図１７】構造化文書変換装置から構造化文書配信装置に送信される差分文書の一例を示した図。
【図１８】本発明の第２の実施形態に係る構造化文書管理システムの構成例を示した図。
【図１９】格納部２の構造化文書の格納例を模式的に示した図。
【図２０】変換規則の集合の記憶例を示した図。
【図２１】変換規則グループの記憶例を示した図。
【図２２】ポインタ属性の用途を説明するための図。
【図２３】構造化文書変換装置の主に逆変換実行部の処理動作を説明するためのフローチャート。
【図２４】微調整処理について説明するためのフローチャート。
【図２５】変換規則の集合の記憶例を示した図。
【図２６】変換記録の記憶例を示した図。
【図２７】格納部に格納されているＸＭＬ文書の具体例を示した図。
【図２８】図２７のＸＭＬ文書の文書構造を示した図。
【図２９】図２７に示したＸＭＬ文書に対し、図２５に示した変換規則の集合を適用して文書構造を変換した結果得られたＸＭＬ文書を示した図。
【図３０】図２９のＸＭＬ文書の文書構造を示した図。
【図３１】図２９のＸＭＬ文書の編集内容を説明するための図。
【図３２】変換記録を１つずつ適用した際に、ＸＭＬ文書が変更される様子を説明するための図。
【図３３】変換記録を１つずつ適用した際に、ＸＭＬ文書が変更される様子を説明するための図。
【図３４】変換記録を１つずつ適用した際に、ＸＭＬ文書が変更される様子を説明するための図。
【図３５】微調整処理について説明するための図。
【図３６】最終的に構造化文書配信装置に格納される、すべての要素に識別子が付与されたＸＭＬ文書の例を示した図。
【符号の説明】
１…構造化文書配信装置
２…格納部
３…読み出し部
４…書き込み部
５…構造化文書変換装置
６…変換実行部
７…逆変換実行部
８…一時格納部
９…解析部
１０…変換規則管理部
１１…変換規則管理部
１２…構造化文書閲覧・編集装置
１３…解析部
１４…閲覧・編集実行部
【図１】
0003692054.tif 000033
【図２】
0003692054.tif 000034
【図３】
0003692054.tif 000035
【図４】
0003692054.tif 000036
【図５】
0003692054.tif 000037
【図６】
0003692054.tif 000038
【図７】
0003692054.tif 000039
【図８】
0003692054.tif 000040
【図９】
0003692054.tif 000041
【図１０】
0003692054.tif 000042
【図１１】
0003692054.tif 000043
【図１２】
0003692054.tif 000044
【図１３】
0003692054.tif 000045
【図１４】
0003692054.tif 000046
【図１５】
0003692054.tif 000047
【図１６】
0003692054.tif 000048
【図１７】
0003692054.tif 000049
【図１８】
0003692054.tif 000050
【図１９】
0003692054.tif 000051
【図２０】
0003692054.tif 000052
【図２１】
0003692054.tif 000053
【図２２】
0003692054.tif 000054
【図２３】
0003692054.tif 000055
【図２４】
0003692054.tif 000056
【図２５】
0003692054.tif 000057
【図２６】
0003692054.tif 000058
【図２７】
0003692054.tif 000059
【図２８】
0003692054.tif 000060
【図２９】
0003692054.tif 000061
【図３０】
0003692054.tif 000062
【図３１】
0003692054.tif 000063
【図３２】
0003692054.tif 000064
【図３３】
0003692054.tif 000065
【図３４】
0003692054.tif 000066
【図３５】
0003692054.tif 000067
【図３６】
0003692054.tif 000068