JP4942144B2 - 情報処理装置及びその制御方法、プログラム、記憶媒体 - Google Patents

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

Info

Publication number
JP4942144B2
JP4942144B2 JP2005362369A JP2005362369A JP4942144B2 JP 4942144 B2 JP4942144 B2 JP 4942144B2 JP 2005362369 A JP2005362369 A JP 2005362369A JP 2005362369 A JP2005362369 A JP 2005362369A JP 4942144 B2 JP4942144 B2 JP 4942144B2
Authority
JP
Japan
Prior art keywords
object model
document
model
information processing
processing apparatus
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.)
Expired - Fee Related
Application number
JP2005362369A
Other languages
English (en)
Other versions
JP2007164630A (ja
Inventor
均 内田
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 JP2005362369A priority Critical patent/JP4942144B2/ja
Publication of JP2007164630A publication Critical patent/JP2007164630A/ja
Application granted granted Critical
Publication of JP4942144B2 publication Critical patent/JP4942144B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は構造化文書を処理するための情報処理技術に関する。
従来より、XML等の構造化文書をアプリケーションにおいて読み取り、読み取った構造化文書のデータを操作する技術としてDOMやSAXが一般的に知られている。ただし、XMLは、Extensible Markup Languageの略称である。また、DOMは、Document Object Model(ドキュメント・オブジェクト・モデル)の略称である。また、SAXは、Simple API for XMLの略称である。
しかし、これらの技術を利用して、構造化文書の読み取りや操作の処理を有するアプリケーションを、所定のプログラミング言語で実装する場合、開発者は、構造化文書の構造を事前に知っている必要がある。このため、異なる文書構造を持つ構造化文書のデータの読み取りや操作を行うアプリケーションを作成するために、開発者は構造化文書の構造に合わせたDOMやSAXのアプリケーションを作り直さなければならない場合があった。このように、DOMやSAXを用いた開発は、多くの時間を要することがあった。
上記の問題に鑑み、近年、Sun MicrosystemsのJAXBや浅海智晴氏のRelaxerなどのデータバインディングツールが開発されている。これらのデータバインディングツールは、スキーマコンパイラを用いることによりXML SchemaやRELAX NGといったスキーマを基にプログラミング言語JAVAで記述されたプログラムを自動生成する。自動生成されたJAVAにより記述されたプログラムを用いることによって、構造化文書をJAVAのクラスに読み込む処理や構造化文書としてファイルに書き出す処理等の、構造化文書へのアクセスを容易に実行することができる。
DOMやSAXを利用するアプリケーションをプログラミングする場合、構造化文書の構造に合わせたプログラムを開発する必要があり、プログラムの開発工程数が非常に多くなる。これに対し、データバインディングツールを用いた開発においては、自動生成されるJAVAのAPIを用いることによりアプリケーションにおいて構造化文書のデータをJAVAのメンバ変数として指定できる。このため、プログラムの開発工程数を削減することができ、プログラム開発者の負担を減らすことができる。
スキーマ文書を基に自動生成されたJAVAのプログラムを用いて、構造化文書のデータをアプリケーションにおいて扱うことのできるデータに変換する処理をアンマーシャルと呼ぶ。また、自動生成されたJAVAのプログラムを用いて、アプリケーションがJAVAのクラスに格納しているデータを構造化文書のデータとしてファイルに書き出す操作をマーシャルと呼ぶ。
図1はJAVAで記述されたプログラムに読み込む構造化文書(図1(b))と構造化文書に対応するベクターグラフィックス(図1(a))を例示した図である。
図2は図1(b)の構造化文書と妥当な関係にあるスキーマ文書の例として、XML Schemaの記述を例示した図である。
図3、図4は、図2に示したスキーマ文書を入力としてデータバインディングツールJAXBに含まれるスキーマコンパイラxjc.shを用いて自動生成されたJAVAで記述されたAPIを例示した図である。図3、図4と図2を比較して明らかなように、JAXBのスキーマコンパイラによって自動生成されるJAVAのクラスの入れ子構造は、その基となるスキーマの入れ子構造と対応関係がある。構造化文書のデータを読み込む処理やJAVAのクラスに格納されたデータを構造化文書としてファイルに書き出す処理を行うアプリケーションは、自動生成されたJAVAのAPIを利用することによりアンマーシャルやマーシャルを行うことができる。なお、JAXBは、アンマーシャル、マーシャルの処理をする際に、スキーマと構造化文書の妥当性を検証する機能も有している。
データバインディングツールは、例えば、グラフィカルユーザーインターフェースを備えたプログラム開発において利用することができる。例えば、グラフィカルユーザーインターフェースの画面を構造化文書として記述し、構造化文書をJAXBやRelaxerなどのスキーマコンパイラを用いることによりプログラムの基本部分を自動生成できるようになる。
上記のように、データバインディングツールを用いた開発は、DOMやSAXを用いてプログラムを実装する場合に比べて、プログラム開発者が直接コーディングするコードが短くなり、アプリケーションの開発効率を上げることが可能となる。また、上記のように、JAXBコンパイラによって生成されるJAVAのAPIに係るプログラムとアプリケーション共通のライブラリとを用いることによりを用いることによりXML文書をJAVAのクラスに変換(マッピング)する。このため、JAVAのアプリケーションはXMLの文書構造を知らなくてもXMLのデータをアプリケーションにおいて利用することができる。
特開2003−203067号公報
しかし、JAXBやRelaxerなど既存のデータバインディングツールは、スキーマ文書をもとにJAVAのAPIに係るプログラムを自動生成する。このため、APIを用いてアンマーシャルやマーシャル処理するアプリケーションにとって不要なデータを処理するためのプログラムがAPIに含まれる場合がある。このような不要なAPIに係るプログラムには、使用しないデータを処理するためのJAVAクラスや変数、メソッド等のソースコードが含まれる。
また、APIをリソースの限られた機器のアプリケーションにおいて使用する場合、アプリケーションにとって不要なデータを操作するプログラムを含むため、多くの記憶容量を必要としてしまう。また、アプリケーションにおいてマーシャルやアンマーシャルする際に、不要なJAVAのクラスをインスタンス化してしまうことによってCPUの多くの処理時間を必要としてしまう。
本発明は上記問題に鑑みなされたものであり、アプリケーションが低コストで構造化文書へアクセスすることを可能にする技術を提供することを目的とする。
上記目的を達成するため、本発明の一態様による情報処理装置は、第1の構造化文書に基づいて、複数の要素オブジェクトがツリー構造をなす第1のオブジェクトモデルを生成する第1のモデル生成手段と、前記第1の構造化文書の文書構造を定義する第2の構造化文書に基づいて、複数の要素オブジェクトがツリー構造をなす第2のオブジェクトモデルを生成する第2のモデル生成手段と、前記第1のオブジェクトモデルを用いて、前記第2のオブジェクトモデルを再構成する再構成手段と、前記再構成手段により再構成された前記第2のオブジェクトモデルにおける要素オブジェクトの親子関係に従ったクラス構造でクラスファイルを生成するファイル生成手段とを備え、前記再構成手段は、前記第2のオブジェクトモデルを構成する要素オブジェクトそれぞれについて、前記第1のオブジェクトモデルに含まれる要素オブジェクトであるか否かを判定する判定手段と、前記判定手段により前記第2のオブジェクトモデルを構成する要素オブジェクトのうち、前記第1のオブジェクトモデルに含まれる要素オブジェクトでないと判定された要素オブジェクトと、前記第2のオブジェクトモデルのツリー構造において当該要素オブジェクトよりも下位の要素オブジェクトとを削除する削除手段とを備える
本発明によれば、アプリケーションが低コストで構造化文書へアクセスすることを可能にする技術を提供することができる。
以下、添付図面を参照して本発明に係る実施の形態を詳細に説明する。ただし、この実施の形態に記載されている構成要素はあくまでも例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。
(システム構成)
図5は本実施形態に係る情報処理装置を含むシステムの概要を例示したブロック図である。図5において、スキャナ101は、ネットワーク102に接続されている。ネットワーク102には、携帯機器103、クライアントとしてのPC104、ネットワークプリンタ105、ファイルサーバ106が接続されている。
携帯機器103は、本実施形態に係る情報処理装置として機能する装置であり、PDAやデジタルカメラ、携帯電話、PHS等により実現される。
スキャナ101は、文書を光学的に読み取り画像データを生成する装置である。PC104は、デスクトップPC、ノートブックPC等のコンピュータ装置である。ネットワークプリンタ105は、ネットワーク102を経由して入力された画像データに基づいて、所定の記録媒体(記録用紙)に画像を形成する装置である。ファイルサーバ106は、ファイルを記憶する記憶装置を有し、ネットワーク102を介してファイルの入出力や、記憶装置に記憶されたファイルの管理等を行う。
ネットワーク102は、典型的には、インターネットであるが、有線/無線を問わず、公衆回線(アナログ回線、ISDN等)やLAN、WAN、無線LAN等のデータ送受信可能な回線であれば、どのような構成でもよい。ネットワークを用いた通信プロトコルは、例えば、TCP/IP等を採用することができる。
以下、携帯機器103において、XMLにより記述された画像(ベクターグラフィックス)を表示するアプリケーションを実行する場合について例示的に説明するが、アプリケーションはこれに限られない。また、処理を実行する装置は携帯機器103に限られず、例えば、汎用のPCやWS等においても実行可能であることは言うまでもない。
(携帯機器103の構成)
次に、携帯機器103の構成について図6を参照して説明する。図6は図5に例示したシステムにおける、携帯機器103の構成を示したブロック図である。
図6において、CPU201はシステム制御部であり、装置全体の動作を制御する。
ROM202は、CPUの制御プログラムや各種固定データを格納する読み出し専用のメモリ装置である。RAM203は、SRAM、DRAMなどで構成され、プログラム制御変数などを格納する書き込み可能なメモリ装置である。また、各種設定パラメータ、各種ワーク用バッファもRAM203に格納されている。
記憶部204はハードディスク等で構成される記憶装置であり、文書や画像などのスキャン画像等を格納する。操作パネル205はキーボード、タッチパネルなどで構成され、オペレータが各種入力操作を行うために利用される。表示部206は、LCD、LEDなどでオペレータに表示通知するディスプレイとして機能する。
LAN I/F207及びLAN I/F209は所定のネットワークに接続するためのネットワークインタフェースである。即ち、LAN I/F207は、LAN回線208に接続するためのインターフェースである。無線LAN I/F209は無線LAN回線210に接続するためのインターフェースである。
尚、以上の各装置と同等の機能を実現するソフトウェアにより、ハードウェア装置の代替として構成することもできる。
本実施形態では、本実施形態に係るプログラムを動作させる度に、既にプログラムがインストールされている記憶部204からRAM203にロードして実行する例を示すがこれに限られない。例えば、所定のメディア(不図示)から本実施形態に係るプログラム及び関連データを直接RAM203にロードして実行させてもよい。或いは、本実施形態に係るプログラムをROM202に記録しておき、これをメモリマップの一部をなすように構成し、直接CPU201で実行することも可能である。
また、本実施形態では、説明の便宜のため、本実施形態に係る情報処理装置(携帯機器103)を1つの装置で実現した構成について述べるが、複数の装置にリソースを分散した構成によって実現してもよい。例えば、記憶や演算のリソースを複数の装置に分散した形に構成してもよい。或いは、情報処理装置上で仮想的に実現される構成要素毎にリソースを分散し、並列処理を行うようにしてもよい。
(シナリオ)
例えば、リソースの限られている携帯機器103上にベクターグラフィックスを表示する場合、その表示処理においてはXMLのヘッダ情報(例えば、図1の111)が不要な場合がある。また、ベクターグラフィックスに高画質の画像が含まれる際、携帯機器のアプリケーションが容量の重い画像データを読み込まないようにすることによってアプリケーションの処理速度が向上する場合が考えられる。後述するように、本実施形態に係る構成は、このような処理が不要なXMLの箇所について処理を行わないように制御する。
本実施形態では、図1の構造化文書に含まれるベクターグラフィックスとしてSVGを用いる。また、構造化文書に含まれるデータのうちベクターグラフィックスに対応する箇所に基づいて、携帯機器103の表示部206に画像を表示する。図7(a)は、構造化文書のベクターグラフィックスに対応する箇所に基づいて表示した画像を例示した図である。図7(b)は、ヘッダ情報等の、携帯機器103が画像を表示する際に参照する必要のない部分を除いた、図7(a)の画像例に対応する構造化文書の一例であるXMLを例示した図である。図7と図1を比較して明らかなように、図7は、図1におけるデータのうち文字とイメージオブジェクトを携帯機器103表示し、ヘッダ情報とベクターグラフィックスにおける図形オブジェクトは表示しない場合を例示している。尚、イメージオブジェクトが高画質で容量が大きい際には、ヘッダ情報と同様に、イメージオブジェクトを読み込まないようにすることもできる。
図8は、図7の構造化文書を携帯機器103のアプリケーションに読み込むために利用するJAVAのAPIの生成する際のコマンドを例示した図である。図8は、図2のスキーマ文書("schema.xsd")と図7のベクターグラフィックスを含む構造化文書("graphics.xml")を入力としてコンパイルする場合を例示している。図8に示すように、生成するJAVAのAPIのパッケージ名をコンパイルオプション-pでtest.jaxbとしている。また、コンパイルオプション-dにより、生成するJAVAのAPIをカレントディレクトリに生成する。スキーマ文書のファイルにはコンパイルオプションとして-schemaを付け、構造化文書のファイルにはコンパイルオプションとして-xmlを付けることによりJAVAのAPIを生成するものとする。なお、このようなコマンドの規約は一例であり、これに限られないことは明らかである。また、グラフィカルインタフェースを用いてコンパイルに係る指定を受け付けるように構成してもよい。
なお、本実施形態においては、スキーマ文書はそれ自体が構造化文書となっている。即ち、本実施形態では、XML Schemaによりスキーマ文書を記述するが、XML Schema文書はXMLにより記述される。
(API生成処理)
次に、スキーマ文書と構造化文書からJAVAのAPIを生成する処理について図9、10、11を参照して説明する。図9はJAVAのAPIを生成する処理の全体の手順を示したフローチャートである。図10は、図9のステップS106において実行するDOM再構成処理の詳細な手順を示したフローチャートである。図11は図9のステップS107において実行するJAVAクラス生成処理の詳細な手順を示したフローチャートである。以下、説明を容易にするために、図8のコンパイルコマンドを実行し、図2に例示したスキーマ文書("schema.xsd")と、図7に例示したXML文書("graphics.xml")に基づいて処理を行う場合を例示的に説明する。
ステップS101において処理を開始すると、まず、コンパイル時に指定されたスキーマ文書を内部メモリに格納する(ステップS102)。内部メモリとしては例えばRAM203や記憶部204等を使用することができる。次に、ステップS102と同様に、コンパイル時に指定された構造化文書を内部メモリに格納する(ステップS103)。
次に、ステップS104において、スキーマ文書に基づいてDOMを生成する。図12は図2のスキーマ文書に基づいて生成されたDOMを例示した模式図である。図12のように、DOMは要素、内容モデル、属性からなるツリー構造を構成する。例えば、要素オブジェクト(ノード)1201は、図2における要素211に対応する。同様に、1202〜1210は212〜220にそれぞれ対応する。
次に、ステップS105において、ステップS104と同様に、構造化文書に基づいてDOMを生成する。図13は、図7のXML文書に基づいて生成されたDOMを例示した模式図である。例えば、要素オブジェクト1301は図7(b)の701に対応する。同様に、1302〜1304は702〜704にそれぞれ対応する。なお、ステップS104、S105の処理は公知技術を用いて実行することができる。また、生成したDOMに対応するデータはRAM203等に記憶する。
次に、構造化文書をもとに生成されたDOMを用いて、スキーマ文書をもとに生成したDOMを再構成する、DOM再構成処理を実行する(ステップS106)。この処理の詳細について、図10を参照して説明する。
DOM再構成処理を開始すると(ステップS201)、まず、スキーマ文書のDOMを構成する要素オブジェクトのそれぞれについて、構造化文書のDOMに含まれる要素オブジェクトであるかどうか判定する(ステップS202)。ただし、この判定は、スキーマ文書のDOMツリーにおいて、最上位ノードから子ノードを辿って順に行う。もし構造化文書のDOMに含まれる要素オブジェクトならば(ステップS202でYES)、ステップS204において、その要素オブジェクトにフラグ1を付与する。即ち、その要素オブジェクトに関連づけてフラグ1を記憶制御する。構造化文書のDOMに含まれない要素オブジェクトならば(ステップS202でNO)、要素オブジェクト以下の要素オブジェクトに0を付与する、即ち、その要素オブジェクトに関連づけてフラグ0を記憶制御する(ステップS203)。
図14は、図13の構造化文書のDOMをもとに各オブジェクトにフラグが付与された、図12のスキーマ文書に対応するDOMを示した模式図である。例えば、スキーマ文書の要素オブジェクト"picture"1201については、構造化文書に要素オブジェクト"picture"1301が存在するため、フラグ1が付与されている。これに対して、例えば、スキーマ文書の要素オブジェクト"header"1202は、これに対応する要素オブジェクトが構造化文書に存在しないため、フラグ0が付与されている。そして、フラグ0が付与された要素オブジェクト"header"1202以下の要素オブジェクト"date date型"1203、"author string型"1204にもフラグ0が付与されている。
次に、スキーマ文書のDOMの要素オブジェクトのそれぞれについてフラグか0であるかどうか判定する(ステップS205)。もしフラグが0ならば(ステップS205でYES)、DOMからそのオブジェクト以下のノードを全て削除する(ステップS206)。即ち、RAM203等の記憶装置から、フラグ0が付与された要素オブジェクト、及び、そのオブジェクト以下の要素オブジェクトに係るデータを削除する。
図15は、ステップS205の処理の結果、図14に例示したDOMから、フラグ0が付与された要素オブジェクトが削除された、即ち、XML文書に基づいて再構成されたスキーマ文書のDOMを例示した模式図である。
図9の説明に戻る。ステップS106のDOM再構成処理を終了すると、ステップS107において、ステップS106で再構成されたスキーマ文書のDOMに含まれるオブジェクトの親子関係をもとにJAVAのクラスを生成するJAVAクラス生成処理を実行する。JAVAクラス生成処理の詳細について図11を参照して説明する。
JAVAクラス生成処理を開始すると(ステップS301)、ステップS302へ進む。ステップS302では、schema要素のオブジェクトを除くDOMの各オブジェクトについて、最上位オブジェクト、即ち、schemaオブジェクトの第一子要素のオブジェクトであるかどうか判定する。図15の例では、"picture"オブジェクト1501がschemaオブジェクトの第一子要素のオブジェクトに該当する。1502〜1504オブジェクト等はschemaオブジェクトの第一子要素のオブジェクトに該当しない。
ステップS302において、schemaの第一子要素のオブジェクトならば(ステップS302でYES)オブジェクトの要素名であるJAVAのルートクラスを生成する(ステップS304)。もしschemaの第一子要素のオブジェクトではないならば(ステップS302でNO)、親要素のクラスのインナークラスとなるようにJAVAのクラスを生成する(ステップS303)。このようにしてJAVAクラスを生成することで、JAVAのAPIのクラス構造は、スキーマ文書のDOMにおける要素オブジェクトの親子関係と同じ構造になる。なお、クラスの生成はオブジェクトに付随する内容モデル、属性等に基づいて決定されるが、その処理は公知技術を用いて実行することができる。
図9の説明に戻る。次に、ステップS108で生成されたJAVAのクラスをファイルに書き出す(ステップS108)。
以上のように、本実施形態に係る構成においては、アプリケーションに不要な構造化文書のデータを扱うプログラムを含まないJAVAのAPIを生成することができる。なお、本実施形態においては、コンパイル時に指定する構造化文書は1つであるが、複数の構造化文書を指定する場合も考えられ、その際には複数の構造化文書をデータバインディング可能であるプログラムを生成することができる。ただし、複数の構造化文書を指定する場合は、DOM再構成処理(ステップS106)のステップS202において、スキーマ文書の要素オブジェクトが指定された複数の構造化文書に対応する複数のDOMのいずれかに含まれるか否かを判定する。即ち、複数のDOMのいずれかに含まれる場合はステップS204へ進み、いずれにも含まれない場合はステップS203へ進むように処理を行う。これにより、複数の構造化文書をデータバインディング可能であるプログラムを生成することができる。なお、スキーマ文書の属性オブジェクトにおいても同様のDOM再構成処理を行う場合がある。例えば、スキーマ文書において、ある属性に関するスキーマの記述は必要ないと判断した場合は、DOMの木構造から、その属性に関するスキーマの記述を削除するようにしてもよい。
(APIの例)
図16は本実施形態に係る構成による処理により生成されたAPIを例示した図である。APIにはコンパイル時に指定された構造化文書に含まれるデータを扱うプログラムのみが含まれる。即ち、ヘッダ情報とベクターグラフィックスに含まれる円と矩形の図形を扱うクラスが削除されたAPIとなっている。そして、携帯機器103は図16のAPIを利用することによりデータバインディング可能となる。
既存のJAXBコンパイラを用いて図2のスキーマ文書だけからJAVAのAPIを作成すると、不要な構造化文書のデータを扱うクラスを生成してしまう。これに対し、上記の手法を用いると不要な構造化文書のデータを扱うクラスを生成することなく必要なクラスのみを生成することができる。このため、このようなクラスを用いてデータバインディング可能となり、限られたリソースを持つ携帯機器などにおいてリソースを無駄な処理に割り当てることなく、効率的に処理を実行することができる。
なお、上記の構成では、サンプルとなる構造化文書(図7(b))に基づいて、ステップS106においてスキーマ文書を再構成する処理を行っているが、これに限られない。例えば、スキーマ文書からJAVAのAPIを生成する処理を開始するユーザの指示入力において、クラスを生成しないノードの指定を受け付け、この指定に基づいてDOM再構成処理(ステップS106)におけるノードの削除を制御するようにしてもよい。
クラスを生成しないノードの指定の受け付けは、例えば、コマンドラインにおいてクラスを生成しない箇所をXPath形式等により指定可能にすることができる。図17は、コマンドラインにおいてクラスを生成しない箇所が指定されている様子を例示する図である。図17では、コンパイルオプション"-remove"でクラスを生成しない箇所"schema/picture/complexType/sequence/header"、"schema/picture/complexType/sequence/svg/complexType/sequence/g"が指定されている。このような指定がなされた場合、本実施形態に係る構成は、図1のフローチャートにおいて、ステップS103、S105の処理を省略する。また、図10(ステップS106)のJAVAクラス生成処理のステップS202〜S204において、クラスを生成しない箇所として指定されている箇所にフラグ0を、それ以外の箇所にフラグ1を付与するように処理する。これにより、指定された箇所に対応するクラスを生成しないでクラスファイルを生成することができる。図17の例では、"schema/picture/complexType/sequence/header"、"schema/picture/complexType/sequence/svg/complexType/sequence/g"が指定されているため、図14のようにフラグが付与される。このため、図17の例のコマンドを実行すると、DOMツリーは図15のように再構成され、最終的に図16のようなクラスファイルが生成される。
また、本実施形態に係る構成により生成されたAPIを用いることで、アンマーシャル、マーシャル時に、構造化文書中の不要なデータをJAVAのクラスに読み込まないようにすることができる。このため、不要なオブジェクトのインスタンス化が必要なくなり、アプリケーションの処理時間や記憶容量を削減することができる。
なお、クラスを生成しないノードの指定の受け付けはコマンドラインによるものに限られない。例えば、スキーマ文書をツリー構造で模式的に表示し、このツリー構造において、クラスを生成しない箇所を選択可能に制御することにより、指定を受け付けるようにしてもよい。
また、上記では、XMLを使用するプログラムはJAVAにより記述されているものとしたが、使用するプログラミング言語はJAVAに限られないことは明らかである。例えば、はC言語、C++言語等を用いる場合においても同様の構成が適用可能である。
また、上記では、DOMの再構成として、所定の条件に基づいてDOMのノードを削除する構成について述べたがこれに限られない。例えば、基準となるDOMや、ユーザからの指示入力に基づいて、スキーマ文書又は構造化文書に対応するDOMのツリー構造を変更したり、新たなノードを追加して、クラスファイルを生成するように構成してもよい。例えば、指示入力に基づいて、或いは、基準となるDOMと同じ構造になるように、あるノードの子ノードを別のノードの子ノードとなるように再配置するように構成することができる。
また、上記ではスキーマ文書をXML Schemeにより記述した例を示したが、スキーマ言語はXML Schemeに限られないことは言うまでもない。例えば、スキーマ文書をRELAX NGや、或いは、XMLにより記述してもよい。
<<その他の実施形態>>
以上、本発明の実施形態例について詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様を取ることが可能である。具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
尚、本発明は、前述した実施形態の機能を実現するプログラムを、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明の技術的範囲に含まれる。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含む。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
プログラムを供給するための記録媒体としては、例えば、次のものが含まれる。即ち、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)等が含まれる。
その他、プログラムの供給形態としては、次のようなものも考えられる。即ち、クライアント装置のブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明に係るコンピュータプログラム、或いは、圧縮され自動インストール機能を含むファイルをHD等の記録媒体にダウンロードする形態も考えられる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、次のような供給形態も考えられる。即ち、まず、本発明に係るプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布する。そして、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報の使用により暗号化されたプログラムを実行してコンピュータにインストールさせて本発明に係る構成を実現する。このような供給形態も可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他次のような実現形態も想定される。即ち、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づいても前述した実施形態の機能が実現される。即ち、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
構造化文書と構造化文書に対応するベクターグラフィックスを例示した図である。 スキーマ文書の例を示した図である。 自動生成されたJAVAで記述されたAPIを例示した図である。 自動生成されたJAVAで記述されたAPIを例示した図である。 本実施形態に係る情報処理装置を含むシステムの概要を例示したブロック図である。 携帯機器の構成を示したブロック図である。 構造化文書と構造化文書に対応するベクターグラフィックスを例示した図である。 JAVAのAPIの生成する際のコマンドを例示した図である。 JAVAのAPIを生成する処理の全体の手順を示したフローチャートである。 DOM再構成処理の詳細な手順を示したフローチャートである。 JAVAクラス生成処理の詳細な手順を示したフローチャートである。 スキーマ文書に基づいて生成されたDOMを例示した模式図である。 構造化文書に基づいて生成されたDOMを例示した模式図である。 各オブジェクトにフラグが付与された、スキーマ文書に対応するDOMを例示した模式図である。 XML文書に基づいて再構成されたスキーマ文書のDOMを例示した模式図である。 本実施形態に係る構成による処理により生成されたAPIを例示した図である。 コマンドラインにおいてクラスを生成しない箇所が指定されている様子を例示する図である。

