(57)【要約】【課題】管理装置で管理される構造化文書を更新する際の記憶装置の使用量をより低減することを目的とする。【解決手段】構造化文書を管理する管理装置から構造化文書を取得し、構造化文書からユーザ操作に対応した変更に用いられるデータを取り出して構造化情報を生成して記憶装置に格納し、構造化情報を変更するユーザ操作を受け付け、変更された内容を示す変更情報を構造化情報に反映し、構造化文書を構成する各部分を示す複数の内容情報のうち、変更情報に関わる部分を示す内容情報を識別する識別情報を記憶装置に格納し、識別情報をもとに識別される内容情報を管理装置から取得し、内容情報と構造化情報とをマージし、マージした情報を管理装置に送信することによって課題を解決する。【選択図】図３
2012128516.tif 000002
【特許請求の範囲】
【請求項１】
構造化文書を管理する管理装置から前記構造化文書を取得し、前記構造化文書からユーザ操作に対応した変更に用いられるデータを取り出して構造化情報を生成して記憶装置に格納する構造化情報格納手段と、
前記構造化情報を変更するユーザ操作を受け付け、変更された内容を示す変更情報を前記構造化情報に反映し、前記構造化文書を構成する各部分を示す複数の内容情報のうち、前記変更情報に関わる部分を示す内容情報を識別する識別情報を前記記憶装置に格納する変更情報格納手段と、
前記識別情報をもとに識別される内容情報を前記管理装置から取得する取得手段と、
前記内容情報と前記構造化情報とをマージするマージ手段と、
前記マージ手段でマージされた情報を前記管理装置に送信する送信手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記送信手段は、前記マージ手段でマージされた情報をもとに前記構造化文書の内容、及び構造を識別するタグ情報を生成して前記管理装置に送信することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記構造化情報には、前記構造化文書の各内容情報にアクセスするための位置情報を示すリンク情報が設けられ、
前記取得手段は、前記構造化情報に設けられた前記内容情報のリンク情報に従って前記内容情報を前記管理装置から取得することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記マージ手段は、前記内容情報を処理の単位に変換したイベント情報と前記構造化情報を処理の単位に変換したイベント情報とを比較して、双方のイベント情報が同じときは何れか一方のイベント情報、双方のイベント情報が互いに異なるときは前記内容情報のイベント情報、双方のイベント情報が競合するときは前記構造化情報のイベント情報を用いるマージを行うことを特徴とする請求項２又は３に記載の情報処理装置。
【請求項５】
前記管理装置では、前記構造化文書を構成する各部分について変更があったか否かを示す変更有無情報が管理され、
前記取得手段は、前記構造化情報に関わる部分の変更有無情報を前記管理装置から取得し、
前記マージ手段は、前記変更有無情報が変更されていないことを示すものであると判断した場合、前記内容情報と前記構造化情報とをマージすることを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記マージ手段は、前記変更有無情報が変更されていることを示すものであると判断した場合、マージを行う処理を中止する、或いは、前記処理を続行するか否かを指定するユーザ操作を受け付けることを特徴とする請求項５に記載の情報処理装置。
【請求項７】
構造化文書を管理する管理装置から前記構造化文書を取得し、前記構造化文書からユーザ操作に対応した変更に用いられるデータを取り出して構造化情報を生成して記憶装置に格納する構造化情報格納工程と、
前記構造化情報を変更するユーザ操作を受け付け、変更された内容を示す変更情報を前記構造化情報に反映し、前記構造化文書を構成する各部分を示す複数の内容情報のうち、前記変更情報に関わる部分を示す内容情報を識別する識別情報を前記記憶装置に格納する変更情報格納工程と、
前記識別情報をもとに識別される内容情報を前記管理装置から取得する取得工程と、
前記内容情報と前記構造化情報とをマージするマージ工程と、
前記マージ工程でマージされた情報を前記管理装置に送信する送信工程と、を有することを特徴とするデータ更新方法。
【請求項８】
コンピュータを、
構造化文書を管理する管理装置から前記構造化文書を取得し、前記構造化文書からユーザ操作に対応した変更に用いられるデータを取り出して構造化情報を生成して記憶装置に格納する構造化情報格納手段と、
前記構造化情報を変更するユーザ操作を受け付け、変更された内容を示す変更情報を前記構造化情報に反映し、前記構造化文書を構成する各部分を示す複数の内容情報のうち、前記変更情報に関わる部分を示す内容情報を識別する識別情報を前記記憶装置に格納する変更情報格納手段と、
前記識別情報をもとに識別される内容情報を前記管理装置から取得する取得手段と、
前記内容情報と前記構造化情報とをマージするマージ手段と、
前記マージ手段でマージされた情報を前記管理装置に送信する送信手段と、
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、データ更新方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、ＷＷＷ（World Wide Web）の普及が進み、さまざまなデータがＨＴＴＰ（Hyper Text Transfer Protocol）を介してやり取りされるようになった。また、ＨＴＴＰの仕組みを更に発展させ、Ｗｅｂ上でのコンテンツの編集や送受信を行うための仕様としてＡｔｏｍＰｕｂ（Atom Publishing Protocol）が用いられるようになった。
ＡｔｏｍＰｕｂによれば、テキスト・バイナリを含む任意のデータとそのメタデータとの取得（ＧＥＴ）・新規作成（ＰＯＳＴ）・更新（ＰＵＴ）・削除（ＤＥＬＥＴＥ）を行うことができる。
【０００３】
また、ＡｔｏｍＰｕｂによる通信では、Ａｔｏｍエントリ、Ａｔｏｍフィードと称される２種類のデータが用いられる。
Ａｔｏｍエントリには、データ本体、又はデータへのリンクと、データの更新日時や作成者を示すメタデータとが含まれている。Ａｔｏｍエントリは、ＸＭＬ形式のデータであるので、ＨＴＭＬやプレーンテキストなどの文字列形式のデータの場合、Ａｔｏｍエントリには、データがＡｔｏｍエントリ中に含められていることが多い。一方、データが画像や音声などのバイナリデータの場合、Ａｔｏｍエントリとデータとを分けておき、Ａｔｏｍエントリにはデータへのリンクが記述されていることが一般的である。
【０００４】
また、Ａｔｏｍフィードは、１つ以上のＡｔｏｍエントリと、Ａｔｏｍエントリ全体に対してのメタデータとを含む。例えば、写真のデータを扱うサーバを利用する場合、Ａｔｏｍエントリは、写真のメタデータと写真データへのリンクとを含むデータとされ、Ａｔｏｍフィードは、複数の写真からなるアルバムのデータとされるのが典型的な使われ方である。
Ａｔｏｍフィード及びＡｔｏｍエントリは、さまざまなリンクを有することができ、通常、ｓｅｌｆ、ｅｄｉｔと称されるリンクを有している。ｓｅｌｆリンクは、そのデータ自身のＵＲＬである。また、ｅｄｉｔリンクは、データの更新用のＵＲＬであり、そのＵＲＬにデータを送ることでデータの更新ができる。例えば、Ａｔｏｍエントリのタイトルを変更する場合には、まず、Ａｔｏｍエントリを取得してそのＡｔｏｍエントリのタイトルが変更され、次に、変更されたＡｔｏｍエントリがｅｄｉｔリンクのＵＲＬに送信される。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】「Ｔｈｅ  Ａｔｏｍ  Ｐｕｂｌｉｓｈｉｎｇ  Ｐｒｏｔｏｃｏｌ」  ［平成２２年１１月２６日検索］  インターネット＜URL：http://www.ietf.org/rfc/rfc5023.txt＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、ＡｔｏｍＰｕｂに標準のエントリの更新方法では、メモリの使用量が多くなるという問題がある。ここで、エントリは、さまざまなメタデータを含むことが可能であり、サイズが大きくなることもあり得る。また、クライアント（情報処理装置）がエントリの一部のみを変更したい場合であっても、送信するエントリは完全なものでなくてはならないため、エントリのすべてを保持しなくてはならない。このため、エントリのサイズが大きい、又はエントリの数が多い場合には、それに比例してメモリの使用量も多くなってしまう。特に、メモリなどの資源の限れられた小型機器においては重大な問題となる。
【０００７】
本発明はこのような問題点に鑑みなされたもので、管理装置で管理される構造化文書を更新する際の記憶装置の使用量をより低減することを目的とする。
【課題を解決するための手段】
【０００８】
そこで、本発明に係る情報処理装置は、構造化文書を管理する管理装置から前記構造化文書を取得し、前記構造化文書からユーザ操作に対応した変更に用いられるデータを取り出して構造化情報を生成して記憶装置に格納する構造化情報格納手段と、前記構造化情報を変更するユーザ操作を受け付け、変更された内容を示す変更情報を前記構造化情報に反映し、前記構造化文書を構成する各部分を示す複数の内容情報のうち、前記変更情報に関わる部分を示す内容情報を識別する識別情報を前記記憶装置に格納する変更情報格納手段と、前記識別情報をもとに識別される内容情報を前記管理装置から取得する取得手段と、前記内容情報と前記構造化情報とをマージするマージ手段と、前記マージ手段でマージされた情報を前記管理装置に送信する送信手段と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、管理装置で管理される構造化文書を更新する際の記憶装置の使用量をより低減することができる。
【図面の簡単な説明】
【００１０】
【図１】構造化文書処理装置のハードウェア構成の一例を示す図である。
【図２】システムの構成の一例を示す図である。
【図３】構造化文書処理装置の機能構成の一例を示す図である。
【図４】更新処理に係るフローチャートの一例を示す図である。
【図５】Ａｔｏｍフィード文書の一例を示す図である。
【図６】ＤＯＭツリーの一例を示す図である。
【図７】画面の一例を示す図である。
【図８】送信処理の一例を示す図である。
【図９】イベントの一例を示す図である。
【図１０】送信内容の一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について図面に基づいて説明する。なお、実施形態は、本発明を限定するものではなく、また、実施形態で説明されている全ての構成が本発明の課題を解決するための手段に必須であるとは限らない。
【００１２】
図１は、本実施形態に係る構造化文書処理装置１００のハードウェア構成の一例を示す図である。構造化文書処理装置１００は、情報処理装置（コンピュータ）の一例であり、単一の装置で構成されてもよいし、必要に応じた複数の装置に各機能を分散して構成されてもよい。例えば、複数の装置で構成される場合は、互いに通信可能なようにＬＡＮ（Local Area Network）などのネットワークを介して接続される。
ＣＰＵ（Central Processing Unit）１０２は、構造化文書処理装置１００全体を制御する。ＲＯＭ（Read Only Memory）１０３は、変更を必要としないプログラムやパラメータを格納する。ＲＡＭ（Random Access Memory）１０４は、外部装置などから供給されるプログラムやデータを一時記憶する。
【００１３】
外部記憶装置１０５は、構造化文書処理装置１００に固定して設置されたハードディスク、着脱可能なＦＤ（フレキシブルディスク）やＣＤ（Compact Disc）などの光ディスク、磁気カードなどである。表示装置１０６は、液晶ディスプレイなどである。入力装置１０７は、ユーザによる操作（ユーザ操作）を受け付け、データを入力するポインティグデバイスやキーボードなどである。ネットワークインターフェース１０８は、ネットワークに接続しデータを送受信する。システムバス１０１は、各ユニット（１０２〜１０８）を通信可能に接続する。
なお、本実施形態では、ＣＰＵ１０２が、ＲＯＭ１０３に格納されたプログラムの手順に従って処理を行うことによって、構造化文書処理装置１００における機能及びフローチャートに係る処理が実現される。
【００１４】
図２は、構造化文書処理装置１００を含むシステムの構成の一例を示す図である。本システムは、構造化文書処理装置１００、及び写真共有サーバ２０２を含んで構成される。構造化文書処理装置１００は、ネットワークインターフェース１０８を介してネットワーク２０１に接続されている。
写真共有サーバ２０２は、管理装置（コンピュータ）の一例であり、構造化文書処理装置１００と同様のハードウェア構成を有する。また、写真共有サーバ２０２は、データ本体、又はデータへアクセスするための位置情報を示すリンク情報とデータの更新日時や作成者等を示すメタデータとを含む複数の内容情報（後述のエントリ等）が階層化された構造化文書の一例であるＸＭＬ文書を管理する。また、写真共有サーバ２０２は、ネットワークインターフェースを介してネットワーク２０１に接続されている。すなわち、構造化文書処理装置１００及び写真共有サーバ２０２は、ネットワーク２０１を介して互いに通信可能に接続されている。
【００１５】
図３は、構造化文書処理装置１００の機能構成の一例を示す図である。ＸＭＬパーサ３０１は、ＸＭＬ文書を解析して結果をイベント（イベント情報）として呼び出し側（ＤＯＭ（Document Object Model）パーサ３０２、ＸＭＬマージ部３０４など）に逐次通知する。すなわち、ＸＭＬパーサ３０１は、逐次処理型のＸＭＬ解析機能を有する。ＸＭＬパーサ３０１としては、ＳＡＸ（Simple API for XML）パーサ、ＳｔＡＸ（Streaming API for XML）パーサなど採用することができる。
ここで、イベントには、開始タグに相当するＳｔａｒｔＥｌｅｍｅｎｔイベントや、終了タグに相当するＥｎｄＥｌｅｍｅｎｔイベント、テキストデータに相当するＴｅｘｔイベントなどがある。各イベントには、対応するタグや後述のノードの情報が含まれている。例えば、ＳｔａｒｔＥｌｅｍｅｎｔイベントには開始タグの名称や属性が含まれ、Ｔｅｘｔイベントにはテキストデータ（値）が含まれている。なお、タグなどに対応してイベントを規定する方法は、適宜の方法を採用できる。例えば、外部記憶装置１０５に記憶されている規定情報に従って規定する処理を行ってもよいし、規定する処理がプログラムに予め組み込まれていてもよい。
【００１６】
ＤＯＭパーサ３０２は、ＸＭＬパーサ３０１が解析した結果であるイベントから、ＲＡＭ１０４内にノードの論理的なツリー構造のツリーを作成する。このツリーをＤＯＭツリーと称する。ＸＭＬライタ３０３は、ＸＭＬマージ部３０４などからイベントを受け取ってシリアライズを行うことでＸＭＬ文書（換言するならば、ＸＭＬ文書を構成するタグ情報）を作成する。すなわち、ＸＭＬライタ３０３は、逐次処理型のＸＭＬ生成機能を有する。ＸＭＬライタ３０３としては、ＳｔＡＸライタなどを採用することができる。
ＸＭＬマージ部３０４は、２つのイベントソース（ＤＯＭツリー、後述の再取得文書）からのイベントをマージする機能を有する。ＡｔｏｍＰｕｂクライアント部３０５は、各種のデータ（後述の再取得文書、サムネイルなど）を写真共有サーバ２０２から取得する処理などを行うＡｔｏｍＰｕｂのクライアント機能を有する。ユーザインターフェース提供部３０６は、各種の画面を表示装置１０６に表示などしてユーザとの対話処理を行う。
【００１７】
以下では、構造化文書処理装置１００にインストールされた上述の機能を有するアプリケーションが、写真共有サーバ２０２にある写真アルバムのデータを取得して表示し、ユーザが変更した内容を写真共有サーバ２０２に反映させるデータ更新方法を説明する。
図４は、構造化文書処理装置１００のアプリケーションが写真共有サーバ２０２の写真アルバムのデータであるＡｔｏｍフィード文書（Atom Feed 文書）を更新する更新処理に係るフローチャートの一例を示す図である。まず、ＡｔｏｍＰｕｂクライアント部３０５は、Ａｔｏｍフィード文書を写真共有サーバ２０２から取得する（Ｓ４０１）。図５に、Ａｔｏｍフィード文書の一例（Ａｔｏｍフィード文書５００）を示す。Ａｔｏｍフィード文書５００には、構造化文書を構成する各部分を示す内容情報の一例である複数のエントリ（５ｂ〜５ｅ）が含まれている。エントリには、メタデータとリンク情報とが含まれている（記述されている）。
【００１８】
ｔｉｔｌｅタグ情報（５ａ０５、５ｂ０４など）には、写真アルバム又は個々の写真のタイトルの情報が設けられる。ｃｏｎｔｅｎｔタグ情報（５ｂ０５）には、写真本体（写真データ）へのリンク情報が設けられる。ｌｉｎｋタグ情報（ｓｅｌｆｌｉｎｋタグ情報５ｂ０６）には、エントリ自身へのリンク情報（ＵＲＬなど）が設けられている。
ＡｔｏｍＰｕｂクライアント部３０５は、このＵＲＬに対してＧＥＴリクエストを送信するとエントリ５ｂのみを再取得文書として写真共有サーバ２０２から取得することができる。ｌｉｎｋタグ情報（サムネイルｌｉｎｋタグ情報５ｂ０９）には、写真のサムネイル（サムネイルデータ）へのリンク情報が設けられている。その他、多くのメタデータが設けられている。なお、エントリ５ｃ〜５ｅについてもエントリ５ｂと同様の内容が記述されている。
【００１９】
続いて、構造化文書処理装置１００は、ＸＭＬパーサ３０１及びＤＯＭパーサ３０２を介してＡｔｏｍフィード文書５００を解析し、構造化情報の一例であるＤＯＭツリーをＲＡＭ１０４に格納する（Ｓ４０２）。ＤＯＭパーサ３０２には、データのフィルタリング機能があり、特定のデータのみをＤＯＭツリーに含めることが可能である。このような仕組みとしてはＤＯＭ  Ｌｅｖｅｌ３  Ｌｏａｄ  ａｎｄ  Ｓａｖｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ仕様におけるＬＳＰａｒｓｅｒＦｉｌｔｅｒなどがある。
アプリケーションで必要になるデータ（特定のデータ）は、リンク情報（ｃｏｎｔｅｎｔタグ情報、ｌｉｎｋタグ情報のデータ）、及びタイトル情報（ｔｉｔｌｅタグ情報のデータ）である。付言するならば、ＸＭＬパーサ３０１、ＤＯＭパーサ３０２、及びＡｔｏｍＰｕｂクライアント部３０５は、構造化情報格納手段の一例である。
【００２０】
図６に、Ａｔｏｍフィード文書５００からリンク情報及びタイトル情報以外を除外したＤＯＭツリーの一例（ＤＯＭツリー６００）を示す。図６における四角形の枠は、ノード（６０１〜６２４）を表している。また、ノード（左側）に付けられた「Ａ」のマークは、属性を表し、「Ｔ」のマークは、文字列データを表し、マークのないものは要素を表している。さらに、Ｆｅｅｄ要素、及びＥｎｔｒｙ要素（右側）には、そのノードの値が変更されたか否かを示すフラグ（識別情報の一例）が設けられ、初期状態では変更がないことを示す「Ｆ（Ｆａｌｓｅ）」が設定されている。
なお、図６では、４つのエントリの最初のもの（エントリ５ｂ）に対応するエントリノード６０７の詳細のみ示しており、残りのエントリについてはエントリノード６２４以降に設けられているが、図示を省略している。また、ＤＯＭツリー６００には、Ａｔｏｍフィード文書５００の全てのデータではなく、例えば、メタデータ５ｂ１０〜メタデータ５ｂ１６に対応するノードが除去されている。
【００２１】
続いて、ＡｔｏｍＰｕｂクライアント部３０５は、写真のサムネイルを取得する（Ｓ４０３）。サムネイルのＵＲＬは、ＤＯＭツリー６００に設けられているノード６２３（より詳細には、ｒｅｌ属性が「ｔｈｕｍｂｎａｉｌ」であるｌｉｎｋ要素のｈｒｅｆ属性）から取得できる。そして、ＡｔｏｍＰｕｂクライアント部３０５は、写真共有サーバ２０２（ＵＲＬ）に対してＧＥＴリクエストを送ることでサムネイルを取得する。
続いて、ユーザインターフェース提供部３０６は、ＤＯＭツリー６００と、取得したサムネイルとをもとに画面を表示する（Ｓ４０４）。図７（ａ）に画面の一例を示す。
【００２２】
続いて、ユーザインターフェース提供部３０６は、ユーザ操作を受け付け、ユーザ操作に応じてタイトルなどのメタデータの変更を行う（Ｓ４０５）。例えば、ユーザが写真１のタイトルを「ｎｏ  ｔｉｔｌｅ」から「Ｘ寺」（変更情報の一例）に変更したとする。この結果、ユーザインターフェース提供部３０６は、ノード６０９の値も同様に「Ｘ寺」に変更し、画面も図７（ａ）から図７（ｂ）に示すものにする。また、ユーザインターフェース提供部３０６は、ノード６０９の値が変更されたことにより、その親のノードであるエントリノード６０７の変更フラグを「Ｔ（Ｔｒｕｅ）」に変更、即ち、変更済みに設定する。付言するならば、ユーザインターフェース提供部３０６は、変更情報格納手段の一例である。
続いて、構造化文書処理装置１００は、メタデータの変更を写真共有サーバ２０２上のデータに反映させるため、写真共有サーバ２０２にメタデータを送信し（Ｓ４０６）、変更処理を終了する。図８に、Ｓ４０６の処理（送信処理）の一例を示す。
【００２３】
まず、ＡｔｏｍＰｕｂクライアント部３０５は、変更されたノードを含むエントリを再取得するためにＧＥＴリクエストを写真共有サーバ２０２に送信する（Ｓ８０１）。この例では、ノード６０９の値が変更され、ノード６０９を含む親のノードは、エントリノード６０７である。また、エントリの再取得に用いるＵＲＬは、エントリノード６０７のｓｅｌｆリンク、つまりノード６１４に設けられているＵＲＬであり、このＵＲＬを辿ることで変更されたノードを含むエントリが得られる。以下では、図５におけるエントリ５ｂ（再取得文書）を取得した場合を例に挙げて説明する。
なお、詳細は後述するが、構造化文書処理装置１００は、ＲＡＭ１０４（メモリ内）に保持しているＤＯＭツリー６００と、再取得したエントリ５ｂとをＸＭＬマージ部３０４等を介してマージしながら送信することでデータの更新を行う。
【００２４】
続いて、ＸＭＬパーサ３０１は、ＤＯＭツリー６００からイベントを１つ取得し（Ｓ８０２）、再取得文書からイベントを１つ取得する（Ｓ８０３）。ここで、イベントとは、ＸＭＬ文書を処理する単位であり、例えばＳＡＸパーサには、各種のイベントが定義されている。また、ＤＯＭツリー６００からのイベントへの変換は、深さ優先で探索することで容易に行うことができる。つまり、図６に示すノード６０７からノード６２３までをこの番号のとおりに処理する。
また、ＸＭＬパーサ３０１は、再取得文書からタグ情報を取得する。ＸＭＬパーサ３０１は、ＸＭＬ文書の先頭から１タグ情報ずつ逐次処理してイベントを取り出すものであり、文書全体をメモリに溜め込む必要がないので、この構成によれば、ＸＭＬ文書を更新する際のＲＡＭ１０４の使用量をより低減することができる。
【００２５】
図９（ａ）に再取得文書から得られるイベントを示し、図９（ｂ）にＤＯＭツリー６００から取られるイベントを示す。なお、いくつかのイベントについては省略している。どちらも最初に取得されるイベントは、エントリ（エントリノード）に対するＳｔａｒｔＥｌｅｍｅｎｔイベント（９ａ０１、９ｂ０１）である。
続いて、ＸＭＬマージ部３０４は、ＤＯＭツリー６００、及び再取得文書の双方の処理の対象が終端に達したか否かを判定する（Ｓ８０４）。このとき、達したと判断した場合、送信処理を終了し、他方、達していないと判断した場合、Ｓ８０５の処理を行う。
続いて、ＸＭＬマージ部３０４は、夫々のイベントの種類及び名前を比較する（Ｓ８０５）。このとき、ＸＭＬマージ部３０４は、種類、及び名前が一致すると判断した場合、Ｓ８０７の処理を行い、他方、種類、及び名前の少なくとも一方が一致しない（互いに異なるイベントである）と判断した場合、Ｓ８０６の処理を行う。
【００２６】
Ｓ８０６では、ＸＭＬマージ部３０４は、再取得文書から取得したイベントを出力する。Ｓ８０７では、ＸＭＬマージ部３０４は、夫々の種類、及び名前の値を比較する。このとき、ＸＭＬマージ部３０４は、値が一致する、又は値がないと判断した場合、Ｓ８０９の処理を行い、他方、値があり、かつ値が一致しない（イベントが競合する）と判断した場合、Ｓ８０８の処理を行う。
Ｓ８０８では、ＸＭＬマージ部３０４は、ＤＯＭツリー６００から取得したイベントを出力する。Ｓ８０９では、ＸＭＬマージ部３０４は、共通のイベントを出力する。ここで、ＸＭＬライタ３０３は、ＸＭＬマージ部３０４を介して出力されたイベントから要素ごとに（１タグ情報ずつ）タグ情報を生成し、ＡｔｏｍＰｕｂクライアント部３０５は、生成されたタグ情報を写真共有サーバ２０２に適宜のタイミングで送信する。
【００２７】
ここで、Ｓ８０２〜Ｓ８０９に示す処理（マージ処理）について、図９のイベントを例に挙げて説明する。
まず、構造化文書処理装置１００は、ＤＯＭツリー６００と再取得文書から夫々のイベント９ａ０１、９ｂ０１を取得する（Ｓ８０２、Ｓ８０３）。次に、構造化文書処理装置１００は、イベントの種類、及び名前のいずれも一致すると判断し（Ｓ８０５でＹｅｓ）、続いてＳ８０７の処理を行う。次に、構造化文書処理装置１００は、イベント９ａ０１、９ｂ０１に値がないと判断し（Ｓ８０７でＹｅｓ）、続いてＳ８０９の処理が行われる。次に、構造化文書処理装置１００は、イベント９ａ０１、９ｂ０１の何れか一方を出力し（Ｓ８０９）、出力したイベントから要素に対応する図１０のタグ情報１００１を生成する。次に、構造化文書処理装置１００は、タグ情報１００１を写真共有サーバ２０２に送信する。
【００２８】
次に、構造化文書処理装置１００は、ＤＯＭツリー６００と再取得文書から夫々のイベント９ａ０２、９ｂ０２を取得する（８０２、８０３）。イベント９ａ０２、９ｂ０２の種類は、同じであるが名前が異なるので、構造化文書処理装置１００は、再取得文書から取得したイベント９ａ０２を出力する（Ｓ８０５、Ｓ８０６）。換言するならば、タグ情報１００２の「＜ｉｄ＞」が出力される。
次に、構造化文書処理装置１００は、再取得文書からのみ次のイベント９ａ０３を取得する（Ｓ８０３）。なお、ＤＯＭツリー６００からのイベント９ｂ０２は、そのままである。イベント９ａ０３、９ｂ０２の種類が異なるので、構造化文書処理装置１００は、イベント９ａ０３を出力する（８０５、８０６）。そして、構造化文書処理装置１００は、同様にイベント９ａ０４もそのまま出力すると、タグ情報１００２を生成し、タグ情報１００２を写真共有サーバ２０２に送信する。また、構造化文書処理装置１００は、同様にタグ情報１００３を生成し、タグ情報１００３を写真共有サーバ２０２に送信する。
【００２９】
次に、構造化文書処理装置１００は、イベント９ａ０５を取得する（Ｓ８０３）。イベント９ａ０５とイベント９ｂ０２とは同じであるのでそのまま出力される（Ｓ８０９）。次に、構造化文書処理装置１００は、イベント９ａ０６、９ｂ０３を処理する。これらは種類が同じであるものの値が異なるので、構造化文書処理装置１００は、ＤＯＭツリー６００から取得したイベント９ｂ０３のみを出力する（Ｓ８０７、Ｓ８０８）。同様に、構造化文書処理装置１００は、イベント９ａ０７、９ｂ０４が一致するのでそのまま出力し、タグ情報１００４を生成し、写真共有サーバ２０２に送信する。
【００３０】
このように、構造化文書処理装置１００による再取得文書からのイベントの取得は、要素単位であるので文書全体をメモリ（ＲＡＭ１０４など）にはため込まず、また、構造化文書処理装置１００による送信も要素単位である。また、送信された要素に対応するタグ情報もメモリに保持する必要はなく、そのまま写真共有サーバ２０２に送信してメモリ上から破棄することができる。
また、ＤＯＭツリー６００は、上述のとおり、Ａｔｏｍフィード文書５００からアプリケーションが必要なデータのみを抜き出したものであり、Ａｔｏｍフィード文書５００全体よりも小さい。
したがって、上述した構成によれば、ＡｔｏｍＰｕｂにおけるエントリの更新処理をより少ないメモリで行うことができる。
【００３１】
また、本実施形態では、ＡｔｏｍＰｕｂプロトコルによるデータの更新を例に挙げたが、変更されたデータに関わる構造化文書フラグメント（エントリ）を再取得可能な方法であれば、その他の文書フォーマット・通信プロトコルにおいても同様に適用可能である。
また、写真共有サーバ２０２の構造化文書フラグメントが、別のクライアントにより変更済みであった場合には処理を中断（中止）したり、ユーザにその旨を通知して処理の続行を選択（指定）するユーザ操作を行ったりするなどの処理も可能である。再取得された構造化文書フラグメントが変更されたかどうかを把握するには、例えば、ＨＴＴＰヘッダに含まれるＥＴａｇと称される情報（変更有無情報）を比較することで行うことができる。
以上の構成によれば、ＡｔｏｍＰｕｂに代表されるような、階層構造を有する構造化文書の編集処理によるサーバ上のデータの更新処理におけるメモリの使用量を低減することができる。
【００３２】
なお、本実施形態は、上述の構成に限られるものではなく、適宜変更することができる。
例えば、要素ごとに送信をすることなくイベントを順次比較してマージ処理を繰り返すと、再取得文書をもとにし、かつ構造化文書処理装置１００が行った変更が反映されたエントリが生成される。その結果は、例えば図１０のようになる。すなわち、このエントリを写真共有サーバ２０２にＰＵＴリクエストとして送ることで、写真共有サーバ２０２上のデータを更新する構成としてもよい。
また、例えば、イベントが出力されるごとにイベントが写真共有サーバ２０２に送信される構成としてもよい。この構成によれば、メモリ上には、基本的に、ＤＯＭツリー６００と２つのイベント（ツリーから取得したものと再取得文書から取得したもの）を保持すればよいので、ＸＭＬ文書を更新する際のＲＡＭ１０４の使用量をより低減することができる。
また、例えば、再取得文書を取得する構成に代えて、再取得文書をタグ情報ごとに取得する構成を採用してもよい。
【００３３】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００３４】
上述した実施形態の構成によれば、管理装置で管理される構造化文書を更新する際の記憶装置の使用量をより低減することができる。
【００３５】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００３６】
１００  構造化文書処理装置、２０１  ネットワーク、２０２  写真共有サーバ
【図１】
2012128516.tif 000003
【図２】
2012128516.tif 000004
【図３】
2012128516.tif 000005
【図４】
2012128516.tif 000006
【図５】
2012128516.tif 000007
【図６】
2012128516.tif 000008
【図７】
2012128516.tif 000009
【図８】
2012128516.tif 000010
【図９】
2012128516.tif 000011
【図１０】
2012128516.tif 000012