説明

構造化文書処理装置、方法及びプログラム

【課題】XML文書の解析処理を極力行わずに、XML文書からのデータ読み込みや、XML文書へのデータ書込みを容易に行うことを可能とする補助的なデータを作成するための装置を提供する。
【解決手段】送信側が受信側のメモリアドレス情報をもとにXMLデータ内のデータ位置と受信側メモリアドレスとのマッピングテーブルを作成する(S702)。送信側は、XMLデータとともにマッピングテーブルを送信する(S703)ことにより、受信側ではXMLデータを解析することなく必要なデータを取得することが可能となる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は構造化文書を処理するための構造化文書処理装置等に関する。
【背景技術】
【0002】
従来、機器間やアプリケーション間でデータを送受信する際に、XML(Extensible Markup Language)などの構造化文書が用いられる場合がある。例えば、XML文書を受信しそこに記述されたデータをメモリに格納する際には、そのXML文書を解析し、XML文書に記述されたデータを要素名や属性名などに応じて所定のメモリ位置に格納する方法が一般的に知られている。
【0003】
図3の場合、装置においては、このXML文書の構文解析を行い、「Count」要素の要素内容として記述された文字列「10」を整数値に変換した上で、装置内のメモリの所定位置に格納するといったことが行われていた。また、メモリに格納してあるデータを既存のXML文書に反映する際には、メモリに格納してあるデータに応じて内部データの所定の値を変更しXML文書を出力するという方法が用いられてきた。
【0004】
このように装置でXML文書の解析処理を行うためには、DOMパーサやSAXパーサといったXML解析用のモジュールが装置に搭載され、また、解析に必要なだけのメモリが搭載されていることが一般的であった。
【0005】
【特許文献1】特開2007−226453号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、携帯機器などの装置においては、XML解析用のモジュールや必要なメモリを搭載することは装置の小型化や低価格化を進める上で負担となっていた。また、処理能力の低い装置においてはXML文書の解析に時間がかかってしまうという問題もあった。
【0007】
本発明は、XML文書の解析処理を極力行わずに、XML文書からのデータ読込みや、XML文書へのデータの書込みを容易に行うことを可能とする補助的なデータを生成するための装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明は、構造化文書を処理する構造化文書処理装置において、構造化文書のデータの相対位置情報を取得する文書内位置取得手段と、前記データに対応するメモリ空間のアドレス位置情報を取得するメモリアドレス取得手段と、前記文書内位置取得手段が取得した相対位置情報と前記メモリアドレス取得手段が取得したアドレス位置情報を対応付けたテーブルを作成するマッピングテーブル作成手段とを有することを特徴とする。
また、本発明は、構造化文書を処理する構造化文書処理方法において、構造化文書のデータの相対位置情報を取得する文書内位置取得工程と、前記データに対応するメモリ空間のアドレス位置情報を取得するメモリアドレス取得工程と、前記文書内位置取得工程にて取得した相対位置情報と前記メモリアドレス取得工程にて取得したアドレス位置情報を対応付けたテーブルを作成するマッピングテーブル作成工程とを有することを特徴とする。
また、本発明は、上記に記載の方法の各工程をコンピュータにて実施させるプログラムである。
【発明の効果】
【0009】
本発明によれば、XML文書からのデータの読み込みや、XML文書へのデータの書き込みを容易に行うことが可能となる。
【発明を実施するための最良の形態】
【0010】
以下、図面を参照して本発明に係る構造化文書処理装置の実施形態を説明する。本実施形態においては、本発明に係る構造化文書処理装置としてコンピュータ装置を例に説明する。本実施例は、構造化文書のデータの相対位置情報を取得する文書内位置取得手段と、前記データに対応するメモリ空間のアドレス位置情報を取得するメモリアドレス取得手段とを有する。また、前記文書内位置取得手段が取得した相対位置情報と前記メモリアドレス取得手段が取得したアドレス位置情報を対応付けたテーブルを作成するマッピングテーブル作成手段とを有する。
【0011】
本実施形態のコンピュータ装置の構成について、図1のブロック図を参照して説明する。
図1において、CPU101はシステム制御部であり装置全体を制御する。ROM102は、CPUの制御プログラムや各種固定データを格納する読取専用のメモリである。RAM103は、SRAM、DRAM等で構成された書換え可能なメモリであり、プログラム制御変数等を格納するためのものである。各種設定パラメータ、各種ワーク用バッファ等もRAM103に格納されるものである。
【0012】
ハードディスク104は、XMLファイルなどの各種ファイルを格納するためのものである。操作部105は、ハードキーボードやポインティングデバイス等で構成され、オペレータが各種入力操作を行うためのものである。表示部106は、LCD等を用いてオペレータに表示通知するためのものである。107は101〜106の各ユニットを通信可能に接続するシステムバスである。
【0013】
図2は、本発明の実施形態に係るコンピュータ装置を含むシステムの概要を示した構成図である。
同図において、コンピュータ装置201と小型プリンタ装置203および大型プリンタ装置204はLAN202に接続され、互いに通信が可能となっている。
【0014】
コンピュータ装置201はXMLデータの解析、変換、生成機能を有する。コンピュータ装置201は本発明に係る構造化文書処理装置に対応するものである。このコンピュータ装置201は、構造化文書のデータの相対位置情報を取得する文書内位置取得手段と、前記データに対応するメモリ空間のアドレス位置情報を取得するメモリアドレス取得手段とを有する。また、前記文書内位置取得手段が取得した相対位置情報と前記メモリアドレス取得手段が取得したアドレス位置情報を対応付けたテーブルを作成するマッピングテーブル作成手段とを有する。
【0015】
図2においては、LAN202に接続されている装置はコンピュータ装置201と小型プリンタ装置203、大型プリンタ装置204のみであるが、LAN202に他の装置が接続されていても良い。
【0016】
図2の小型プリンタ装置203および大型プリンタ装置204は、装置の設定情報をコンピュータ装置201から設定できるようになっている。設定情報とは、印刷時の濃度や、アクセス可能な最大ユーザ数、印刷モード、用紙種類など、装置の動作に必要な各種パラメータのことである。本実施形態のシステムでは、コンピュータ装置201からパラメータ設定用のXMLデータを小型プリンタ装置203および大型プリンタ装置204にそれぞれ送る。これにより、小型プリンタ装置203および大型プリンタ装置204の設定情報を設定することが可能である。
【0017】
本実施形態では、コンピュータ装置201でパラメータ設定用のXMLデータを生成し、LAN202を経由して小型プリンタ装置203に送る動作を説明する。小型プリンタ装置203では、コンピュータ装置201より送信されたXMLデータをもとに装置内のRAMに格納された設定パラメータの更新を行う。
【0018】
図3は、コンピュータ装置201で生成されるパラメータ設定用のXMLデータの一例である。
同図において、Count要素のEnable属性の属性値である「True」やCount要素の要素内容である「10」などは、それぞれ小型プリンタ装置203の設定情報に相当するものである。XMLデータの個々の記述内容によって小型プリンタ装置203の動作がどのように変化するかは本発明の本質ではないため、本実施形態には記述しない。
【0019】
図4は、小型プリンタ装置203のメモリ内のデータ配置を模式的に表したものである。
同図において401はRAMであり、同図に示したとおり画像情報や装置設定情報、通信情報などが格納される。402はRAM内の相対位置情報であるアドレス値である。403はRAM401のうち装置設定情報が格納されている部分を詳細に示したものであり、404はRAM内のアドレス値を示す。
【0020】
小型プリンタ装置203においては、メモリ上の各アドレス値0x020000等の位置にCount情報、Count/Enable情報、Density情報、Density/Max情報、DocType情報、MaxUser情報がそれぞれ格納される。なお、本実施形態で示したアドレス値は、絶対アドレスであっても相対アドレスであっても良い。
【0021】
図5は、小型プリンタ装置203からLAN202を経由してコンピュータ装置201に送られるメモリアドレス情報テーブルの内容を示した図である。図6は、コンピュータ装置201で生成されるマッピングテーブルの内容を示した図である。図7は、コンピュータ装置201においてパラメータ設定用のXMLデータを作成し小型プリンタ装置203に送信するまでの、コンピュータ装置201での処理手順を示したフローチャートである。
【0022】
図7に示すように、コンピュータ装置201では、まずパラメータ設定用のXMLデータの受信側となる小型プリンタ装置203からメモリアドレス情報テーブルを取得する(S701)。ここで小型プリンタ装置203から取得するメモリアドレス情報テーブルの内容は、図5に示したものである。すなわち、小型プリンタ装置203に格納する情報の種類(「Count情報」、「Density情報」など)と、メモリアドレス値、型情報(「int」、「float」など)の対応関係を示したテーブルである。図5では、便宜上文字で表現しているが、必ずしも文字列データでなくても良い。
【0023】
次に、パラメータ設定用のXMLデータとマッピングテーブルを作成する(S702)。ここで作成されるマッピングテーブルは、図6に示したものである。図6に示したマッピングテーブルには、XMLデータ中のデータ位置を示す値、そのデータの型、そのデータのバイト数、小型プリンタ装置203のRAM上の対応するメモリアドレス値、そのメモリアドレスに格納するときの型情報が含まれている。例えば、図6の1行目には「0x1c, char, 4 : 0x020004, bool」と記述されているが、これは、「XMLデータの先頭から0x1cの位置にある情報はchar型であり4バイトの長さである。そしてその情報は小型プリンタ装置203のRAMの0x020004のアドレス位置にbool型で格納されるべきものである」という意味である。
【0024】
一般にXMLデータは文字列で記述されるため、0x1cの次のカラムにある「char」という情報はなくても良いが、XMLデータ中にバイナリデータを埋め込むような形式のデータにおいては、このように型情報を記述することは有意である。図6では、便宜上テーブルを文字で表現しているが、必ずしも文字列データでなくても良い。
【0025】
S702の処理の後は、S702で作成したXMLデータとマッピングテーブルを小型プリンタ装置203に送信する(S703)。
【0026】
図7のフローチャートにおいては、S701で相手先のメモリアドレス情報テーブルを取得しているが、相手先のメモリアドレス情報をコンピュータ装置201があらかじめ保持しておき、その情報を参照するようにしても良い。また、複数の相手先のメモリアドレス情報をコンピュータ装置201が持っておき、通信相手先に応じてマッピングテーブルの内容が変わるような構成にしても良い。例えば、コンピュータ装置201は、通信相手先が小型プリンタ装置203か大型プリンタ装置204かを通信プロトコルによって認識し、相手先に応じてマッピングテーブルを切り替えるようにしても良い。
【0027】
また、図7のフローチャートに示した処理では、コンピュータ装置201と小型プリンタ装置203との間でメモリアドレス情報テーブルやマッピングテーブル、XMLデータ等の送受信を行っているが、このときの通信プロトコルは特に規定しない。HTTP、FTP、PTPなどのプロトコルを用いてもよいし、電子メールやSOAPを用いても良い。
【0028】
図8は、図7のS702におけるコンピュータ装置201の処理を詳細に示したフローチャートである。
同図に示したとおり、まず、XMLデータを構成する文字列をひとつファイルに出力する(S801)。S702の処理では、XMLデータを生成するために、XMLデータを構成する文字列を順次ファイルに出力する。例えば、図3のXMLデータを生成するためには、まず、タグの開始を示す文字「<」を出力し、以降は、最初の要素名を示す文字列「Settings」、タグの終了を示す文字「>」、改行文字、インデントの空白文字列、…、といった順で文字列を出力する。
【0029】
S801では、このように分解されたXMLを構成する文字列のうちのひとつを出力する。図示していないが、このとき、出力した文字列のバイト数をカウントし積算して変数に格納する。この変数に格納した値は、すなわちXMLデータの先頭からのバイト数となり、後述するS805の処理で用いられる。
【0030】
次に、XMLデータを構成する文字列をすべて出力したかどうかを判断する(S802)。この処理は、すなわちXMLデータを作成し終えたかどうかを判断するためのものである。S802においてXMLを構成する文字列をすべて出力していないと判断されれば、S801で出力した文字列が属性値または要素内容かどうかを判断する(S803)。
【0031】
S803において、出力した文字列が属性値および要素内容のいずれでもないと判断されれば、S801の処理に戻る。S803において、出力した文字列が属性値または要素内容のいずれかであると判断されれば、その属性値または要素内容に対応する情報が、S701で取得したメモリアドレス情報テーブルにあるかどうかを判断する(S804)。
【0032】
S804において、対応する情報がメモリアドレス情報テーブルにはないと判断されれば、S801の処理に戻る。S804において、対応する情報がメモリアドレス情報テーブルにあると判断されれば、属性値または要素内容のXMLデータ中の位置を示す値、型情報、バイト数をRAM103に格納する(S805)。ここで、XMLデータ中の位置を示す値は、本実施形態では先頭からのバイト数を用いる。バイト数でなく、文字数やビット数、XPATH式などを用いても良い。
【0033】
続いて、S701で取得したメモリアドレス情報テーブルの中の対応するアドレス値と型情報をRAM103に格納し(S806)、S801の処理に戻る。S802において、XMLデータを構成する文字列をすべて出力したと判断されれば、RAM103に格納したデータに基づいてマッピングテーブルを作成し出力する(S807)。
【0034】
このようにして作成されたXMLデータとマッピングテーブルが小型プリンタ装置203に送信される(S703)。
【0035】
図9は、小型プリンタ装置203における動作を示したフローチャートである。同図は、コンピュータ装置201から送られてきたXMLデータに記述された情報を、小型プリンタ装置203のメモリに格納する際の処理を示したものである。小型プリンタ装置203では、XMLデータとマッピングテーブルを受信した後、図9のフローチャートに示された処理を行う。
【0036】
同図において、まず、変数Nに1をセットする(S901)。変数Nはマッピングテーブルの行をカウントするための変数である。
【0037】
次に、マッピングテーブルにN行目があるか否かを判断する(S902)。ここで、N行目がないと判断されれば、処理を終了する。
【0038】
S902において、N行目があると判断されれば、マッピングテーブルのN行目を読み取る(S903)。
【0039】
そして、マッピングテーブルのN行目に記述されたXMLデータの位置から情報を読み取り、同様にN行目に記述されたメモリアドレス位置に情報を書き込む(S904)。書き込む際には、N行目に記述された型情報に従って変換を行う場合もある。
【0040】
例えば、S903において、図6に示されたマッピングテーブルの1行目を読み取った場合には、S904において以下の処理を行う。
まず、マッピングテーブルの1行目の1カラム目に記述された値「0x1c」は、XMLデータの先頭からのバイト位置を示す。これは、2カラム目に記述された文字列「char」は型情報である。また、3カラム目に記述された値「4」はバイト数であるから、XMLデータの先頭から0x1cバイト目から4バイトをchar型のデータとして読み込む。このときのXMLデータは図3に示したものだとすると、Count要素のEnable属性の属性値である「True」の文字列を読み込むことになる。
【0041】
次に、4カラム目の値「0x020004」はメモリアドレスであり、5カラム目の文字列「bool」はそのメモリアドレスにデータを格納する際の型情報である。よって、char型で読み込んだ「True」の文字列をbool型に変換した上で、メモリアドレス0x020004の位置にデータを書き込む。
【0042】
このように、小型プリンタ装置203は、型情報を示す文字列を解釈し、必要に応じてデータ型の変換を行う。以上がS904の実際の処理である。
【0043】
S904の処理の後は、変数Nに1を加え(S905)、S902以降の処理を繰り返す。すなわち、マッピングテーブルのすべての行について、同様の処理を行うことになる。
【0044】
以上、説明したように、図9のフローチャートの処理によって、小型プリンタ装置203は、XMLデータを解析することなく、必要なデータを装置内のメモリに格納することが可能となる。
【0045】
図10は、小型プリンタ装置203における動作を示したフローチャートである。小型プリンタ装置203は、オペレータが同装置の操作部を操作することによって装置設定情報の内容を変更することが可能である。変更があった場合には、変更後の内容に従ったXMLデータをコンピュータ装置201に送信する機能を有する。
【0046】
図10は、小型プリンタ装置203の操作部から変更操作があった場合の同装置の動作を示したものである。
同図に示したとおり、小型プリンタ装置203はまず同装置のメモリ上のデータを操作に従って変更する(S1001)。
【0047】
次に、変更したデータのメモリアドレスがマッピングテーブルにあるかどうかを判断する(S1002)。S1002において、変更したデータのメモリアドレスがマッピングテーブルにあると判断されれば、XMLデータ上の対応する位置のデータを書き換える(S1003)。
【0048】
S1003においては、マッピングテーブルの内容に従って、必要に応じてデータ型の変換を行う。
【0049】
そして、XMLデータのデータ長がS1003の書き換えによって変化したかどうかを判断する(S1004)。ここで、データ長が変化したと判断されれば、マッピングテーブルの各行の1カラム目の位置情報を書き換える。このとき、位置情報を書き換えるのは、XMLデータの、S1003の書き換え処理を行った位置より後に位置するデータに対応する行である。S1004でXMLデータのデータ長が変化していないと判断されれば、マッピングテーブルを書き換える必要はないため、図10の処理を終了する。
【0050】
図10に示したフローチャートの処理の後は、書き換えられたXMLデータをコンピュータ装置201に送信する。
【0051】
このように、図10に示した処理を行うことにより、小型プリンタ装置203ではXMLデータを解析せずに容易に記述内容の書き換えを行うことが可能となる。
【0052】
なお、本発明の目的は、以下の処理を実行することによっても達成される。即ち、上述した実施の形態の機能を実現するプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出す処理である。
【0053】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0054】
また、プログラムコードを供給するための記憶媒体としては、次のものを用いることができる。例えば、フロッピー(登録商標)ディスク、ハードディスク、光磁気ディスク、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD+RW、磁気テープ、不揮発性のメモリカード、ROM等である。または、プログラムコードをネットワークを介してダウンロードしてもよい。
【0055】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現される場合も本発明に含まれる。加えて、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれる。
【0056】
更に、前述した実施の形態の機能が以下の処理によって実現される場合も本発明に含まれる。即ち、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行う場合である。
【図面の簡単な説明】
【0057】
【図1】本発明の実施形態による構造化文書処理装置の構成を示すブロック図である。
【図2】本発明の実施形態によるコンピュータ装置を含むネットワークの構成を示す模式図である。
【図3】本発明の実施形態によるコンピュータ装置で生成されるXMLデータの記述例を示した図である。
【図4】小型プリンタ装置のメモリ内のデータ配置を表した模式図である。
【図5】小型プリンタ装置からコンピュータ装置に送られるメモリアドレス情報テーブルの内容を示した図である。
【図6】コンピュータ装置で生成されるマッピングテーブルの内容を示した図である。
【図7】本発明の実施形態によるコンピュータ装置の動作を示したフローチャートである。
【図8】本発明の実施形態によるコンピュータ装置の動作を示したフローチャートである。
【図9】小型プリンタ装置の動作を示したフローチャートである。
【図10】小型プリンタ装置の動作を示したフローチャートである。
【符号の説明】
【0058】
101 CPU
102 ROM
103 RAM
104 ハードディスク
105 操作部
106 表示部
107 システムバス
201 コンピュータ装置
202 LAN
203 小型プリンタ装置
204 大型プリンタ装置