Claims (10)

  1. 第1の構造化文書に基づいて、複数の要素オブジェクトがツリー構造をなす第1のオブジェクトモデルを生成する第1のモデル生成手段と、
    前記第1の構造化文書の文書構造を定義する第2の構造化文書に基づいて、複数の要素オブジェクトがツリー構造をなす第2のオブジェクトモデルを生成する第2のモデル生成手段と、
    前記第1のオブジェクトモデルを用いて、前記第2のオブジェクトモデルを再構成する再構成手段と、
    前記再構成手段により再構成された前記第2のオブジェクトモデルにおける要素オブジェクトの親子関係に従ったクラス構造でクラスファイルを生成するファイル生成手段と
    を備え、
    前記再構成手段は、
    前記第2のオブジェクトモデルを構成する要素オブジェクトそれぞれについて、前記第1のオブジェクトモデルに含まれる要素オブジェクトであるか否かを判定する判定手段と、
    前記判定手段により前記第2のオブジェクトモデルを構成する要素オブジェクトのうち、前記第1のオブジェクトモデルに含まれる要素オブジェクトでないと判定された要素オブジェクトと、前記第2のオブジェクトモデルのツリー構造において当該要素オブジェクトよりも下位の要素オブジェクトとを削除する削除手段と
    を備えることを特徴とする情報処理装置。
  2. 前記第1のオブジェクトモデル及び前記第2のオブジェクトモデルにおけるツリー構造及び要素オブジェクトに対するユーザからの変更指示を入力する指示入力手段
    を更に備え、
    前記再構成手段は、
    前記指示入力手段からの変更指示に基づく変更が行なわれた前記第1のオブジェクトモデル及び前記第2のオブジェクトモデルに基づいて前記再構成を行なう
    ことを特徴とする請求項1記載の情報処理装置。
  3. 前記第1のモデル生成手段は、
    複数の前記第1の構造化文書に基づいて、複数の要素オブジェクトがツリー構造をなす前記第1のオブジェクトモデルを生成する
    ことを特徴とする請求項1又は2記載の情報処理装置。
  4. 前記第2の構造化文書は、XML、XML Schema、RELAX NGのいずれかにより記述される
    ことを特徴とする請求項1乃至のいずれか1項に記載の情報処理装置。
  5. 前記クラスファイルは、JAVA(登録商標)、C言語、C++言語のいずれかにより記述される
    ことを特徴とする請求項1乃至のいずれか1項に記載の情報処理装置。
  6. 前記第1及び第2のオブジェクトモデルはドキュメント・オブジェクト・モデル形式のデータである
    ことを特徴とする請求項1乃至のいずれか1項に記載の情報処理装置。
  7. 前記第2の構造化文書は文書のスキーマを示すスキーマ文書である
    ことを特徴とする請求項1乃至のいずれか1項に記載の情報処理装置。
  8. 情報処理装置の制御方法であって、
    第1のモデル生成手段が、第1の構造化文書に基づいて、複数の要素オブジェクトがツリー構造をなす第1のオブジェクトモデルを生成する工程と、
    第2のモデル生成手段が、前記第1の構造化文書の文書構造を定義する第2の構造化文書に基づいて、複数の要素オブジェクトがツリー構造をなす第2のオブジェクトモデルを生成する工程と、
    再構成手段が、前記第1のオブジェクトモデルを用いて、前記第2のオブジェクトモデルを再構成する工程と、
    ファイル生成手段が、前記再構成手段により再構成された前記第2のオブジェクトモデルにおける要素オブジェクトの親子関係に従ったクラス構造でクラスファイルを生成する工程と
    を備え、
    前記再構成手段は、
    判定手段が、前記第2のオブジェクトモデルを構成する要素オブジェクトそれぞれについて、前記第1のオブジェクトモデルに含まれる要素オブジェクトであるか否かを判定する工程と、
    削除手段が、前記判定手段により前記第2のオブジェクトモデルを構成する要素オブジェクトのうち、前記第1のオブジェクトモデルに含まれる要素オブジェクトでないと判定された要素オブジェクトと、前記第2のオブジェクトモデルのツリー構造において当該要素オブジェクトよりも下位の要素オブジェクトとを削除する工程と
    を備えることを特徴とする情報処理装置の制御方法。
  9. コンピュータを請求項1乃至のいずれかに記載の情報処理装置として機能させるためのコンピュータプログラム。
  10. 請求項に記載のコンピュータプログラムを格納したコンピュータで読み取り可能な記憶媒体。
