JP2010250434A - 情報処理装置、情報処理方法、プログラム及び記憶媒体 - Google Patents

情報処理装置、情報処理方法、プログラム及び記憶媒体 Download PDF

Info

Publication number
JP2010250434A
JP2010250434A JP2009097120A JP2009097120A JP2010250434A JP 2010250434 A JP2010250434 A JP 2010250434A JP 2009097120 A JP2009097120 A JP 2009097120A JP 2009097120 A JP2009097120 A JP 2009097120A JP 2010250434 A JP2010250434 A JP 2010250434A
Authority
JP
Japan
Prior art keywords
value
data
memory
attribute
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009097120A
Other languages
English (en)
Other versions
JP5409090B2 (ja
Inventor
Hitoshi Uchida
均 内田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2009097120A priority Critical patent/JP5409090B2/ja
Publication of JP2010250434A publication Critical patent/JP2010250434A/ja
Application granted granted Critical
Publication of JP5409090B2 publication Critical patent/JP5409090B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Document Processing Apparatus (AREA)

Abstract

【課題】構造化文書の符号化に関するオブジェクト(例えば符号化テーブル等)に、サイズの大きなデータが含まれている場合でも、少ないメモリリソースで解析できるようにすることを目的とする。
【解決手段】符号と値と値に関する属性値とが対応付けられた値データを複数含む値オブジェクトの値データの属性値に基づいて属性値に対応する値を含む値データをメモリに記憶するか否かを判定する記憶判定手段と、記憶判定手段で属性値に対応する値を含む値データをメモリに記憶しないと判定された場合には値を含まない値データをメモリ内のメモリ内値オブジェクトに記憶する記憶手段とを有することによって課題を解決する。
【選択図】図8

Description

本発明は、情報処理装置、情報処理方法、プログラム及び記憶媒体に関する。
これまで、XMLパーサが解析するXMLデータのフォーマットは、一般的にテキスト形式であった。しかし、XMLデータは、データ構造を表現するために冗長なデータを必要とし、コンピュータが読み書きするのに時間がかかるという問題があるため、近年バイナリXML技術が注目されている。バイナリXML技術としては、例えば、W3C標準のEfficient XML Interchangeや、ISO標準のFast Infosetが挙げられる。これらの技術を用いることによって、XMLデータに含まれる要素名や属性名等の各ボキャブラリを、XMLデータ内の出現順に番号を振って符号化し、データサイズを小さくすることができる。符号と各ボキャブラリとの対応を示す表は符号化テーブルと呼ばれる。これらのバイナリXMLデータは、従来のテキスト形式のXMLデータに比べて、高速に読み書きすることができる。
また、属性値や要素内容を従来のような文字列型のデータではなく、整数型、浮動小数点型や、独自形式の圧縮アルゴリズムを用いてエンコードすることにより、データサイズを更に小さくすることができる。また、それらデータを解析する際には、従来のようなアプリケーションによる文字列データから数値データへの変換処理が必要なくなるので、解析全体にかかる処理時間を更に短くすることができる。
また、KDDIのXEUSは、属性値や要素内容に、カンマ等で区切られた数値の配列に対しては、各数値をそれぞれ符号化することによって、XMLデータを効率的に圧縮することができる。
また、同一の構造を持った複数のXMLデータについて、タグ名をリスト化した共通の1つのタグリストを作成し、それら各タグ名を符号化することで圧縮を行うものがある(特許文献1参照)。
特開2002−163248号公報
しかし、従来のバイナリXMLパーサは、長い文字列データや、画像データ等サイズの大きなデータを符号化テーブルに含む場合、メモリリソースの限られた環境では、バイナリXMLデータを全て解析することができなかった。
図1は、アドレス帳の内容を記述した、従来のテキスト形式のXMLデータの一例を示す図である。このXMLデータをバイナリXML形式で記述したものが、図2、3、4である。図2は、XMLデータに含まれる要素名や属性名を符号化した符号化テーブルの一例を示す図である。ここでは図2のテーブルを名前テーブルと呼ぶことにする。図3は、XMLデータに含まれる属性値や要素内容等を符号化した符号化テーブルの一例を示す図である。ここでは図3のテーブルを値テーブルと呼ぶことにする。図4は、テキスト形式の構造化文書を、図2、3の符号化テーブルに含まれる各符号を用いることによってバイナリXML形式で記述した内容の一例を示す図である。なお、図4における開始タグ、終了タグ、属性、要素内容等の各イベントの符号は、図5の符号を用いるものとし、これら各イベントの符号はアプリケーションが予め知っている(又はアプリケーションに予め定義されている)ものとする。図5は、各イベントの符号の一例を示す図である。
バイナリXMLパーサがデータを解析する際には、まずデータに含まれる図2の名前テーブルと図3の値テーブルとを解析し、各テーブルの内容を内部メモリに保存しておく。そして、バイナリXMLパーサは、バイナリXMLデータの構造と値とを含むボディ部を解析する際には、その内部メモリに保存したテーブルの各符号と値との組を用いることによって、タグ名や属性名、属性値や要素内容を解決する。
しかし、メモリリソースの限られた組込み機器の環境においては、図3のように値テーブルに画像データのようなサイズの大きなデータを含む場合には、その画像データを内部メモリに保存することができなかった。バイナリXMLデータにそのようなサイズの大きなデータを含む場合、バイナリXMLパーサは、それ以降の解析処理を中断し、アプリケーションに解析エラーを通知するのが一般的だった。
本発明はこのような問題点に鑑みなされたもので、構造化文書の符号化に関するオブジェクト(例えば符号化テーブル等)に、サイズの大きなデータが含まれている場合でも、少ないメモリリソースで解析できるようにすることを目的とする。
そこで、本発明の情報処理装置は、構造化文書に含まれる構造情報と値とを符号化して作成された符号化文書に含まれる符号と、前記値と、前記値に関する属性値と、が対応付けられた値データを複数含む値オブジェクトの前記値データの前記属性値に基づいて、前記属性値に対応する値を含む値データをメモリに記憶するか否かを判定する記憶判定手段と、前記記憶判定手段で前記属性値に対応する値を含む値データをメモリに記憶すると判定された場合には、前記値を含む値データをメモリ内のメモリ内値オブジェクトに記憶し、前記記憶判定手段で前記属性値に対応する値を含む値データをメモリに記憶しないと判定された場合には、前記値を含まない値データをメモリ内のメモリ内値オブジェクトに記憶する記憶手段と、を有する。
本発明によれば、構造化文書の符号化に関するオブジェクト(例えば符号化テーブル等)に、サイズの大きなデータが含まれている場合でも、少ないメモリリソースで解析できるようにすることができる。
アドレス帳の内容を記述した、従来のテキスト形式のXMLデータの一例を示す図である。 XMLデータに含まれる要素名や属性名を符号化した符号化テーブルの一例を示す図である。 XMLデータに含まれる属性値や要素内容等を符号化した符号化テーブルの一例を示す図である。 テキスト形式の構造化文書を、図2、3の符号化テーブルに含まれる各符号を用いることによってバイナリXML形式で記述した内容の一例を示す図である。 各イベントの符号の一例を示す図である。 本実施形態に係るシステムのシステム構成の一例を示す図である。 PCのハードウェア構成の一例を示す図である。 バイナリXMLデータに含まれる符号化テーブルを解析する処理の一例を示すフローチャート(その1)である。 内部メモリに保存した値テーブルの一例を示した図(その1)である。 ボディ部の解析処理の一例を示すフローチャート(その1)である。 値を取得する処理の一例を示すフローチャート(その1)である。 バイナリXMLデータに含まれる符号化テーブルを解析する処理の一例を示すフローチャート(その2)である。 内部メモリに保存した値テーブルの一例を示した図(その2)である。 ボディ部の解析処理の一例を示すフローチャート(その2)である。 値を取得する処理の一例を示すフローチャート(その2)である。
以下、本発明の実施形態について図面に基づいて説明する。
<実施形態1>
本実施形態では、符号化テーブルにサイズの大きなデータを含むバイナリXMLデータを、少ないメモリリソースで解析する処理について説明する。
図6は、本実施形態に係るシステムのシステム構成の一例を示す図である。
PC101は、LAN102に接続されている。LAN102には、デジタルカメラ103、複合機104、ファイルサーバ105が接続されている。
図7は、PCのハードウェア構成の一例を示す図である。
CPU201は、システム制御部であり、PC全体を制御する。ROM202は、CPU201の制御プログラムや各種固定データを格納する。RAM203は、SRAM、DRAM等で構成され、プログラム制御変数等を格納する。また、各種設定パラメータ、各種ワーク用バッファもRAM203に格納される。記憶部204は、ハードディスク等で構成され、文書データや画像データ等、各種データファイルを格納する。操作部205は、キーボードやマウス、タッチパネル等で構成され、オペレータが各種入力操作を行うためのものである。表示部206は、画像を表示するテレビジョンの画面である。LANi/f 207は、LAN回線208に接続するためのインターフェースである。USBi/f 209は、USB回線210に接続するためのインターフェースである。
なお、デジタルカメラ103、複合機104、ファイルサーバ105のハードウェア構成も、装置に応じて構成の一部が異なるものの、図6に示したPC101のハードウェア構成と同様であり、少なくともCPUと記憶部とを有する。
各装置のCPUが、記憶部等に記憶されているプログラム(例えば、本実施形態のバイナリXMLパーサ(以下、単にバイナリXMLパーサという)やアプリケーションに該当するプログラム)に基づき処理を実行する。このことによって、各装置の機能、後述するフローチャートに係る処理が実現される。つまり、後述するバイナリXMLパーサやアプリケーションは、PC101に実装されていてもよいし、デジタルカメラ103、複合機104、ファイルサーバ105等に実装されていてもよい。
図8は、バイナリXMLデータに含まれる符号化テーブルを解析する処理の一例を示すフローチャート(その1)である。
まず、バイナリXMLパーサは、要素名や属性名等の名前と、その名前に割り当てられた符号と、を格納した図2に示されるような名前テーブルを解析し、各名前と符号との組をRAM203又は記憶部204等の内部メモリに保存する(S102)。
次に、バイナリXMLパーサは、属性値や要素内容、コメントの内容等の値と、その値に割り当てられた符号と、を格納した図3に示されるような値テーブルを内部メモリに保存する際の制限情報を解析する(S103)。この制限情報は、内部メモリに保存する各値の上限サイズや、内部メモリに保存する必要がないデータの種類等である。この上限サイズや内部メモリに保存する必要がないデータの種類等は、一般的にはアプリケーションがバイナリXMLパーサに、解析を開始する前に予め設定しておくものである。本実施形態では、各値の上限サイズを50000バイトとし、アプリケーションにとって不要なデータの種類をコメントとする。
バイナリXMLパーサは、値テーブルの解析を開始するが、まず値テーブルの全ての内容を解析したか否かを判定する(S104)。S104において、値テーブルの全ての内容を解析していないと判断した場合、バイナリXMLパーサは、値テーブルに含まれる各値の、符号、所属情報(種類情報)(所属)、サイズ情報(サイズ)を解析し、内部メモリに保存する(S105〜S107)。この所属情報は、図5に示されるように各イベントに割り当てられた符号であり、バイナリXMLパーサは、この符号を参照することによって、属性値や要素内容等、各値がどの値を表すものか判断することができる。
バイナリXMLパーサは、値の所属に基づいて、値の所属が内部メモリに保存する種類であるかどうか判定(記憶判定)する(S108)。S108において、値の所属が内部メモリに保存する種類ではないと判断した場合、バイナリXMLパーサは、S107で解析したサイズ分、値を内部メモリに保存しないで読み飛ばす(S109)。より具体的に説明すると、後述する図9に示すように、バイナリXMLパーサは、値テーブルを構成するレコードデータである値データの内、値を含まない値データ(符号+所属+サイズ)を内部メモリに保存(記憶)する。
S108において、その値の所属が内部メモリに保存する種類であると判断した場合、バイナリXMLパーサは、S103において解析した内容に基づいて、値のサイズが内部メモリに保存する上限サイズ以下であるかどうか判定(記憶判定)する(S110)。S110において、値のサイズが上限値以下ではないと判断した場合、バイナリXMLパーサは、S107で解析したサイズ分、値を内部メモリに保存しないで読み飛ばす(S109)。より具体的に説明すると、上述したように、バイナリXMLパーサは、値テーブルを構成するレコードデータである値データの内、値を含まない値データ(符号+所属+サイズ)を内部メモリに保存(記憶)する。S110において、値のサイズが上限値以下であると判断した場合、バイナリXMLパーサは、値を内部メモリに保存する(S111)。
図8の処理で値テーブルを解析した後の内部メモリに保存した値テーブルを示したものが図9である。図9は、内部メモリに保存した値テーブルの一例を示した図(その1)である。
図9に示されるように、本実施形態では、値の上限サイズ50000バイトを越えた100000バイトのBASE64化した画像データと、コメントの内容と、をバイナリXMLパーサは、S103の制限情報に基づいて内部メモリに保存していない。
次に、バイナリXMLパーサは、内部メモリに保存した名前テーブルと、値テーブルと、を用いて、図10に示す処理を実行し、図4に示したバイナリXMLデータの構造と、値と、を含んだボディ部を解析する。図10は、ボディ部の解析処理の一例を示すフローチャート(その1)である。
バイナリXMLパーサは、タグ名を内部メモリに保存するスタックを初期化する(S202)。そして、バイナリXMLパーサは、ボディ部を全て解析したかどうか判定する(S203)。S203において、ボディ部を全て解析していないと判断した場合、バイナリXMLパーサは、ボディ部を1バイト読み進めてイベントの種類を解析する(S204)。
次に、バイナリXMLパーサは、前記イベントの種類が開始タグであるかどうか判定する(S205)。S205において、イベントの種類が開始タグであると判断した場合、バイナリXMLパーサは、ボディ部を1バイト読み進め、名前テーブルを用いてタグ名を解析する(S206)。その際、バイナリXMLパーサは、そのタグ名をスタックにプッシュし(S207)、開始タグの名前としてそのタグ名を要求元のアプリケーションに渡す(S208)。
S205において、イベントの種類が開始タグではないと判断した場合、バイナリXMLパーサは、終了タグであるかどうか判定する(S209)。S209において、イベントの種類が終了タグであると判断した場合、バイナリXMLパーサは、スタックからタグ名をポップし(S210)、終了タグの名前としてポップしたタグ名を要求元のアプリケーションに渡す(S211)。
S209において、イベントの種類が終了タグではないと判断した場合、バイナリXMLパーサは、属性であるかどうか判定する(S212)。S212において、イベントの種類が属性であると判断した場合、バイナリXMLパーサは、ボディ部を1バイト読み進め、名前テーブルを用いて属性名を解析する(S213)。そして、バイナリXMLパーサは、ボディ部を1バイト読み進め、値テーブルを用いて属性値(値)を解析するが、その際、その属性値を値テーブルに保存しているかどうか判定(値判定)する(S214)。S214において、その属性値を値テーブルに保存していると判断した場合、バイナリXMLパーサは、要求元のアプリケーションに属性名と、属性値と、を渡す(S215)。S214において、その属性値を値テーブルに保存していないと判断した場合、バイナリXMLパーサは、要求元のアプリケーションに属性名と、属性値の符号と、サイズ情報と、を渡す(通知する)(S216)。
S212において、イベントの種類が属性ではないと判断した場合、バイナリXMLパーサは、要素内容であるかどうか判定する(S217)。S217において、イベントの種類が要素内容であると判断した場合、バイナリXMLパーサは、ボディ部を1バイト読み進め、値テーブルを用いて要素内容を解析する。その際、バイナリXMLパーサは、その要素内容を値テーブルに保存しているかどうか判定(値判定)する(S218)。S218において、その要素内容を値テーブルに保存していると判断した場合、バイナリXMLパーサは、要求元のアプリケーションにその要素内容を渡す(S219)。S218において、その要素内容を値テーブルに保存していないと判断した場合、バイナリXMLパーサは、要求元のアプリケーションに要素内容の符号と、サイズ情報と、を渡す(通知する)(S220)。
S212において、イベントの種類が要素内容ではないと判断した場合、バイナリXMLパーサは、イベントの種類がコメントであると判断する。そして、バイナリXMLパーサは、ボディ部を1バイト読み進め、コメントの内容を解析するが、その際、コメントの内容を値テーブルに保存しているかどうか判定(値判定)する(S221)。S221において、そのコメントの内容を値テーブルに保存していると判断した場合、バイナリXMLパーサは、要求元のアプリケーションにそのコメントの内容を渡す(S222)。S221において、コメントの内容を値テーブルに保存していないと判断した場合、バイナリXMLパーサは、要求元のアプリケーションにコメントの内容の符号と、サイズ情報と、を渡す(通知する)(S223)。
本実施形態では、図9の内部メモリに保存した値テーブルに基づいて、バイナリXMLパーサは、photo要素の要素内容と、コメントの内容と、については、要求元のアプリケーションにそれぞれの符号と、サイズ情報と、を渡す。
バイナリXMLパーサが図10に示した処理でボディ部の解析を一通り終えた後でアプリケーションが、バイナリXMLパーサによって読み飛ばされた値データを取得する必要がある場合、図11の処理が実行されることで取得することができる。図11は、値を取得する処理の一例を示すフローチャート(その1)である。
まず、アプリケーションは、取得したい値の符号と共に取得したサイズ情報を解析する(S302)。そして、アプリケーションは、値のサイズ情報を基に、その値を取得するかどうか判定する(S303)。S303において、その値を取得すると判断した場合、アプリケーションは、値の符号をバイナリXMLパーサに渡す(S304)。
バイナリXMLパーサは、アプリケーションより符号を渡されると、バイナリXMLデータの解析を再度先頭から開始する(S305)。その際、アプリケーションが取得したいデータは値データなので、バイナリXMLパーサは、名前テーブルの内容は内部メモリに保存しないで読み飛ばす。
そして次に、バイナリXMLパーサは、値テーブルの全ての内容を解析したかどうか判定する(S306)。S306において、値テーブルの全ての内容を解析していないと判断した場合、バイナリXMLパーサは、各符号を解析し(S307)、渡された符号と一致するかどうか判定する(S308)。S308において、渡された符号と一致したと判断した場合、バイナリXMLパーサは、値テーブルからその符号の組である値を取得(値取得)し、要求元のアプリケーションに渡す(S309)。
S308において、渡された符号と一致しないと判断した場合、バイナリXMLパーサは、アプリケーションの指定した符号が出現するまで、値テーブルの解析を続ける。S306において、値テーブルの全ての内容を解析したと判断した場合、バイナリXMLパーサは、要求元のアプリケーションに、指定した符号が値テーブルに含まれていないことを通知する(S310)。
バイナリXMLパーサは、S309において、要求元のアプリケーションに値を渡す際には、値だけではなく、前記値を含む値データを渡してもよい。また、バイナリXMLパーサは、S309において、値データ全体を一括で渡すのではなく、アプリケーションが値データを逐次読むことができるようにストリーム形式で渡してもよい。
以上の処理によって、符号化テーブルにサイズの大きなデータを含むバイナリXMLデータを、少ないメモリリソースで解析できるようになる。
<実施形態2>
本実施形態では、符号化テーブル内の読み飛ばしたサイズの大きなデータを、アプリケーションがバイナリXMLデータの先頭からのオフセットを指定することによって取得する処理について説明する。
図12は、バイナリXMLデータに含まれる符号化テーブルを解析する処理の一例を示すフローチャート(その2)である。
まず、バイナリXMLパーサは、バイナリXMLデータの先頭からのバイト数を数える変数offsetを初期化する(S402)。次に、バイナリXMLパーサは、要素名や属性名等と、その名前に割り当てたられ符号と、を格納した名前テーブルを解析し、各名前と符号との組をRAM203又は記憶部204等の内部メモリに保存する(S403)。
次に、バイナリXMLパーサは、名前テーブル解析後に、バイナリXMLデータの現在の解析位置で、変数offsetを更新する。次に、バイナリXMLパーサは、属性値や要素内容、コメントの内容等の値と、その値に割り当てられた符号と、を格納した値テーブルを内部メモリに保存する際の制限情報を解析する(S404)。
バイナリXMLパーサは、値テーブルの解析を開始するが、まず値テーブルの全ての内容を解析したか否かを判定する(S405)。S405において、値テーブルの全ての内容を解析していないと判断した場合、バイナリXMLパーサは、値テーブルに含まれる各値の、符号、所属情報、サイズ情報を解析し、内部メモリに保存する(S406〜S408)。
そして、バイナリXMLパーサは、サイズ情報のデータが始まる位置で変数offsetを更新し、その値を内部メモリに保存する(S409)。なお、サイズ情報のデータサイズは4バイトとする。
そして、バイナリXMLパーサは、S404において解析した内容に基づいて、値の所属が内部メモリに保存する種類であるかどうか判定(記憶判定)する(S410)。S410において、値の所属が内部メモリに保存する種類ではないと判断した場合、バイナリXMLパーサは、S408で解析したサイズ分、値を内部メモリに保存しないで読み飛ばす(S411)。より具体的に説明すると、上述したように、バイナリXMLパーサは、値テーブルを構成するレコードデータである値データの内、値を含まない値データ(符号+所属+サイズ+オフセット(offset))を内部メモリに保存(記憶)する。S410において、その値の所属が内部メモリに保存する種類であると判断した場合、バイナリXMLパーサは、S408において解析した内容に基づいて、値のサイズが内部メモリに保存する上限サイズ以下であるかどうか判定(記憶判定)する(S412)。S412において、値のサイズが上限値以下ではないと判断した場合、バイナリXMLパーサは、S408で解析したサイズ分、値を内部メモリに保存しないで読み飛ばす(S411)。より具体的に説明すると、上述したように、バイナリXMLパーサは、値テーブルを構成するレコードデータである値データの内、値を含まない値データ(符号+所属+サイズ+オフセット(offset))を内部メモリに保存(記憶)する。S412において、値のサイズが上限値以下であると判断した場合、バイナリXMLパーサは、値を内部メモリに保存する(S413)。
図12の処理で値テーブルを解析した後の、内部メモリに保存した値テーブルを示したものが図13である。図13は、内部メモリに保存した値テーブルの一例を示した図(その2)である。
図13に示されるように、値の上限サイズ50000バイトを越えた100000バイトのBASE64化した画像データと、コメントの内容と、をバイナリXMLパーサは、S404の制限情報に基づいて内部メモリに保存していない。また、バイナリXMLパーサは、値テーブルにおけるサイズ情報の開始位置をオフセット値として保存している。
次に、バイナリXMLパーサは、内部メモリに保存した名前テーブルと、値テーブルと、を用いて、図14に示す処理を実行し、図4に示したバイナリXMLデータの構造と、値と、を含んだボディ部を解析する。図14は、ボディ部の解析処理の一例を示すフローチャート(その2)である。
バイナリXMLパーサは、タグ名を内部メモリに保存するスタックを初期化する(S502)。そして、バイナリXMLパーサは、ボディ部を全て解析したかどうか判定する(S503)。S503において、ボディ部を全て解析していないと判断した場合、バイナリXMLパーサは、ボディ部を1バイト読み進めてイベントの種類を解析する(S504)。
次に、バイナリXMLパーサは、前記イベントの種類が開始タグであるかどうか判定する(S505)。S505において、イベントの種類が開始タグであると判断した場合、バイナリXMLパーサは、ボディ部を1バイト読み進め、名前テーブルを用いてタグ名を解析する(S506)。その際、バイナリXMLパーサは、そのタグ名をスタックにプッシュし(S507)、開始タグの名前としてそのタグ名を要求元のアプリケーションに渡す(S508)。
S505において、イベントの種類が開始タグではないと判断した場合、バイナリXMLパーサは、終了タグであるかどうか判定する(S509)。S509において、イベントの種類が終了タグであると判断した場合、スタックからタグ名をポップし(S510)、終了タグの名前としてポップしたタグ名を要求元のアプリケーションに渡す(S511)。
S509において、イベントの種類が終了タグではないと判断した場合、バイナリXMLパーサは、属性であるかどうか判定する(S512)。S512において、イベントの種類が属性であると判断した場合、バイナリXMLパーサは、ボディ部を1バイト読み進め、名前テーブルを用いて属性名を解析する(S513)。そして、バイナリXMLパーサは、ボディ部を1バイト読み進め、値テーブルを用いて属性値(値)を解析するが、その際、その属性値を値テーブルに保存しているかどうか判定(値判定)する(S514)。S514において、その属性値を値テーブルに保存していると判断した場合、バイナリXMLパーサは、要求元のアプリケーションに属性名と、属性値と、を渡す(S515)。S514において、その属性値を値テーブルに保存していないと判断した場合、バイナリXMLパーサは、要求元のアプリケーションに属性名と、属性値の位置に関するオフセットと、属性値のサイズ情報と、を渡す(通知する)(S516)。
S512において、イベントの種類が属性ではないと判断した場合、バイナリXMLパーサは、要素内容であるかどうか判定する(S517)。S517において、イベントの種類が要素内容であると判断した場合、バイナリXMLパーサは、ボディ部を1バイト読み進め、値テーブルを用いて要素内容を解析する。その際、バイナリXMLパーサは、その要素内容を値テーブルに保存しているかどうか判定(値判定)する(S518)。S518において、その要素内容を値テーブルに保存していると判断した場合、バイナリXMLパーサは、要求元のアプリケーションにその要素内容を渡す(S519)。S518において、その要素内容を値テーブルに保存していないと判断した場合、バイナリXMLパーサは、要求元のアプリケーションに要素内容の位置に関するオフセットと、要素内容のサイズ情報と、を渡す(通知する)(S520)。
S512において、イベントの種類が要素内容ではないと判断した場合、バイナリXMLパーサは、イベントの種類がコメントであると判断する。そして、バイナリXMLパーサは、ボディ部を1バイト読み進め、コメントの内容を解析するが、その際、コメントの内容を値テーブルに保存しているかどうか判定(値判定)する(S521)。S521において、そのコメントの内容を値テーブルに保存していると判断した場合、要求元のアプリケーションにそのコメントの内容を渡す(S522)。S521において、そのコメントの内容を値テーブルに保存していないと判断した場合、バイナリXMLパーサは、要求元のアプリケーションにコメントの内容の位置に関するオフセットと、コメントの内容のサイズ情報と、を渡す(通知する)(S523)。
本実施形態では、図13の内部メモリに保存した値テーブルに基づいて、バイナリXMLパーサは、photo要素の要素内容と、コメントの内容と、については、要求元のアプリケーションにはそれぞれの位置に関するオフセットと、サイズ情報と、を渡す。
バイナリXMLパーサが図14に示した処理でボディ部の解析を一通り終えた後でアプリケーションが、バイナリXMLパーサによって読み飛ばされた値データを取得する必要がある場合、図15の処理が実行されることで取得することができる。図15は、値を取得する処理の一例を示すフローチャート(その2)である。
まず、アプリケーションは、取得したい値のサイズ情報を解析する(S602)。そして、アプリケーションは、値のサイズ情報を基に、その値を取得するかどうか判定する(S603)。S603において、その値を取得すると判断した場合、アプリケーションは、値に関するオフセットをバイナリXMLパーサに渡す(S604)。
バイナリXMLパーサは、アプリケーションよりオフセットを渡されると、バイナリXMLデータの解析を再度先頭から開始し、前記オフセット分、データを読み飛ばす(S605)。そして、バイナリXMLパーサは、取得する値のサイズ情報を解析し(S606)、サイズ分のデータ(値)を読み込み(値取得)、要求元のアプリケーションに渡す(S607)。
バイナリXMLパーサは、S607において、要求元のアプリケーションに値を渡す際には、値だけではなく、前記値を含む値データを渡してもよい。また、バイナリXMLパーサは、S309において、値データ全体を一括で渡すのではなく、アプリケーションが値データを逐次読むことができるようにストリーム形式で渡してもよい。
以上の処理によって、符号化テーブル内の読み飛ばしたサイズの大きなデータを、アプリケーションがバイナリXMLデータの先頭からのオフセットを指定することによって、より少ない解析時間で取得できるようになる。
<その他の実施形態>
また、上述した実施形態の目的は、以下のようにすることによって達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(又は記録媒体)を、システム或いは装置に供給する。そして、そのシステム或いは装置の中央演算処理手段(CPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行する。この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになり、そのプログラムコードを記録した記憶媒体は上述した実施形態を構成することになる。
また、システム或いは装置の前記中央演算処理手段が読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、システム或いは装置上で稼働しているオペレーティングシステム(OS)等が実際の処理の一部又は全部を行う。その処理によって上述した実施形態の機能が実現される場合も含まれる。
更に、記憶媒体から読み出されたプログラムコードが、前記システム或いは装置に挿入された機能拡張カードや、接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行い、その処理によって上述した実施形態の機能が実現される場合も含まれる。
上述した実施形態を前記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
以上、上述した各実施形態によれば、構造化文書の符号化に関するオブジェクト(例えば符号化テーブル等)に、サイズの大きなデータが含まれている場合でも、少ないメモリリソースで解析できるようにすることができる。
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
なお、特許請求の範囲に記載の値オブジェクトは、例えば、上述した図3に示したような値テーブル等に対応する。値テーブルは上述したようにXMLデータ文書(構造化文書)に含まれる構造情報と値とを符号化して作成された図4に示されるような符号化文書に含まれる符号と値と値に関する属性値の一例として所属及びサイズとが対応付けられた値データを複数含んでいる。また、特許請求の範囲に記載のメモリ内値オブジェクトは、例えば、上述した図9又は図13に示したような内部メモリに保存した値テーブル等に対応する。また、特許請求の範囲に記載の値データは、例えば、上述した値テーブルに含まれる1レコードのデータ等に対応する。また、特許請求の範囲に記載の情報処理装置及びコンピュータは、例えば、上述したPC101、又はデジタルカメラ103、又は複合機104、又はファイルサーバ105等に対応する。
101 PC、102 LAN、103、デジタルカメラ、104 複合機

Claims (10)

  1. 構造化文書に含まれる構造情報と値とを符号化して作成された符号化文書に含まれる符号と、前記値と、前記値に関する属性値と、が対応付けられた値データを複数含む値オブジェクトの前記値データの前記属性値に基づいて、前記属性値に対応する値を含む値データをメモリに記憶するか否かを判定する記憶判定手段と、
    前記記憶判定手段で前記属性値に対応する値を含む値データをメモリに記憶すると判定された場合には、前記値を含む値データをメモリ内のメモリ内値オブジェクトに記憶し、前記記憶判定手段で前記属性値に対応する値を含む値データをメモリに記憶しないと判定された場合には、前記値を含まない値データをメモリ内のメモリ内値オブジェクトに記憶する記憶手段と、
    を有する、情報処理装置。
  2. 前記メモリ内値オブジェクトの値データに値が含まれているか否かを判定する値判定手段と、
    前記値判定手段で前記メモリ内値オブジェクトの値データに値が含まれていると判定された場合には、前記値をアプリケーションに返し、前記値判定手段で前記メモリ内値オブジェクトの値データに値が含まれていないと判定された場合には、前記値データに含まれる符号及び属性値をアプリケーションに返す通知手段と、
    を更に有する、請求項1記載の情報処理装置。
  3. 前記アプリケーションから前記符号が渡された場合、前記値オブジェクトを解析し、前記アプリケーションから渡された符号と一致する符号を含む値データの値を前記アプリケーションに渡す値取得手段を更に有する、請求項2記載の情報処理装置。
  4. 前記記憶手段は、値データを前記メモリ内値オブジェクトに記憶する際に、値のオフセットを含めて前記値データに記憶し、
    前記メモリ内値オブジェクトの値データに値が含まれているか否かを判定する値判定手段と、
    前記値判定手段で前記メモリ内値オブジェクトの値データに値が含まれていると判定された場合には、前記値をアプリケーションに返し、前記値判定手段で前記メモリ内値オブジェクトの値データに値が含まれていないと判定された場合には、前記値データに含まれる属性値及びオフセットをアプリケーションに返す通知手段と、
    を更に有する、請求項1記載の情報処理装置。
  5. 前記アプリケーションから前記属性値及び前記オフセットが渡された場合、前記属性値及び前記オフセットに基づいて該当する値を前記値オブジェクトから取得し、取得した値を前記アプリケーションに渡す値取得手段を更に有する、請求項4記載の情報処理装置。
  6. 前記値に関する属性値は、前記値のサイズである、請求項1乃至5何れか1項記載の情報処理装置。
  7. 前記値に関する属性値は、前記値の種類情報である、請求項1記載の情報処理装置。
  8. 構造化文書に含まれる構造情報と値とを符号化して作成された符号化文書に含まれる符号と、前記値と、前記値に関する属性値と、が対応付けられた値データを複数含む値オブジェクトの前記値データの前記属性値に基づいて、前記属性値に対応する値を含む値データをメモリに記憶するか否かを判定する記憶判定ステップと、
    前記記憶判定ステップで前記属性値に対応する値を含む値データをメモリに記憶すると判定された場合には、前記値を含む値データをメモリ内のメモリ内値オブジェクトに記憶し、前記記憶判定ステップで前記属性値に対応する値を含む値データをメモリに記憶しないと判定された場合には、前記値を含まない値データをメモリ内のメモリ内値オブジェクトに記憶する記憶ステップと、
    を有する、情報処理方法。
  9. コンピュータを、
    構造化文書に含まれる構造情報と値とを符号化して作成された符号化文書に含まれる符号と、前記値と、前記値に関する属性値と、が対応付けられた値データを複数含む値オブジェクトの前記値データの前記属性値に基づいて、前記属性値に対応する値を含む値データをメモリに記憶するか否かを判定する記憶判定手段と、
    前記記憶判定手段で前記属性値に対応する値を含む値データをメモリに記憶すると判定された場合には、前記値を含む値データをメモリ内のメモリ内値オブジェクトに記憶し、前記記憶判定手段で前記属性値に対応する値を含む値データをメモリに記憶しないと判定された場合には、前記値を含まない値データをメモリ内のメモリ内値オブジェクトに記憶する記憶手段と、
    して機能させるプログラム。
  10. 請求項9記載のプログラムを記憶した、コンピュータが読み取り可能な記憶媒体。
JP2009097120A 2009-04-13 2009-04-13 情報処理装置、情報処理方法、プログラム及び記憶媒体 Expired - Fee Related JP5409090B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009097120A JP5409090B2 (ja) 2009-04-13 2009-04-13 情報処理装置、情報処理方法、プログラム及び記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009097120A JP5409090B2 (ja) 2009-04-13 2009-04-13 情報処理装置、情報処理方法、プログラム及び記憶媒体

Publications (2)

Publication Number Publication Date
JP2010250434A true JP2010250434A (ja) 2010-11-04
JP5409090B2 JP5409090B2 (ja) 2014-02-05

Family

ID=43312717

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009097120A Expired - Fee Related JP5409090B2 (ja) 2009-04-13 2009-04-13 情報処理装置、情報処理方法、プログラム及び記憶媒体

Country Status (1)

Country Link
JP (1) JP5409090B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012203819A (ja) * 2011-03-28 2012-10-22 Toshiba Corp エンコーダコンパイラ、プログラムおよび通信機器
JP2012203826A (ja) * 2011-03-28 2012-10-22 Toshiba Corp デコーダコンパイラ、プログラムおよび通信機器
US9922040B2 (en) 2013-12-09 2018-03-20 Canon Kabushiki Kaisha Information processing apparatus, information processing method and program

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005101210A1 (ja) * 2004-04-09 2005-10-27 Sharp Kabushiki Kaisha データ解析装置、データ解析方法、データ解析プログラム、およびデータ解析プログラムを記録した記録媒体
JP2006277031A (ja) * 2005-03-28 2006-10-12 Canon Inc 情報処理装置及びその方法
JP2007102368A (ja) * 2005-09-30 2007-04-19 Seiko Epson Corp データファイル解析装置、データファイル編集装置、データファイル解析方法、データファイル解析プログラム、データファイル編集方法およびデータファイル編集プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005101210A1 (ja) * 2004-04-09 2005-10-27 Sharp Kabushiki Kaisha データ解析装置、データ解析方法、データ解析プログラム、およびデータ解析プログラムを記録した記録媒体
JP2006277031A (ja) * 2005-03-28 2006-10-12 Canon Inc 情報処理装置及びその方法
JP2007102368A (ja) * 2005-09-30 2007-04-19 Seiko Epson Corp データファイル解析装置、データファイル編集装置、データファイル解析方法、データファイル解析プログラム、データファイル編集方法およびデータファイル編集プログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNG200900341125; 中島 哲,小田切 淳一,井谷 宣子,吉田 茂: 'XML高速処理技術SPlitDOMの機能拡張とWebアプリケーションへの適用評価' 第15回データ工学ワークショップ(DEWS2004)論文集 [online] 【ISSN】1347-4413, 20040618, 電子情報通信学会データ工学研究専門委員会 *
JPN6013024320; 中島 哲,小田切 淳一,井谷 宣子,吉田 茂: 'XML高速処理技術SPlitDOMの機能拡張とWebアプリケーションへの適用評価' 第15回データ工学ワークショップ(DEWS2004)論文集 [online] 【ISSN】1347-4413, 20040618, 電子情報通信学会データ工学研究専門委員会 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012203819A (ja) * 2011-03-28 2012-10-22 Toshiba Corp エンコーダコンパイラ、プログラムおよび通信機器
JP2012203826A (ja) * 2011-03-28 2012-10-22 Toshiba Corp デコーダコンパイラ、プログラムおよび通信機器
US8700680B2 (en) 2011-03-28 2014-04-15 Kabushiki Kaisha Toshiba Decoder compiler, computer readable medium, and communication device
US9922040B2 (en) 2013-12-09 2018-03-20 Canon Kabushiki Kaisha Information processing apparatus, information processing method and program

Also Published As

Publication number Publication date
JP5409090B2 (ja) 2014-02-05

Similar Documents

Publication Publication Date Title
JP4576442B2 (ja) 画像処理装置およびユーザインターフェース提供方法
JP2006120125A (ja) ドキュメント画像情報管理装置及びドキュメント画像情報管理プログラム
US20170220277A1 (en) Terminal device, data management system, and server device
JP2012206505A (ja) 出力装置、システム、制御方法、プログラム
CN102801884A (zh) 图像处理装置和图像处理方法
WO2005057362A2 (en) Systems and methods for data interchange among autonomous processing entities
TW201714124A (zh) 文件管理系統及其方法
JP5409090B2 (ja) 情報処理装置、情報処理方法、プログラム及び記憶媒体
US11137964B2 (en) Information processing apparatus and non-transitory computer readable medium
JP2019067361A (ja) 情報処理装置、通信システム、画像形成方法、プログラム
JP2008310816A (ja) 複数のマークアップ・ページ・データをコンパクトに表現するシステムおよび方法
JP2008035224A (ja) ログ情報管理システム、ログ情報管理装置、ログ情報管理方法、ログ情報管理プログラム及び記憶媒体
CN102346771A (zh) 信息展现方法及装置
US8190563B2 (en) Document management apparatus, document management method, and computer-readable encoding medium recorded with a computer program
JP2006235756A (ja) 画像処理装置およびその方法
US10705777B2 (en) Information processing apparatus, image forming apparatus, and storage medium that enable printing while receiving random access document file
US9326015B2 (en) Information processing apparatus, information processing system, information processing method, and non-transitory computer readable medium
JP2001256256A (ja) 電子文書検索装置および電子文書検索方法
JP2010224659A (ja) 情報処理装置、情報処理方法、プログラム及び記憶媒体
JP2008020946A (ja) 画像ログ管理システム
JPWO2005101210A1 (ja) データ解析装置およびデータ解析プログラム
US20090287733A1 (en) Method for preparing prepress image data
US20090185786A1 (en) Information processing apparatus and information processing method
JP5612851B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP6996373B2 (ja) 情報処理装置、画像形成装置、システム及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120412

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130515

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130521

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130701

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130806

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130919

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131008

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131105

R151 Written notification of patent or utility model registration

Ref document number: 5409090

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees