JP3984129B2 - 構造化文書処理システム - Google Patents
構造化文書処理システム Download PDFInfo
- Publication number
- JP3984129B2 JP3984129B2 JP2002258661A JP2002258661A JP3984129B2 JP 3984129 B2 JP3984129 B2 JP 3984129B2 JP 2002258661 A JP2002258661 A JP 2002258661A JP 2002258661 A JP2002258661 A JP 2002258661A JP 3984129 B2 JP3984129 B2 JP 3984129B2
- Authority
- JP
- Japan
- Prior art keywords
- structured document
- unit
- subtree
- holding unit
- processing
- 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
Links
Images
Landscapes
- Document Processing Apparatus (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
本発明は、SGML(Standard Generated Markup Language)、XML(Extensible Markup Language)、HTML(HyperText Markup Language)文書などの構造化文書を扱う処理システムに関し、特に、構造化文書を木構造として捉えて処理する構造化文書処理システムに関する。
【0002】
【従来の技術】
近年、インターネットを通じて複数のシステム、企業、個人が繋がれ、電子取引(EDI)、電子商取引(EC)、携帯電話サービスやデジタルテレビ向けのサービス、ウェブ(Web)サービスなど、幅広いデータ交換が行われるようになってきている。このような状況にあわせて、計算機で扱うデータの形式を統一する動きがある。
【0003】
これまで、計算機あるいはアプリケーションによってばらばらであったデータ形式を異なる計算機、アプリケーションでも使用できるようにするものである。この統一のための規格は、XMLとして1998年2月にW3C(World Wide Web Consortium)によって正式に勧告されている。
【0004】
XML規格は、同様の規格SGMLのサブセットになっている。また、XML文書をメモリ上のオブジェクトに展開し、そのオブジェクトを扱うインタフェースの規格DOM(Document Object Model)も1998年10月にW3Cによって勧告されている。
【0005】
以下では、XML規格に基づき、「<」と「>」で囲まれた文字列をタグ、「<文字列>」を開始タグ、「</文字列>」を終了タグ、開始タグと終了タグで挟まれた文字列を要素、タグ内に記述される要素の名前を要素名、要素に対する付加情報を属性と呼ぶようにする。
【0006】
XML文書は、文書自身の中にタグを埋め込む形で、データ構造を記述する。データ構造をタグとして文書に埋め込んだ構成を取ることにより、データ構造の柔軟性と拡張性の高さを持っている。またタグを人が見て意味のあるテキストで記述することにより、それまで独立のシステムで扱っていたデータを他のシステムでも容易に扱うことができる。
【0007】
XML文書から、要素名、要素内容、属性、文字列などの内容を取得してユーザアプリケーションに渡したり、内容を変更、追加、削除したりするXMLプロセッサとして、DOMプロセッサが広く使われている。
【0008】
図9は従来例の説明図である。従来の構造化文書処理システムは、構造化文書保持部1、展開部2、オブジェクト保持部3、処理部4、ユーザアプリケーション6が設けている。構造化文書保持部1はディスク等にXML文書等の構造化文書を格納する。展開部2は、XML文書等の構造化文書を構造解析し、オブジェクト保持部3にオブジェクトとして展開する。これをDOM木展開という。
【0009】
オブジェクト保持部3はメモリであり、展開部2が展開したオブジェクトを保持する。処理部4はW3C規格のAPI群を提供するプログラム(DOMプロセッサ)であり、オブジェクト保持部3のオブジェクトをユーザアプリケーション6の指示に従って処理する。ユーザアプリケーション6は展開された構造化文書を扱う。
【0010】
ここで処理部(DOMプロセッサ)4にて処理するためには、まず展開部(DOM木展開部)2にて、構造化文書であるXML文書を構造解析し、オブジェクト保持部(メモリ)3にオブジェクト(DOM木)を展開する。XML文書は直列のテキストであるが、オブジェクトとして展開されるDOM木は各要素ごとに分離され、タグで記述されたデータ構造に従って格納される。以下では、XML文書等の構造化文書を構造解析し、メモリ上に展開したものをオブジェクトと呼ぶ。このように展開部2及び処理部4を利用することにより、構造解析が不要になるため、ユーザアプリケーション6を簡単に作成できる。
【0011】
図10は従来の処理フローチャートであり、処理S11〜S12に従って説明する。
【0012】
S11:展開部2は、ユーザアプリ6から各種の処理の指示があると、構造化文書全体をオブジェクト保持部(メモリ)3に展開し、処理S12に移る。
【0013】
S12:処理部4は、ユーザアプリケーション6からの指示に従って各種の処理を行って、この処理を終了する。
【0014】
しかし、図9に示すように、従来の展開部2は、一旦、XML文書全体をメモリ上に展開するため、展開部2のCPU(Central Processing Unit)負荷が高く、必要となるメインメモリの量も多い問題があった。これらを改善するものとしてPDOMモデル(PDOM:Parse Document Object Model)がある。
【0015】
図11は、従来例の解析文書オブジェクトモデル(PDOM)の説明図である。従来の構造化文書処理システムには、構造化文書保持部1、展開部2、オブジェクト保持部3、処理部4、ユーザアプリケーション6が設けてある。このシステムは、構造化文書10をオブジェクトに展開した後に、オブジェクトを直列のバイナリデータからなる木構造文書10Bに変換して構造化文書保持部1に保存し、この木構造文書10Bの一部である部分木(DOM木)11をオブジェクト保持部3であるメモリ上にキャッシングして、オブジェクト(DOM木)の処理を行う。
【0016】
図12は従来のPDOM処理のフローチャートであり、処理S21〜S23に従って説明する。
【0017】
S21:展開部2は、ユーザアプリケーション6から各種の処理の指示があると、構造化文書保持部1の構造化文書10の全体を木構造文書10Bに展開して構造化文書保持部lに格納し、処理S22に移る。
【0018】
S22:処理部4は、エーザアプリケーション6から指示があった処理に使用する木構造文書10Bの一部の部分木11を構造化文書保持部lからオブジェクト保持部3であるメモリ上に読み出し、処理S23に移る。
【0019】
S23:処理部4は、ユーザアプリケーション6からの指示に従って各種の処理を行って、この処理を終了する。
【0020】
【非特許文献1】
Akmal B. Chaudhri, Roberto Zicari編著、Gerald Huck, Ingo Macherius, Peter Frankhauser著、「Succeeding with Object Databases」、第6章、John Wiley & Sons Inc; ISBN: 0471383848 , 2000年10月30日
【0021】
【発明が解決しようとする課題】
しかしながら、このような従来のシステムは、次のような課題があった。
【0022】
(1)XML文書等の構造化文書が大きくなると、DOM木に展開する処理が処理の大部分を占めるようになる。また、DOM木は元の構造化文書の5〜10倍の容量が必要となり、数十MBより大きな構造化文書は、従来のDOMプロセッサでは扱えないものであった。
【0023】
(2)これらを改善したものにPDOMがあるが、初回のDOM木展開のCPU負荷は同様に高いものであった。また、XML文書等の構造化文書とは別管理のバイナリができるため、データの一元管理ができないものであった。
【0024】
本発明は、構造化文書を木構造で捉えたとき、木を複数の部分木に分けて管理し、構造化文書の一部しか展開しないようにして高い処理性能を得るようにした構造化文書処理システムを提供することを目的とする。
【0025】
【課題を解決するための手段】
図1は、本発明による構造化文書処理システムの原理説明図である。本発明は、従来の課題を解決するため次のような手段を有する。
【0026】
(1)本発明の構造化文書処理システムは、構造化文書を格納する構造化文書保持部1と、構造化文書保持部1に格納されている構造化文書10を木構造で捉え、木構造を部分木に分けて管理する部分木管理部5と、部分木管理部5から通知された部分木に対応する構造化文書の一部10−0を構造化文書保持部1から取得し、取得した構造化文書の一部を構造解析して木構造に階層化されたオブジェクト11−0に展開する展開部2と、展開部2で展開したオブジェクト11−0をユーザアプリケーション6からの指示に従って処理する処理部4とを備えたことを特徴とする。このため、構造化文書の一部しか展開しないので高い処理性能を得ることができる。
【0027】
(2)ここで部分木管理部5は、構造化文書10の中の特定のタグで囲われた領域の位置を部分木の位置として保持する位置保持部を備え、展開部2は、位置保持部に保持している位置情報を用いて、任意の部分木に対応する構造化文書10の一部を取得してオブジェクト11−0に展開し、この展開したオブジェクト11−0を処理部4に受け渡す。このように特定のタグで囲われた領域しか展開しないので高い処理性能を得ることができる。
【0028】
(3)また部分木管理部5は、構造化文書10の中の特定のタグで囲われた領域の位置を部分木の位置として保持する位置保持部と、展開部2により展開された部分木に対応した構造化文書10の一部10−0のオブジェクト11−0をキャッシングするキャッシング管理部とを備え、処理部4にて処理対象となる部分がキャッシング管理部に保持していないとき、展開部2は、位置保持部の位置情報を用いて部分木に対応する構造化文書の一部を取得してオブジェクトを展開し、展開したオブジェクトを処理部4に受け渡す。このため、キャッシング管理部に保持された処理対象となる部分の処理性能を高めることができる。
【0029】
(4)部分木管理部5は、構造化文書を1つ又は複数の部分木を1単位として分割して構造化文書保持部1に格納する構造化文書分割部を備えたことを特徴とする。このため、構造化文書保持部1の構造化文書を分割した文書として管理することができ、分割した一つの文書の変更が分割した他の文書に影響することを防ぐことができる。
【0030】
(5)本発明の構造化文書処理システムは、更に、処理部4で変更があった部分木のオブジェクトを構造化文書に逆変換して構造化文書保持部1に格納する逆変換部と、処理部4で変更がなかった構造化文書保持部1の構造化文書10の部分をそのままコピーして逆変換により格納された部分と合わせて変更後の構造化文書を生成するコピー部とを設けたことを特徴とする。このため逆変換は変更した部分木のみであるため高い処理性能を得ることができる。
【0031】
【発明の実施の形態】
図2は、本発明の構造化文書処理システムの説明図である。図2において、構造化文書保持部1はXML文書等の構造化文書10を格納する。構造化文書保持部1は通常はシステム自身のディスクであるが、メモリやネットワークを経由した他のシステムのディスクや他の媒体であっても良い。展開部2はCPUであり、XML文書等の構造化文書10を構造解析し、文書オブジェクトモデル(DOM:Document Object Model)として知られたDOM木である木構造に階層化されたオブジェクトに展開する。
【0032】
オブジェクト保持部3はメモリであり、展開部2が展開したオブジェクトを保持する。処理部4はW3C規格のAPI群を提供するプログラム(DOMプロセッサ)であり、オブジェクト保持部3のオブジェクトをユーザアプリケーション6の指示に従って処理する。
【0033】
部分木管理部5は、XML文書等の構造化文書10を木構造で捉え、木構造を複数の部分木に分けて管理する。このため部分木管理部5は位置保持部21を備えている。位置保持部21は、各部分木がXML文書等の構造化文書のどの位置にあるのかを保持する。
【0034】
具体的に位置保持部21は、構造化文書10の中の特定のタグで囲われた領域の開始位置を部分木の位置として保持している。このため展開部2は、位置保持部21の位置情報を用いて、任意の部分木に対応する構造化文書10の一部を取得してオブジェクトに展開できる。
【0035】
なお、展開部2又は処理部4にオブジェクト保持部3の機能を持たせることができれば、オブジェクト保持部3は省略できる。
【0036】
ここで図2の処理を説明する。部分木管理部5の位置保持部21は、ユーザアプリケーション6から各種の処理の指示があると、この指示のあった構造化文書保持部1の構造化文書10の部分木を特定し、展開部2に通知する。展開部2は、構造化文書保持部1から特定した構造化文書10の部分木に相当する部分10−0を取出し、オブジェクト11−0に展開してオブジェクト保持部3へ格納する。
【0037】
処理部4は、オブジェクト保持部3に保持されている展開された部分木に相当するオブジェクト11−0を使用し、ユーザアプリケーション6からの指示に従った各種の参照や変更等の処理を行い、結果をユーザアプリケーション6に通知する。
【0038】
図3は、本発明による構造化文書処理のフローチャートであり、処理S1〜S3に従って説明する。
【0039】
S1:部分木管理部5は、ユーザアプリケーション6から各種の処理の指示があると、構造化文書保持部1の構造化文書10における指示のあった部分木に対応した文書位置を特定し、処理S2に移る。
【0040】
S2:展開部2は、構造化文書の部分木に相当する一部10−0を読み出してオブジェクト保持部3上にオブジェクト(DOM木)11−0として展開し、処理S3に移る。
【0041】
S3:処理部4は、オブジェクト11−0に対しユーザアプリケーション6からの指示に従った各種の処理、即ち参照や変更等を行って、この処理を終了する。
【0042】
このように、XML文書等の構造化文書を木構造で捉え、この木構造を複数の部分木に分けて管理する部分木管理部5を持ち、アクセスのあった部分木に対応するXML文書等の構造化文書の一部をオブジェクトに展開して処理部4へ渡すことによって、構造化文書10の全体を展開する必要をなくすことができる。また、XML文書等の構造化文書の一部しか展開しないため、展開部2のCPU負荷が低く、必要となるメインメモリの量も少ない。
【0043】
図4は、キャッシング管理部を備える構造化文書処理システムの説明図である。図4において、構造化文書処理システムには、構造化文書保持部l、展開部2、オブジェクト保持部3、処理部4、部分木管理部5、ユーザアプリケーション6が設けられ、更に、部分木管理部5に、位置保持部21に加えてキャッシング管理部22を追加している。キャッシング管理部22は、展開部2によって既に展開してオブジェクト保持部3に保持されたオブジェクトのキャッシングを管理する。
【0044】
図4のキャッシング管理部22による処理の流れは次のようになる。部分木管理部5は、ユーザアプリケーション6から処理の依頼を受けると、依頼された処理で使用する部分木のオブジェクト11−0が既に展開しているか否かキャッシング管理部22にて調べる。
【0045】
処理対象となる部分木オブジェクト11−0が既に展開されている場合には、処理部4にてオブジェクト保持部3にあるオブジェクト11−0を使用して処理し、結果をユーザプリケーション6に通知する。
【0046】
一方、処理対象となる部分木のオブジェクト11−0がまだ展開していない場合は、位置保持部21にて該当する部分木に相当する部分10−0を展開部2に通知し、展開部2にて構造化文書保持部1の構造化文書10から部分木に対応した一部10−0を読出し、オブジェクト11−0に展開してオブジェクト保持部3に保持してから、処理部4にて処理し、結果をユーザプリケーション6に通知する。このときオブジェクト保持部3に保持しているオブジェクト11−0は、その後、キャッシング管理部22に関連づけられる。
【0047】
図5は、図4の位置保持部21で管理される部分木位置リストおよび図4のキャッシング管理部22で管理される部分木キャッシングリストの具体例の説明図である。尚、図2の位置保持部21で管理される部分木位置リストも同じである。
【0048】
図5において、位置保持部21の部分木位置リスト23には、ユーザアプリケーション6から依頼された処理に使用する部分木が構造化文書のどの位置(開始位置)にあるのかの情報が保持される。またキャッシング管理部22の部分木キャッシングリスト24には、オブジェクト保持部3上に展開したオブジェクトを管理する位置情報が保持される。
【0049】
即ち、部分木位置リスト23にあっては、部分木に対応してIDを割当て、各ID毎に部分木の構造化文書における開始位置(開始アドレス)を格納している。この例では、部分木ID=0を指定することで、部分木ID=0の構造化文書10における開始位置が部分木位置リスト23から取得され、これに対応した構造化文書10の部分10−0を構造化文書保持部1から読み出して展開部2にてオブジェクト11−0に展開している。
【0050】
このように展開された部分木のオブジェクト11−0は図4のキャッシング管理部22によって部分木キャッシングリスト24の部分木ID=0に関連づけられる。ここで部分木キャッシングリスト24の「N」は「NULL」を意味し、対応するオブジェクトがキャッシングされていないことを示している。
【0051】
なお、部分木位置リスト23及び部分木キャッシングリスト24としては、構造化文書の開始位置だけでなく、開始位置とサイズをID毎に保持するようにしても良い。
【0052】
図6は、構造化文書を複数の領域に分割して管理する部分木管理部5の説明図である。図6において、部分木管理部5には、部分木位置リスト23と部分木キャッシングリスト24に加え、更に構造化文書分割部25が設けられる。この例で構造化文書分割部25は、2個の部分木ごとに構造化文書10を分割している。即ち、部分木位置リスト23における部分木IDにつき、(ID=0,ID=1),(ID=2,ID=3)…・のように、2つのIDの組によって構造化文書10を分割構造化文書10−01,10−11,…に分割している。
【0053】
このため構造化文書分割部25は、部分木位置リスト23に対し例えば部分木ID=0の部分木の使用が指定された場合、部分木ID=0と部分木ID=1で指定される位置の領域となる分割構造化文書10−01を一度に展開し、展開したオブジェクト11−01をオブジェクト保持部3に保持する。
【0054】
このように展開された分割構造化文書の部分木オブジェクト11−01は、構造文書分割部25を経由して部分木キャッシングリスト24に関連づけされる。また構造化文書分割部25により分割する単位は、展開の処理効率に応じて任意に設定される。
【0055】
このように、構造化文書を複数の領域に分割して管理することにより、分割した一つの文書の変更が分割した他の文書に影響すること、例えば桁ずらし等を防ぐことができる。また、ある単位で構造化文書を一度に展開する方が、部分木単位で複数回に分けて展開するより効率よく展開することができる。
【0056】
図7は、構造化文書の内容を変更して構造化文書に反映させる本発明の他の実施形態の説明図である。図7において、構造化文書処理システムには、構造化文書保持部1、展開部2、オブジェクト保持部3、処理部4、部分木管理部5、ユーザアプリケーション6が設けられ、更に逆変換部7とコピー部8を追加している。
【0057】
逆変換部7は、処理部4で変更があった部分木のオブジェクトを元の構造化文書の部分に逆変換して構造化文書保持部1に格納する。またコピー部8は、処理部4で変更がなかった構造化文書保持部1の構造化文書10の部分をそのままコピーし、逆変換部7により逆変換されて格納された部分と合わせて変更後の更新構造化文書10Aを生成する。
【0058】
次に、図7の処理を説明する。部分木管理部5は、ユーザアプリケーション6から内容変更の処理の指示があると、この指示のあった構造化文書保持部1の構造化文書10の部分木を特定し、展開部2に通知する。展開部2は、構造化文書保持部1から特定した構造化文書の部分木に相当する部分10−0を取り出し、部分木のオブジェクト11−0に展開してオブジェクト保持部3に送る。処理部4は、オブジェクト保持部3に保持されている展開されたオブジェクト11−0に相当する部分を使用してユーザアプリケーション6からの指示に従った変更処理を行う。
【0059】
逆変換部7は、変更処理を行った部分木のオブジェクト11−0を構造化文書に逆変換し、構造化文書保持部1における更新構造化文書10Aの中に逆変換データ7aとして格納する。変更処理を行った部分木以外の領域は、コピー部8で元の構造化文書の該当部分をそのままコピーし、構造化文書保持部1における更新構造化文書10Aにコピーデータ8aとして格納する。
【0060】
なお、図7の実施形態では逆変換データ7aとコピーデータ8aを別々に格納して組み合わせているが、構造化文書10を更新構造化文書10Aとしてコピーした後に、変更済みの逆変換データを上書きしても良い。
【0061】
図8は、従来技術と本発明の性能比較の説明図である。図8において、従来方式では、構造化文書全体をメモリ上に展開するため、展開部2のCPUの負荷が大きくなりメモリ消費量も多くなる。また、従来のPDOM方式では、構造化文書保持部上の構造化文書全体を展開し構造化文書保持部に格納するため、初回の展開のCPU負荷が大きくなり、メモリ消費量は少なくなる。これに対し、本願発明は、構造化文書の一部しか展開しないため、展開部のCPUの負荷が少なくなり、メモリ消費量も少なくなる。
【0062】
次に本発明のコンピュータにより実現されるハードウェア資源とプログラムのインストールを説明する。
【0063】
上記の実施形態における構造化文書保持部1、展開部2、オブジェクト保持部3、処理部4、部分木管理部5、位置保持部21、キャッシング管理部22、構造化文書分割部25は、プログラムで構成でき、主制御部(CPU)が実行され、主記憶に格納されているものである。
【0064】
このプログラムは、一般的なコンピュータで処理されるものである。このコンピュータは、主制御部、主記憶、ファイル装置、表示装置、キーボード等の入力手段である入力装置などのハードウェアで構成されている。
【0065】
このコンピュータに、本発明のプログラムをインストールする。このインストールは、フロッピィディスク(R)、光磁気ディスク等の可搬型の記録(記憶)媒体に、これらのプログラムを記憶させておき、コンピュータが備えている記録媒体に対して、アクセスするためのドライブ装置を介して、或いは、LAN等のネットワークを介して、コンピュータに設けられたファイル装置にインストールされる。そして、このファイル装置から処理に必要なプログラムステップを主記憶に読み出し、主制御部が実行するものである。
【0066】
このプログラムをコンピュータにインストールすることで、構造化文書の一部しか展開しないようにして高い処理性能を得ることができる構造化文書処理システムを容易に提供することができる。
【0067】
以上、実施形態で説明したように、部分木管理部を使用することにより、XML文書等の構造化文書全体をメモリ上に展開する必要がなく、低CPU負荷、省メインメモリで動作するDOMプロセッサを実現することができる。特に、XML文書の一部のみを変更・追加・削除して他のシステムに受け渡すような用途で高い性能が得られる。
【0068】
また、XML文書を扱う基本アプリケーションであるDOMプロセッサの性能をアップすることができる。既存のDOMプロセッサに強く求められている問題点、CPUの高負荷、膨大なメインメモリの問題を解決するものである。
【0069】
なお、本発明は、その目的と利点を損なうことのない適宜の変形を含む。また本発明は、上記の実施形態に記載された数値による限定は受けない。
【0070】
ここで本発明の特徴を列挙すると、次の付記のようになる。
(付記)
(付記1)
構造化文書を格納する構造化文書保持部と、
前記構造化文書保持部に格納されている構造化文書を木構造で捉え、前記木構造を部分木に分けて管理する部分木管理部と、
前記部分木管理部から通知された部分木に対応する構造化文書の一部を前記構造化文書保持部から取得し、取得した構造化文書の一部を構造解析して木構造に階層化されたオブジェクトに展開する展開部と、
前記展開部で展開したオブジェクトをユーザアプリケーションからの指示に従って処理する処理部と、
を備えたことを特徴とする構造化文書処理システム。(1)
【0071】
(付記2)
付記1記載の構造化文書処理システムに於いて、
前記部分木管理部は、構造化文書の中の特定のタグで囲われた領域の位置を部分木の位置として保持する位置保持部を備え、
前記展開部は、前記位置保持部に保持する位置情報を用いて、任意の部分木に対応する構造化文書の一部を取得してオブジェクトに展開し、該展開したオブジェクトを前記処理部に受け渡すことを特徴とする構造化文書処理システム。(2)
【0072】
(付記3)
付記1記載の構造化文書処理システムに於いて、
前記部分木管理部は、
構造化文書の中の特定のタグで囲われた領域の位置を部分木の位置として保持する位置保持部と、
前記展開部により展開された部分木に対応した構造化文書の一部のオブジェクトをキャッシングするキャッシング部とを備え、
前記処理部にて処理対象となる部分がキャッシング管理部に保持していないとき、前記展開部は、前記位置保持部の位置情報を用いて部分木に対応する構造化文書の一部を取得してオブジェクトに展開し、該展開したオブジェクトを前記処理部に受け渡すことを特徴とする構造化文書処理システム。(3)
【0073】
(付記4)
付記2又は3記載の構造化文書処理システムに於いて、前記部分木管理部は、構造化文書を1つ又は複数の部分木の1単位として分割して前記構造化文書保持部に格納する構造化文書分割部を備えたことを特徴とする構造化文書処理システム。(4)
【0074】
(付記5)
付記1記載の構造化文書処理システムに於いて、更に、
前記処理部で変更があった部分木のオブジェクトを構造化文書に逆変換して前記構造化文書保持部に格納する逆変換部と、
前記処理部で変更ががなかった前記構造化文書保持部の構造化文書の部分をそのままコピーして前記逆変換により格納された部分と合わせて変更後の構造化文書を生成するコピー部と、
を設けたことを特徴とする構造化文書処理システム。(5)
【0075】
(付記6)
構造化文書保持部に構造化文書を格納する構造化文書保持ステップと、
部分木管理部により、前記構造化文書保持部に格納されている構造化文書を木構造で捉え、前記木構造を部分木に分けて管理する部分木管理ステップと、
展開部により、記部分木管理ステップで通知された部分木に対応する構造化文書の一部を前記構造化文書保持部から取得し、取得した構造化文書の一部を構造解析して木構造に階層化されたオブジェクトに展開する展開ステップと、
処理部により、展開されているオブジェクトをユーザアプリケーションからの指示に従って処理する処理ステップと、
を備えたことを特徴とする構造化文書処理方法。
【0076】
(付記7)
付記6記載の構造化文書処理方法に於いて、
前記部分木管理ステップは、構造化文書の中の特定のタグで囲われた領域の位置を部分木の位置として保持し、
前記展開ステップは、前記位置保持部に保持する位置情報を用いて、任意の部分木に対応する構造化文書の一部を取得してオブジェクトに展開し、該展開したオブジェクトを前記処理部に受け渡すことを特徴とする構造化文書処理方法。
【0077】
(付記8)
付記6記載の構造化文書処理方法に於いて、
前記部分木管理ステップは、
構造化文書の中の特定のタグで囲われた領域の位置を部分木の位置として保持する位置保持ステップと、
前記展開ステップにより展開された部分木に対応する構造化文書の一部のオブジェクトをキャッシングするキャッシング管理ステップとを備え、
前記処理ステップにて処理対象となる部分がキャッシングされていないとき、前記展開ステップは、前記位置保持部の位置情報を用いて部分木に対応する構造化文書の一部を取得してオブジェクトに展開し、該展開したオブジェクトを前記処理部に受け渡すことを特徴とする構造化文書処理方法。
【0078】
(付記9)
付記7又は8記載の構造化文書処理方法に於いて、前記部分木管理ステップは、構造化文書を複数の部分木単位に分割して前記構造化文書保持部に格納する構造化文書分割ステップを備えたことを特徴とする構造化文書処理方法。
【0079】
(付記10)
付記6記載の構造化文書処理方法に於いて、更に、
前記処理ステップで変更があった部分木のオブジェクトを構造化文書に逆変換して前記構造化文書保持部に格納する逆変換ステップと、
前記処理ステップで変更がなかった前記構造化文書保持部の構造化文書の部分をそのままコピーして前記逆変換により格納された部分と合わせて変更後の構造化文書を生成するコピーステップと、
を設けたことを特徴とする構造化文書処理方法。
【0080】
(付記11)
コンピュータに、
構造化文書保持部に構造化文書を格納する構造化文書保持ステップと、
前記構造化文書保持部に格納されている構造化文書を木構造で捉え、前記木構造を部分木に分けて管理する部分木管理ステップと、
記部分木管理ステップで通知された部分木に対応する構造化文書の一部を前記構造化文書保持部から取得し、取得した構造化文書の一部を構造解析して木構造に階層化されたオブジェクトに展開する展開ステップと、
展開されているオブジェクトをユーザアプリケーションからの指示に従って処理する処理ステップと、
を実行させることを特徴とするプログラム。
【0081】
(付記12)
付記11記載のプログラムに於いて、
前記部分木管理ステップは、構造化文書の中の特定のタグで囲われた領域の位置を部分木の位置として保持し、
前記展開ステップは、前記位置保持部に保持する位置情報を用いて、任意の部分木に対応する構造化文書の一部を取得してオブジェクトに展開し、該展開したオブジェクトを前記処理部に受け渡すことを特徴とするプログラム。
【0082】
(付記13)
付記11記載のプログラムに於いて、
前記部分木管理ステップは、
構造化文書の中の特定のタグで囲われた領域の位置を部分木の位置として保持する位置保持ステップと、
前記展開ステップにより展開された部分木に対応する構造化文書の一部のオブジェクトをキャッシングするキャッシング管理ステップとを備え、
前記処理ステップにて処理対象となる部分がキャッシングされていないとき、前記展開ステップは、前記位置保持部の位置情報を用いて部分木に対応する構造化文書の一部を取得してオブジェクトに展開し、該展開したオブジェクトを前記処理部に受け渡すことを特徴とするプログラム。
【0083】
(付記14)
付記12又は13記載のプログラムに於いて、前記部分木管理ステップは、構造化文書を複数の部分木単位に分割して前記構造化文書保持部に格納する構造化文書分割ステップを備えたことを特徴とするプログラム。
【0084】
(付記15)
付記11記載のプログラムに於いて、更に、
前記処理ステップで変更があった部分木のオブジェクトを構造化文書に逆変換して前記構造化文書保持部に格納する逆変換ステップと、
前記処理ステップで変更がなかった前記構造化文書保持部の構造化文書の部分をそのままコピーして前記逆変換により格納された部分と合わせて変更後の構造化文書を生成するコピーステップと、
を設けたことを特徴とするプログラム。
【0085】
(付記16)
プログラムを記録したコンピュータ読取可能な記録媒体に於いて、
コンピュータに、
構造化文書保持部に構造化文書を格納する構造化文書保持ステップと、
前記構造化文書保持部に格納されている構造化文書を木構造で捉え、前記木構造を部分木に分けて管理する部分木管理ステップと、
前記部分木管理ステップで通知された部分木に対応する構造化文書の一部を前記構造化文書保持部から取得し、取得した構造化文書の一部を構造解析して木構造に階層化されたオブジェクトに展開する展開ステップと、
展開されているオブジェクトをユーザアプリケーションからの指示に従って処理する処理ステップと、
を実行させることを特徴とする記録媒体。
【0086】
【発明の効果】
以上説明したように、本発明によれば次のような効果がある。
【0087】
(1)展開部で、部分木管理部から通知された部分木に対応する構造化文書の一部を構造化文書保持部から取得して部分木オブジェクトに展開し、展開したオブジェクトを処理部に受け渡すため、構造化文書の一部しか展開しないので高い処理性能を得ることができる。
【0088】
(2)部分木管理部に構造化文書の中の特定のタグで囲われた領域の位置を保持する位置保持部に保持する位置情報を用いて、部分木に対応した構造化文書の一部を取得して部分木オブジェクトに展開し、展開したオブジェクトを処理部に受け渡すため、特定のタグで囲われた領域しか展開しないので高い処理性能を得ることができる。
【0089】
(3)展開したオブジェクトを処理部に受け渡すと共に、キャッシング管理部に保持するため、キャッシング管理部に保持された処理対象となる部分の処理'性能を高めることができる。
【0090】
(4)構造化文書を分割する構造化文書分割部で、構造化文書を複数の構造化文書に分割して構造化文書保持部に格納するため、分割した一つの文書の変更が分割した他の文書に影響することを防ぐことができる。
【0091】
(5)展開したオブジェクトを処理部で変更した場合、変更があった箇所の部分木を逆変換部で逆変換し、残りの処理部で変更がない箇所はそのまま構造化文書をコピー部でコピーするため、変更部分を含む構造化文書の生成につき逆変換は変更した部分木オブジェクトのみであるため、高い処理性能を得ることができる。
【図面の簡単な説明】
【図1】本発明の原理説明図
【図2】本発明による構造化文書処理システムの実施形態の説明図
【図3】図2の実施形態における構造化文書処理のフローチャート
【図4】キャッシング管理部を備えた本発明の実施形態の説明図
【図5】本発明における部分木位置リストおよび部分木キャッシングリストの説明図
【図6】構造化文書を複数の構造化文書に分割して管理する実施形態の説明図
【図7】展開したオブジェクトの変更内容を構造化文書に反映させる本発明の他の実施形態の説明図
【図8】従来技術と本発明の性能比較の説明図
【図9】従来例の説明図
【図10】従来の処理フローチャート
【図11】従来のPDOM処理の説明図
【図12】従来のPDOM処理のフローチャート
【符号の説明】
1:構造化文書保持部
2:展開部
3:オブジェクト保持部
4:処理部
5:部分木管理部
6:ユーザアプリケーション
7:逆変換部
8:コピー部
10:構造化文書
10A:更新構造化文書
10−01,10−23:分割構造化文書
11−0:オブジェクト
21:位置保持部
22:キャッシング管理部
23:部分木位置リスト
24:部分木キャッシングリスト
25:構造化文書分割部
Claims (4)
- 構造化文書を格納する構造化文書保持部と、
前記構造化文書保持部に格納されている構造化文書を木構造で捉え、前記木構造のうちユーザアプリケーションによって特定された部分木を管理する部分木管理部と、
前記部分木管理部から通知された部分木に対応する構造化文書の一部を前記構造化文書保持部から取得し、取得した構造化文書の一部を構造解析して木構造に階層化されたオブジェクトに展開する展開部と、
前記展開部で展開したオブジェクトをユーザアプリケーションからの指示に従って処理する処理部とを備え、
前記部分木管理部は、構造化文書の中の特定のタグで囲われた領域の部分木が前記構造化文書のどの位置にあるのかを保持する位置保持部を備え、
前記展開部は、前記位置保持部に保持する位置情報を用いて、任意の部分木に対応する構造化文書の一部を取得してオブジェクトに展開し、該展開したオブジェクトを前記処理部に受け渡すことを特徴とする構造化文書処理システム。 - 請求項1記載の構造化文書処理システムに於いて、
前記部分木管理部は、
前記展開部により展開された部分木に対応する構造化文書の一部のオブジェクトをキャッシングするキャッシング管理部を備え、
前記処理部にて処理対象となる部分がキャッシング管理部に保持していないとき、前記展開部は、前記位置保持部の位置情報を用いて部分木に対応する構造化文書の一部を取得してオブジェクトに展開し、該展開したオブジェクトを前記処理部に受け渡すことを特徴とする構造化文書処理システム。 - 請求項1又は2記載の構造化文書処理システムに於いて、前記部分木管理部は、構造化文書を1つ又は複数の部分木を1単位として分割して前記構造化文書保持部に格納する構造化文書分割部を備えたことを特徴とする構造化文書処理システム。
- 請求項1記載の構造化文書処理システムに於いて、更に、
前記処理部で変更があった部分木のオブジェクトを構造化文書に逆変換して前記構造化文書保持部に格納する逆変換部と、
前記処理部で変更がなかった前記構造化文書保持部の構造化文書の部分をそのままコピーして前記逆変換により格納された部分と合わせて変更後の構造化文書を生成するコピー部と、
を設けたことを特徴とする構造化文書処理システム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002258661A JP3984129B2 (ja) | 2001-09-10 | 2002-09-04 | 構造化文書処理システム |
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2001-273362 | 2001-09-10 | ||
| JP2001273362 | 2001-09-10 | ||
| JP2002258661A JP3984129B2 (ja) | 2001-09-10 | 2002-09-04 | 構造化文書処理システム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2003178049A JP2003178049A (ja) | 2003-06-27 |
| JP3984129B2 true JP3984129B2 (ja) | 2007-10-03 |
Family
ID=26621904
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2002258661A Expired - Fee Related JP3984129B2 (ja) | 2001-09-10 | 2002-09-04 | 構造化文書処理システム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3984129B2 (ja) |
Families Citing this family (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2005006192A1 (ja) * | 2003-07-10 | 2005-01-20 | Fujitsu Limited | 構造化文書処理方法及び装置並びに記憶媒体 |
| JP4526833B2 (ja) * | 2004-02-19 | 2010-08-18 | 株式会社ジャストシステム | 情報処理システム、蓄積装置、処理装置、ならびに、情報処理方法 |
| WO2006004266A1 (en) * | 2004-04-02 | 2006-01-12 | Samsung Electronics Co., Ltd. | Xml processor having function for filtering tree path, method of filtering tree path and recording medium thereof |
| WO2005101210A1 (ja) * | 2004-04-09 | 2005-10-27 | Sharp Kabushiki Kaisha | データ解析装置、データ解析方法、データ解析プログラム、およびデータ解析プログラムを記録した記録媒体 |
| JP3754438B2 (ja) | 2004-07-28 | 2006-03-15 | 株式会社パッセルインテグレーション | 情報管理方法、情報管理プログラム、及び情報管理装置 |
| WO2006051869A1 (ja) * | 2004-11-12 | 2006-05-18 | Justsystems Corporation | 文書処理装置及び文書処理方法 |
| US7933928B2 (en) * | 2005-12-22 | 2011-04-26 | Oracle International Corporation | Method and mechanism for loading XML documents into memory |
| JP4746433B2 (ja) * | 2006-01-30 | 2011-08-10 | 株式会社日立製作所 | 文書検索方法、文書検索プログラムおよび文書検索装置 |
| KR101346734B1 (ko) * | 2006-05-12 | 2014-01-03 | 삼성전자주식회사 | 디지털 저작권 관리를 위한 다중 인증서 철회 목록 지원방법 및 장치 |
| JP4958481B2 (ja) | 2006-06-01 | 2012-06-20 | キヤノン株式会社 | Webサービス実行方法及び情報処理装置 |
| JP5029842B2 (ja) * | 2008-10-20 | 2012-09-19 | オンキヨー株式会社 | コンテンツ情報ツリー生成装置及びそのプログラム |
-
2002
- 2002-09-04 JP JP2002258661A patent/JP3984129B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2003178049A (ja) | 2003-06-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7246170B2 (en) | Scheme for systematically registering meta-data with respect to various types of data | |
| US6457103B1 (en) | Method and apparatus for caching content in a data processing system with fragment granularity | |
| US6584548B1 (en) | Method and apparatus for invalidating data in a cache | |
| US7502996B2 (en) | System and method for fast XSL transformation | |
| US6507891B1 (en) | Method and apparatus for managing internal caches and external caches in a data processing system | |
| US7707316B2 (en) | Information processing apparatus and method | |
| JP3984129B2 (ja) | 構造化文書処理システム | |
| US6557076B1 (en) | Method and apparatus for aggressively rendering data in a data processing system | |
| JP4755427B2 (ja) | データベース・アクセス・システム、データベース・アクセス方法 | |
| KR101122841B1 (ko) | 중첩된 표로 스키마 없는 데이터 매핑을 위한 시스템과방법 | |
| US20080320387A1 (en) | Information displaying device and information displaying method | |
| JP2004287572A (ja) | ファイルストレージサービスシステム、ファイル管理装置、ファイル管理方法、id指定型nasサーバ、および、ファイル読出方法 | |
| JP2006114045A (ja) | スキーマデータ(schemadata)からデータ構造へのマッピング | |
| JP2006505871A (ja) | 任意に大きな文書内のデータへのスケーラブルなアクセス | |
| US20100217750A1 (en) | Archive apparatus, conversion apparatus and conversion program | |
| US6766350B1 (en) | Shared management of data objects in a communication network | |
| US7451390B2 (en) | Structured document processing system, method, program and recording medium | |
| JP2005234837A (ja) | 構造化文書処理方法、構造化文書処理システム及びそのプログラム | |
| US20050005028A1 (en) | Automated image markup system and method | |
| JPWO2005006192A1 (ja) | 構造化文書処理方法及び装置並びに記憶媒体 | |
| US7778969B2 (en) | Information-processing apparatus and method for processing document | |
| JP2008225997A (ja) | メタデータ管理方法、メタデータ管理システム、及び、メタデータ管理プログラム | |
| US20050182772A1 (en) | Method of streaming conversion from a first data structure to a second data structure | |
| JP2006163876A (ja) | Xbrlデータ保存方法およびシステム | |
| JP4461151B2 (ja) | 構造化文書管理システム及びプログラム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050725 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070309 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070320 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070518 |
|
| 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: 20070612 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070705 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100713 Year of fee payment: 3 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100713 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110713 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110713 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120713 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120713 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130713 Year of fee payment: 6 |
|
| LAPS | Cancellation because of no payment of annual fees |