JP2005362369A 2005-12-15 2005-12-15 情報処理装置及びその制御方法、プログラム、記憶媒体 Expired - Fee Related JP4942144B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005362369A JP4942144B2 (ja) 2005-12-15 2005-12-15 情報処理装置及びその制御方法、プログラム、記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005362369A JP4942144B2 (ja) 2005-12-15 2005-12-15 情報処理装置及びその制御方法、プログラム、記憶媒体

Publications (2)

Publication Number Publication Date
JP2007164630A JP2007164630A (ja) 2007-06-28
JP4942144B2 true JP4942144B2 (ja) 2012-05-30

Family

ID=38247428

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005362369A Expired - Fee Related JP4942144B2 (ja) 2005-12-15 2005-12-15 情報処理装置及びその制御方法、プログラム、記憶媒体

Country Status (1)

Country Link
JP (1) JP4942144B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5339839B2 (ja) * 2007-10-05 2013-11-13 キヤノン株式会社 文書検証装置およびその制御方法
US9361400B2 (en) * 2007-10-12 2016-06-07 Asml Netherlands B.V. Method of improved hierarchical XML databases
WO2014058146A1 (ko) * 2012-10-10 2014-04-17 에스케이플래닛 주식회사 웹 문서의 고속 웹 스크롤을 지원하는 사용자 단말 장치 및 스크롤 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2737284B2 (ja) * 1989-08-03 1998-04-08 日立電子エンジニアリング株式会社 筒形電池の巻回体素子への電極棒挿入方法
JP3831085B2 (ja) * 1996-09-11 2006-10-11 富士通株式会社 文書管理装置,サーバ装置,クライアント装置およびそれらのプログラム記憶媒体