【特許請求の範囲】
【請求項1】
構造化文書を処理する構造化文書処理装置において、
構造化文書のデータの相対位置情報を取得する文書内位置取得手段と、
前記データに対応するメモリ空間のアドレス位置情報を取得するメモリアドレス取得手段と、
前記文書内位置取得手段が取得した相対位置情報と前記メモリアドレス取得手段が取得したアドレス位置情報を対応付けたテーブルを作成するマッピングテーブル作成手段とを有することを特徴とする構造化文書処理装置。
【請求項2】
他の装置と通信を行うことが可能な通信手段と、
前記通信手段を用いて構造化文書を送信する送信手段とを有し、
前記メモリアドレス取得手段は、通信相手先のメモリ空間のアドレス位置情報を取得する手段であって、
前記送信手段は、前記構造化文書とともに前記マッピングテーブル作成手段が作成したテーブルを送信することを特徴とする請求項1に記載の構造化文書処理装置。
【請求項3】
少なくとも一つの通信相手先のメモリ空間のアドレス位置情報をあらかじめ保持しておく記憶手段を有し、
前記メモリアドレス取得手段は、前記記憶手段に記憶したアドレス位置情報を取得する手段であることを特徴とする請求項2に記載の構造化文書処理装置。
【請求項4】
構造化文書を処理する構造化文書処理方法において、
構造化文書のデータの相対位置情報を取得する文書内位置取得工程と、
前記データに対応するメモリ空間のアドレス位置情報を取得するメモリアドレス取得工程と、
前記文書内位置取得工程にて取得した相対位置情報と前記メモリアドレス取得工程にて取得したアドレス位置情報を対応付けたテーブルを作成するマッピングテーブル作成工程とを有することを特徴とする構造化文書処理方法。
【請求項5】
請求項4に記載の方法の各工程をコンピュータにて実施させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2010−97362(P2010−97362A)
【公開日】平成22年4月30日(2010.4.30)
【国際特許分類】
【出願番号】特願2008−266809(P2008−266809)
【出願日】平成20年10月15日(2008.10.15)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】