Also Published As

Publication number Publication date
JP2007164630A (ja) 2007-06-28

Similar Documents

Publication Publication Date Title
Vaupel et al. Model-driven development of mobile applications for Android and iOS supporting role-based app variability
Visser WebDSL: A case study in domain-specific language engineering
JP5099982B2 (ja) 完全な柔軟性を有する自動化に基づくユーザインターフェースを生成する方法および装置
US20060236302A1 (en) System and method for unified visualization of two-tiered applications
Rodriguez-Echeverria et al. Towards a language server protocol infrastructure for graphical modeling
WO2015078343A1 (zh) 用于web开发系统的开发方法和web开发系统
US20060236307A1 (en) System and method for transformation of wireless application definition to simplified form
JP2007523418A (ja) ユーザーインターフェースデータのためのデータコンテナ
US7814411B2 (en) Method and apparatus for adapting external controls to a portal design
CN113076096B (zh) 一种桌面应用程序开发方法、装置、设备及存储介质
CN107450897B (zh) 图形引擎的跨平台移植方法和装置
CN113064593B (zh) 移动app动态化的方法、装置、计算机设备及存储介质
JP4942144B2 (ja) 情報処理装置及びその制御方法、プログラム、記憶媒体
KR102397494B1 (ko) 로우(Low) 코드 웹 개발 및 운영 시스템 및 이를 이용한 서비스 방법
KR101552914B1 (ko) 웹 서버 어플리케이션 프레임워크 장치와 프레임워크를 이용한 웹 어플리케이션 처리 방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록 매체
Lazăr et al. Tool support for fUML models
Lyu et al. High-Performance Web Frontend Using WebAssembly
JP2001296996A (ja) コンポーネントの自動生成装置および表現方法
CN111506309A (zh) 任务执行方法和系统、计算机可读存储介质
JP2002366352A (ja) Webアプリケーション開発支援装置
JP4944434B2 (ja) レイアウト方法及びプログラム
JP5605228B2 (ja) 画像処理装置及びプログラム
CN113791714A (zh) 一种软件系统图标库的方法
CA2543898C (en) System and method for unified visualization of two-tiered applications
Åkesson et al. Jatte: A tunable tree editor for integrated DSLs

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110708

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110715

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110829

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: 20120224

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120227

R151 Written notification of patent or utility model registration

Ref document number: 4942144

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150309

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees