JP2008293477A - Xmlドキュメントのための命令saxパーサ - Google Patents

Xmlドキュメントのための命令saxパーサ Download PDF

Info

Publication number
JP2008293477A
JP2008293477A JP2008058510A JP2008058510A JP2008293477A JP 2008293477 A JP2008293477 A JP 2008293477A JP 2008058510 A JP2008058510 A JP 2008058510A JP 2008058510 A JP2008058510 A JP 2008058510A JP 2008293477 A JP2008293477 A JP 2008293477A
Authority
JP
Japan
Prior art keywords
parsing
thread
xml
target content
signal
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
JP2008058510A
Other languages
English (en)
Other versions
JP5340616B2 (ja
Inventor
Darrell Vaughn Hopp
ボーン ホップ ダレル
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.)
Konica Minolta Laboratory USA Inc
Original Assignee
Konica Minolta Laboratory USA 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 Konica Minolta Laboratory USA Inc filed Critical Konica Minolta Laboratory USA Inc
Publication of JP2008293477A publication Critical patent/JP2008293477A/ja
Application granted granted Critical
Publication of JP5340616B2 publication Critical patent/JP5340616B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/221Parsing markup language streams
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]

Abstract

【課題】非常に大きいXMLファイルの構文解析および検索を最適化する。
【解決手段】SAXパーサを使用してXMLドキュメントを処理する。構文解析プロシージャは、構文解析スレッドにロケートされ、SAXパーサのコールバックファンクションを使用し、SAXパーサを生成および実行する。メインスレッドは、検索される目標コンテンツおよびウェイクアップ信号を構文解析スレッドに送信して構文解析スレッドを制御し、さらなる処理のため、構文解析スレッドによって検出されるコンテンツを受け取る。構文解析スレッドにおいて、コールバックファンクションがSAXパーサにより呼び出され、目標コンテンツが検出された場合、構文解析スレッドは、検出されたコンテンツをウェイクアップ信号と共にメインスレッドに送信してスリープモードに入る。追加の目標コンテンツを伴うウェイクアップ信号がメインスレッドから受け取られるまで構文解析は停止する。
【選択図】図1

Description

発明の背景
技術分野
本発明は、XML処理に関し、特に、XMLファイルを構文解析するための方法および関連装置に関する。
関連技術の説明
XML(拡張マークアップ言語)は、多目的マークアップ言語であり、異なる情報システム、特に、インターネットのようなネットワークを経由して接続されるシステムを横断するデータの共有を容易にするために、広く使用されている。多数の周知のXML処理ソフトウェアライブラリが存在し、ソフトウェア開発者にとって利用可能である。XMLファイルを構文解析するために最も広く使用されている2つのアルゴリズムは、DOM(Document Object Model)およびSAX(Simple API for XML)である。DOM型の構文解析においては、パーサモジュールは、XMLドキュメントをツリーデータ構造に分割する。ツリーの各ノードは、XMLファイルの構造要素に対応する。極めて大きいXMLファイルの場合、DOM構文解析は、ドキュメントツリーデータ構造を記憶するために大量のメモリが要求されるため、困難である。このような大きいファイルのDOM型構文解析は、アプリケーションが実メモリを割り当てようと試みる結果となり、そして、メモリが不足する状況に帰着する虞がある。このような大きいファイルのためには、SAX型構文解析は、好まれる。SAX構文解析は、ベント駆動型であり、個別的アプローチを利用し、XMLドキュメントを処理する。SAX構文解析において、アプリケーション(例えば、XML/ポストスクリプト(登録商標)(PS)コンバータプログラムや、XMLファイルを利用する他のプログラム)は、別のモジュールであるSAXパーサにより呼び出される一組の定義済みコールバックファンクションを実行する。SAXパーサのインスタンスが生成される場合、コールバックファンクションに対するポインタは、パーサに渡される。SAXパーサは、次に、XMLドキュメントの全部を先頭から最後まで読み取り、そして、それが遭遇するXML構造化要素のためのコールバックファンクションを呼び出す。
概要
本発明の発明者は、大きいXMLファイルを取り扱う際、SAXパーサに関するある問題を特定した。上述したように、SAXパーサは、入力されたXMLファイルを読み取り、そして、XMLファイル中の特定の構造化要素に遭遇する場合、コールバックファンクションを呼び出す。一旦スタートすると、SAXパーサは、完了に向って実行され、中断なしでXMLドキュメントの全体を処理する。このアプローチに関する第1の問題は、SAXパーサを呼び出すアプリケーションが、構文解析のスタート時にXMLドキュメントにおいて、どのコンテンツを検索するかについて知らないことが多いことである。追加のコンテンツを検索することが必要である場合、前記コンテンツの位置を突き止めるために、新しいXML構文解析が必要である。XML構文解析に伴う第2の問題は、アプリケーションがXMLファイルにおける複数の構造化要素を検索するように命令されている場合に発生する。XMLファイルが非常に大きい場合、ファイルの最後の方に配置されているコンテンツを検索することは、非常に時間がかかるだろう。
したがって、本発明は、関連技術の限界および不利な点に起因する一つ以上の問題を実質的に除去する、XMLファイルを構文解析するための方法を、目指している。
本発明の目的は、特定の条件下において非常に大きいXMLファイルの構文解析および検索を最適化するXML構文解析機構を、提供することである。
本発明の付加的な特徴および有利な点は、後に続く説明に記載されており、ある程度、前記説明から明らかになり、あるいは、本発明の実施によって知ることが可能である。本発明の前記目的および他の利点は、添付の図面と同様に、それの説明文および請求の範囲において詳しくは指摘される構成によって、実現化されかつ達成される。
具体的に表現されかつ広範に説明されているこれらおよび/または他の目的を達成するために、本発明は、拡張マークアップ言語(XML)ドキュメントを処理するための方法を提供し、当該方法は、メインスレッドにおいて、構文解析スレッドを生成するステップ(a)、前記XMLドキュメントにおいて検索される次の目標コンテンツのIDを、前記構文解析スレッドに送信し、そして、第1ウェイクアップ信号を前記構文解析スレッドに送信するステップ(b)、前記構文解析スレッドにおいて、前記メインスレッドから前記第1ウェイクアップ信号を受け取った後において、前記構文解析スレッドによって送信された次の目標コンテンツの前記IDを取得するステップ(c)、イベント駆動型XMLパーサプログラムを実行し、前記XMLドキュメントの一部分を構文解析し、前記XMLパーサプログラムは、前記XMLドキュメントにおいて一つ以上の定義済みイベントに遭遇すると、一つ以上のコールバックファンクションを呼び出すステップ(d)、および、前記XML構文解析プログラムによって呼び出されるコールバックファンクションに応じて、前記XML構文解析プログラムによって検出された目標コンテンツを、前記メインスレッドに送信し、第2ウェイクアップ信号を、前記メインスレッドに送信し、そして、スリープモードに入るステップ(e)、を有する。
別の様相において、本発明は、データ処理装置に上記方法を実行させるコンピュータプログラムを提供する。
前述の概略的記述および以下の詳細な記述の両方は、代表的および説明的であり、請求される本発明のさらなる説明を提供することを意図していることが理解されるだろう。
図面の簡単な説明
図1は、本発明の実施形態に係るSAX構文解析方法を説明するためのフローチャートである。
図2は、本発明の実施形態に係るSAX構文解析方法が使用される代表的な印刷システムを示している概略ブロック図である。
好ましい実施形態の詳細な説明
本書類に記載される本発明は、上に略述された通常のSAX型パーサに関連する問題を解決する。本発明の実施形態は、構文解析プロセスにおける所望のポイントにおいてSAXパーサを一時停止することができるSAX構文解析方法を、提供する。パーサは、一時停止された状態にある一方、ウェイクアップ信号によって追加のコンテンツを検索するように、構成することができる。この方法の利点は、目標コンテンツを検出した後でパーサがXMLファイルの全てを終える必要がないことであり、追加のコンテンツを検索するたびに、再スタートさせる必要がないことである。
SAX構文解析方法は、2つの実行スレッドを有する2スレッドアーキテクチャを使用する。実際の構文解析プロシージャは、メインスレッドから分離しているスレッドである構文解析スレッドにロケートされる。構文解析スレッドは、SAXパーサのコールバックファンクションを使用し、SAXパーサを生成および実行させる。メインスレッドは、構文解析スレッドを制御し、そして、構文解析スレッドによって位置が突き止められたコンテンツを、さらに処理(例えば、ポストスクリプトへの変換、ディスクへのセーブ等)する。
生成されると、構文解析スレッドは、順繰りにSAXパーサのインスタンスを生成して初期化する。構文解析スレッドにおいて実行される各コールバックファンクションにおいて、目標コンテンツの位置が突き止められているか否かを判断するために、チェックが為される。否である場合、SAXパーサは、ドキュメントXMLを処理し続ける。目標コンテンツの位置が突き止められている場合、構文解析スレッドは、ステータスをメインスレッドに返却し、そして、メインスレッドからさらなる命令を待ち受ける。
メインスレッドは、構文解析スレッドのインスタンスを生成する。メインスレッドが特定のXML要素(目標コンテンツ)を検索するための構文解析スレッドを必要とする場合、それは、どのコンテンツが検索されるかを示している構文解析スレッドのメッセージ待ち行列に、メッセージを格納し、その後、構文解析スレッドのウェイクアップを引き起こさせるウェイクアップ信号をセットする。このポイントにおいて(構文解析スレッドが対象コンテンツを検索している間)、メインスレッドは、構文解析スレッドからのフィードバックを待ち受けると同時に、スリープ状態を入力あるいは別のワークを実行することができる。構文解析スレッドは、ウェイクアップ信号を受け取り、それのメッセージ待ち行列からのメッセージを読み込み、そして、SAXパーサを実行する。SAXパーサは、前回一時停止されたところから構文解析をスタートする。目標コンテンツがXMLファイルにおいて検出される場合、構文解析スレッドは、メインスレッドのメッセージ待ち行列にメッセージを格納し、メインスレッドにフィードバック信号を送信し、そして、停止する。
図1のフローチャートは、メインスレッドおよび構文解析スレッドが従うロジックを説明している。後で説明されるように、メインスレッドおよび構文解析スレッドのロジックフローは、ROM(読取り専用メモリ)やHD(ハードディスク)等の記憶装置に記憶されたプログラムを実行することによって、CPU(中央処理装置)により実行することが可能である。図1に示されるように、メインスレッドは、スタートさせられると、目標コンテンツすなわちXMLファイルにおいて検索する要素あるいはコンテンツのIDを取得する(ステップS11)。目標コンテンツIDは、ユーザ、データベース等から取得することが可能である。ここで留意すべきは、用語「要素」および「コンテンツ」は、XMLにおいて特定の意味を有すると共に、この開示において、置き換え可能に使用され、XMLドキュメントの一部を概して参照しており、また、「目標コンテンツ」は、XMLドキュメントにおいて検索されているものを参照するために、使用されていることである。各目標コンテンツのため、メインスレッドは、構文解析スレッドが1つも存在しない場合、構文解析スレッドを生成する(ステップS13,S14)。概して、構文解析スレッドは、一旦生成されると多数の後続の検索のために存在し続けるが、しかし、XMLドキュメントを先頭から検索するために、時には再生成されることを必要とする。メインスレッドは、その後、次の目標コンテンツのIDを構文解析スレッドに送信し(ステップS15)、そして、構文解析スレッドをウェイクアップさせる信号を送信する(ステップS16)。メインスレッドは、次に、スリープモードに入り、構文解析スレッドからのウェイクアップ信号を待ち受ける(ステップS17)。もう一つの方法として、メインスレッドは、構文解析スレッドからのウェイクアップ信号を待ち受けながら、別のワークを実行することができる。この点について、ここで留意すべきは、構文解析スレッドからの信号は、ウェイクアップ信号として参照されるが、メインスレッドは、必ずしもスリープモードにある必要はない。
構文解析スレッドは、最初に生成される際、検索すべきいかなるコンテンツもまだ受け取っておらず、したがって、スリープモードに入り、そして、ウェイクアップ信号を待ち受ける(ステップS21)。ウェイクアップ信号がメインスレッドから受け取られると、構文解析スレッドは、ウェイクアップ信号の前のステップS15においてメインスレッドから送信されている、目標コンテンツのIDを取得する(S22)。構文解析スレッドは、次に、SAXパーサプログラムを実行し、XMLドキュメントの一部分を処理する(ステップS23)。SAXパーサは、例えば、XERCESのような現在入手可能なプログラムを含んでいる任意の適当なSAXパーサプログラムによって、実行することができる。それは、構文解析を実行し、構文解析スレッドにより使用されるコールバックファンクションを呼び出す。コールバックファンクションは、例えば、startElement()、endElement()、chars()等である。SAXパーサプログラムがコールバックファンクションを呼び出すたびに(ステップS24)、構文解析スレッドは、目標コンテンツがパーサによって検出されたか否かを決定する(ステップS25)。目標コンテンツが検出されると、構文解析スレッドは、当該コンテンツをメインスレッドに送信し(ステップS26)、ウェイクアップ信号を前記メインに送信し(ステップS27)、そして、独りでスリープモードに入る(すなわち、さらなる構文解析オペレーションは、停止させられる)(ステップS21)。一方、目標コンテンツが、コールバック後に検出されない場合(ステップS25における「N」)、構文解析スレッドは、SAXパーサを命令し、目標コンテンツが検出されるまで(ステップS25における「Y」)、あるいは、ドキュメントの最後に到達するまで(ステップS28における「Y」)、構文解析を継続させる(ステップS23)。
メインスレッドは、ウェイクアップ信号を構文解析スレッド(ステップS17)から受け取ると、適切なステップを実行し、例えば、コンテンツのポストスクリプト(登録商標)への変換、印刷、ディスクへのセーブ等のさらなる処理を、コンテンツに実施する(ステップS18)。メインスレッドは、その後、全ての目標コンテンツが処理されるまで(ステップS12における「N」)、次の目標コンテンツ用のプロセスを繰り返す(ステップS13〜S18)。
SAXパーサの特質のため、検索の際、構文解析スレッドは、XMLドキュメントにおいてすでに通り過ぎたコンテンツを、検出することができない。戻って、構文解析スレッドにおけるステップS25を参照し、コールバックが呼び出された後、構文解析スレッドが、目標コンテンツが検出されなかったが(ステップS25における「N」)、XMLドキュメントの最後に到達した(ステップS28における「Y」)と決定する場合、構文解析スレッドは、イグジットする。輻輳を避けることは、図1に示されていないけれど、それがイグジットする前に、構文解析スレッドは、ステータス信号をメインスレッドに送信し、この結果を、後者に通知する。それに応じて、メインスレッドは、ステップS14へ進み、新しい構文解析スレッドを生成し、XMLドキュメントの先頭から、いまだ検出されていない目標コンテンツを検索する。
本発明の実施形態に係るSAX構文解析方法の利点は、2つの実行スレッドを使用することによって、目標コンテンツが構文解析スレッドによって検出された後で、構文解析は、一時停止させられ、そして、メインスレッドによって命令された場合、一時停止されたポイントから再スタートされて、次のコンテンツのために検索することできることである。この意味において、前記SAX構文解析は、命令SAX構文解析として参照することが可能である。
2スレッドアーキテクチャを使用する別の利点は、メインスレッドが、構文解析スレッドがそのタスクを実行するやり方に、関与する必要がないことである。したがって、2つのスレッド間のインタフェースが一定に保たれる限り、構文解析機構のためのプログラムコードは、メインスレッドに影響を及ぼすことなく、完全に変更することができる。
命令SAX構文解析方法は、ソフトウェア、ファームウェアあるいはハードウェアとして、実践することができる。多数の既存のXML処理ソフトウェアライブラリのいずれか一つ、例えば、XERCES(「apache.org」ウェブサイトにおいて入手可能)を使用し、ステップS23における構文解析を実行することによって、それを実践することができる。
命令SAX構文解析方法は、XML処理方法の一部を構成し、当該方法は、例えば、プリンタによる画像の印刷、ディスプレイ装置上への画像の表示等の様々なアプリケーションのために、XMLファイルを処理するために使用される。図2は、XML構文解析方法が使用される代表的な印刷システムを示している概略ブロック図である。前記印刷システムは、パーソナルコンピュータ(PC)100と、例えば、シリアルバス、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)等のデータ通信回線を経由して接続されるプリンタ200とを有する。PC100は、広く知られた構造を有し、当該構造においては、印刷されるドキュメントは、アプリケーションプログラムを使用して作成され、そして、ユーザの指示によって、前記ドキュメントは、PDLデータの形式あるいはXMLデータの形式で、プリンタ200に送信される。プリンタ200は、概して、制御部201、画像処理部202、プリントエンジン203および入出力(I/O)部204を有する。制御部201は、中央処理装置(CPU)、ランダムアクセスメモリ(RAM)および読取り専用メモリ(ROM)を有する。CPUは、ROMに記録された多様なソフトウェアプログラムを、RAMに読み出し、プリンタ200の内部装置部202〜204を制御する。CPU(およびRAM)もまた、ROMに同様に記録されるXML処理プログラムを使用して、XMLファイルを処理し、そして、ラスタ画像を生成する。本実施形態におけるXML処理プログラムは、その一部として、上述の2スレッドアーキテクチャを使用するSAXパーサを有する。画像処理部202は、CPU201の制御下、ラスタライズされた画像データに対して、例えば、ガンマ補正、スクリーニング処理等の多様な画像処理を実行し、そして、処理された画像データをプリントエンジン203に送信する。例えば、電子写真プロセスを用いるプリントエンジンは、画像処理部202から送信される画像データに基づいて、記録紙上に画像を生成する。I/O部は、PC100からPDLあるいはXMLデータの形式のプリントデータを、受け入れる。
本発明に係る命令SAX構文解析方法において、本発明の意図あるいは範囲から逸脱することなく、多様な修正および変更を為すことが可能であることは、当業者にとって明らかである。特に、SAXパーサが一例として使用されているけれども、本発明は、パーサがベント駆動型のストリーム的なやり方で作動する限り、いかなる特定のXML構文解析アルゴリズムにも限定されない。したがって、本発明は、添付される請求の範囲およびそれらの等価の範囲内にある修正および変更を包含することを意図している。
本発明の実施形態に係るSAX構文解析方法を説明するためのフローチャートである。 本発明の実施形態に係るSAX構文解析方法が使用される代表的な印刷システムを示している概略ブロック図である。

Claims (13)

  1. 拡張マークアップ言語(XML)ドキュメントを処理するための方法であって、
    メインスレッドにおいて、
    構文解析スレッドを生成するステップ(a)、
    前記XMLドキュメントにおいて検索される次の目標コンテンツのIDを、前記構文解析スレッドに送信し、そして、第1ウェイクアップ信号を前記構文解析スレッドに送信するステップ(b)、
    前記構文解析スレッドにおいて、
    前記メインスレッドから前記第1ウェイクアップ信号を受け取った後において、前記構文解析スレッドによって送信された次の目標コンテンツの前記IDを取得するステップ(c)、
    イベント駆動型XMLパーサプログラムを実行し、前記XMLドキュメントの一部分を構文解析し、前記XMLパーサプログラムは、前記XMLドキュメントにおいて一つ以上の定義済みイベントに遭遇すると、一つ以上のコールバックファンクションを呼び出すステップ(d)、および、
    前記XML構文解析プログラムによって呼び出されるコールバックファンクションに応じて、前記XML構文解析プログラムによって検出された目標コンテンツを、前記メインスレッドに送信し、第2ウェイクアップ信号を、前記メインスレッドに送信し、そして、スリープモードに入るステップ(e)、
    を有することを特徴とする方法。
  2. 前記メインスレッドにおいて、
    ステップ(b)の前で、前記XMLドキュメントにおいて検索される目標コンテンツのIDを取得するステップ(f)、
    ステップ(b)の後で、前記構文解析スレッドからの前記第2ウェイクアップ信号を待ち受けるステップ(g)、および、
    前記第2ウェイクアップ信号を受け取った後で、前記構文解析スレッドによって検出されたコンテンツを処理するステップ(h)を、
    さらに有することを特徴とする請求項1に記載の方法。
  3. 前記メインスレッドにおいて、追加の目標コンテンツのために、ステップ(b)、(g)および(h)を繰り返すステップを、さらに有することを特徴とする請求項2に記載の方法。
  4. 前記構文解析スレッドにおいて、ステップ(e)は、
    前記XML構文解析プログラムによって呼び出される各コールバックファンクションに応じて、前記目標コンテンツが前記XML構文解析プログラムによって検出されたか否かを決定するステップ(e1)、および、
    前記目標コンテンツが検出されない場合、前記XML構文解析プログラムの実行を継続するステップ(e2)を、
    さらに有することを特徴とする請求項1に記載の方法。
  5. 前記構文解析スレッドにおいて、前記XMLドキュメントの最後に到達しても前記目標コンテンツが検出されない場合、ステータス信号を、前記メインスレッドに送信するステップを、さらに有することを特徴とする請求項4に記載の方法。
  6. 前記メインスレッドにおいて、前記構文解析スレッドからのステータス信号を受け取ることに応じて、新しい構文解析スレッドを生成するステップを、さらに有することを特徴とする請求項5に記載の方法。
  7. データ処理装置を制御するためのコンピュータプログラムであって、前記コンピュータプログラムは、前記データ処理装置によって拡張マークアップ言語(XML)ドキュメントを処理するための方法が実行されるように、構成されており、
    前記プロセスは、
    メインスレッドにおいて、
    構文解析スレッドを生成するステップ(a)、
    前記XMLドキュメントにおいて検索される次の目標コンテンツのIDを、前記構文解析スレッドに送信し、そして、第1ウェイクアップ信号を前記構文解析スレッドに送信するステップ(b)、
    前記構文解析スレッドにおいて、
    前記メインスレッドから前記第1ウェイクアップ信号を受け取った後において、前記構文解析スレッドによって送信された次の目標コンテンツの前記IDを取得するステップ(c)、
    イベント駆動型XMLパーサプログラムを実行し、前記XMLドキュメントの一部分を構文解析し、前記XMLパーサプログラムは、前記XMLドキュメントにおいて複数の定義済みイベントに遭遇すると、複数のコールバックファンクションを呼び出すステップ(d)、および、
    前記XML構文解析プログラムによって呼び出されるコールバックファンクションに応じて、前記XML構文解析プログラムによって検出された目標コンテンツを、前記メインスレッドに送信し、第2ウェイクアップ信号を、前記メインスレッドに送信し、そして、スリープモードに入るステップ(e)、
    を有することを特徴とするコンピュータプログラム。
  8. 前記プロセスは、
    前記メインスレッドにおいて、
    ステップ(b)の前で、前記XMLドキュメントにおいて検索される目標コンテンツのIDを取得するステップ(f)、
    ステップ(b)の後で、前記構文解析スレッドからの前記第2ウェイクアップ信号を待ち受けるステップ(g)、および、
    前記第2ウェイクアップ信号を受け取った後で、前記構文解析スレッドによって検出されたコンテンツを処理するステップ(h)を、
    さらに有することを特徴とする請求項7に記載のコンピュータプログラム。
  9. 前記プロセスは、前記メインスレッドにおいて、追加の目標コンテンツのために、ステップ(b)、(g)および(h)を繰り返すステップを、さらに有することを特徴とする請求項8に記載のコンピュータプログラム。
  10. 前記構文解析スレッドにおいて、ステップ(e)は、
    前記XML構文解析プログラムによって呼び出される各コールバックファンクションに応じて、前記目標コンテンツが前記XML構文解析プログラムによって検出されたか否かを決定するステップ(e1)、および、
    前記目標コンテンツが検出されない場合、前記XML構文解析プログラムの実行を継続するステップ(e2)を、
    さらに有することを特徴とする請求項7に記載のコンピュータプログラム。
  11. 前記プロセスは、前記構文解析スレッドにおいて、前記XMLドキュメントの最後に到達しても前記目標コンテンツが検出されない場合、ステータス信号を、前記メインスレッドに送信するステップを、さらに有することを特徴とする請求項10に記載のコンピュータプログラム。
  12. 前記プロセスは、前記メインスレッドにおいて、前記構文解析スレッドからステータス信号を受け取ることに応じて、新しい構文解析スレッドを生成するステップを、さらに有することを特徴とする請求項11に記載のコンピュータプログラム。
  13. 請求項7〜12のいずれか1項に記載のコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2008058510A 2007-03-27 2008-03-07 Xmlドキュメントのための命令saxパーサ Expired - Fee Related JP5340616B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/692,146 US8103952B2 (en) 2007-03-27 2007-03-27 Directed SAX parser for XML documents
US11/692,146 2007-03-27

Publications (2)

Publication Number Publication Date
JP2008293477A true JP2008293477A (ja) 2008-12-04
JP5340616B2 JP5340616B2 (ja) 2013-11-13

Family

ID=39796577

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008058510A Expired - Fee Related JP5340616B2 (ja) 2007-03-27 2008-03-07 Xmlドキュメントのための命令saxパーサ

Country Status (2)

Country Link
US (1) US8103952B2 (ja)
JP (1) JP5340616B2 (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9122650B1 (en) 2007-11-14 2015-09-01 Appcelerator, Inc. Web server based on the same paradigms as web clients
US8914774B1 (en) 2007-11-15 2014-12-16 Appcelerator, Inc. System and method for tagging code to determine where the code runs
US8954989B1 (en) 2007-11-19 2015-02-10 Appcelerator, Inc. Flexible, event-driven JavaScript server architecture
US8260845B1 (en) 2007-11-21 2012-09-04 Appcelerator, Inc. System and method for auto-generating JavaScript proxies and meta-proxies
US8566807B1 (en) 2007-11-23 2013-10-22 Appcelerator, Inc. System and method for accessibility of document object model and JavaScript by other platforms
US8719451B1 (en) 2007-11-23 2014-05-06 Appcelerator, Inc. System and method for on-the-fly, post-processing document object model manipulation
US8819539B1 (en) 2007-12-03 2014-08-26 Appcelerator, Inc. On-the-fly rewriting of uniform resource locators in a web-page
US8806431B1 (en) 2007-12-03 2014-08-12 Appecelerator, Inc. Aspect oriented programming
US8756579B1 (en) 2007-12-03 2014-06-17 Appcelerator, Inc. Client-side and server-side unified validation
US8527860B1 (en) 2007-12-04 2013-09-03 Appcelerator, Inc. System and method for exposing the dynamic web server-side
US8938491B1 (en) 2007-12-04 2015-01-20 Appcelerator, Inc. System and method for secure binding of client calls and server functions
US8639743B1 (en) 2007-12-05 2014-01-28 Appcelerator, Inc. System and method for on-the-fly rewriting of JavaScript
US8335982B1 (en) 2007-12-05 2012-12-18 Appcelerator, Inc. System and method for binding a document object model through JavaScript callbacks
US8285813B1 (en) 2007-12-05 2012-10-09 Appcelerator, Inc. System and method for emulating different user agents on a server
US8291079B1 (en) 2008-06-04 2012-10-16 Appcelerator, Inc. System and method for developing, deploying, managing and monitoring a web application in a single environment
US8880678B1 (en) 2008-06-05 2014-11-04 Appcelerator, Inc. System and method for managing and monitoring a web application using multiple cloud providers
US8370735B2 (en) * 2008-06-27 2013-02-05 Microsoft Corporation Efficient, non-blocking mechanism for incrementally processing arbitrary sized XML documents
US8255905B2 (en) 2008-06-27 2012-08-28 Microsoft Corporation Multi-threaded processes for opening and saving documents
US7596620B1 (en) 2008-11-04 2009-09-29 Aptana, Inc. System and method for developing, deploying, managing and monitoring a web application in a single environment
JP5371511B2 (ja) * 2009-03-30 2013-12-18 キヤノン株式会社 情報処理装置、情報処理装置の制御方法及びコンピュータプログラム
US8488951B2 (en) * 2009-07-09 2013-07-16 Nvidia Corporation Multimedia framework to provide ultra-low power multimedia playback
US9286061B2 (en) * 2010-12-14 2016-03-15 Microsoft Technology Licensing, Llc Generating and managing electronic documentation
US9087140B2 (en) 2011-05-24 2015-07-21 International Business Machines Corporation Self-parsing XML documents to improve XML processing
US9286115B2 (en) * 2012-06-21 2016-03-15 Microsoft Technology Licensing, Llc Performant runtime pause with no CPU utilization
US11126627B2 (en) * 2014-01-14 2021-09-21 Change Healthcare Holdings, Llc System and method for dynamic transactional data streaming
US10121557B2 (en) 2014-01-21 2018-11-06 PokitDok, Inc. System and method for dynamic document matching and merging
US10007757B2 (en) 2014-09-17 2018-06-26 PokitDok, Inc. System and method for dynamic schedule aggregation
EP3248167A4 (en) 2015-01-20 2018-08-08 Pokitdok Inc. Health lending system and method using probabilistic graph models
US20160342750A1 (en) 2015-05-18 2016-11-24 PokitDok, Inc. Dynamic topological system and method for efficient claims processing
US10366204B2 (en) 2015-08-03 2019-07-30 Change Healthcare Holdings, Llc System and method for decentralized autonomous healthcare economy platform
WO2017066700A1 (en) 2015-10-15 2017-04-20 PokitDok, Inc. System and method for dynamic metadata persistence and correlation on api transactions
US10102340B2 (en) 2016-06-06 2018-10-16 PokitDok, Inc. System and method for dynamic healthcare insurance claims decision support
US10108954B2 (en) 2016-06-24 2018-10-23 PokitDok, Inc. System and method for cryptographically verified data driven contracts
WO2018231832A1 (en) 2017-06-12 2018-12-20 PokitDok, Inc. System and method for autonomous dynamic person management

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001273520A (ja) * 2000-03-23 2001-10-05 Famotik Ltd マルチメディアドキュメント統合表示システム
US20020062311A1 (en) * 2000-11-17 2002-05-23 Siemens Aktiengesellschaft Method and device for performing a query on a markup document to conserve memory and time
JP2002304405A (ja) * 2001-01-31 2002-10-18 Internatl Business Mach Corp <Ibm> Xmlデータをロードする方法及びシステム
US20040117381A1 (en) * 2002-12-13 2004-06-17 Dmitry Yankovsky Document transformation tool

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8555261B1 (en) * 2001-06-28 2013-10-08 Microsoft Corporation Object-oriented pull model XML parser
JP3832807B2 (ja) * 2001-06-28 2006-10-11 インターナショナル・ビジネス・マシーンズ・コーポレーション データ処理方法及びその手法を用いたエンコーダ、デコーダ並びにxmlパーサ
US7392239B2 (en) * 2003-04-14 2008-06-24 International Business Machines Corporation System and method for querying XML streams
US20050097128A1 (en) * 2003-10-31 2005-05-05 Ryan Joseph D. Method for scalable, fast normalization of XML documents for insertion of data into a relational database
US8412714B2 (en) * 2004-11-22 2013-04-02 At&T Intellectual Property Ii, L.P. Adaptive processing of top-k queries in nested-structure arbitrary markup language such as XML
US7665016B2 (en) * 2005-11-14 2010-02-16 Sun Microsystems, Inc. Method and apparatus for virtualized XML parsing
US20080033974A1 (en) * 2006-08-07 2008-02-07 International Characters, Inc. Method and Apparatus for XML Parsing Using Parallel Bit streams

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001273520A (ja) * 2000-03-23 2001-10-05 Famotik Ltd マルチメディアドキュメント統合表示システム
US20020062311A1 (en) * 2000-11-17 2002-05-23 Siemens Aktiengesellschaft Method and device for performing a query on a markup document to conserve memory and time
JP2002304405A (ja) * 2001-01-31 2002-10-18 Internatl Business Mach Corp <Ibm> Xmlデータをロードする方法及びシステム
US20040117381A1 (en) * 2002-12-13 2004-06-17 Dmitry Yankovsky Document transformation tool

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNG200600063014; 山中 真和 外1名: '要求駆動型XML処理のスケジューリングおよびメモリに関する効率化' 情報処理学会論文誌 第46巻 No.SIG12(ACS11) 第46巻, 20050815, p.225-235, 社団法人情報処理学会 *
JPN6012046815; 山中 真和 外1名: '要求駆動型XML処理のスケジューリングおよびメモリに関する効率化' 情報処理学会論文誌 第46巻 No.SIG12(ACS11) 第46巻, 20050815, p.225-235, 社団法人情報処理学会 *

Also Published As

Publication number Publication date
US8103952B2 (en) 2012-01-24
JP5340616B2 (ja) 2013-11-13
US20080244586A1 (en) 2008-10-02

Similar Documents

Publication Publication Date Title
JP5340616B2 (ja) Xmlドキュメントのための命令saxパーサ
US7945712B2 (en) Job status monitoring system, job status monitoring method, program, and storage medium
US8582162B2 (en) Information processing apparatus, output method, and storage medium
JP2008262543A (ja) Pdfダイレクトプリントのためのpdfデータの不連続伝送
JP2007287146A (ja) マークアップ言語ファイルの格納及び送信の最適化
JP2012030575A (ja) 印刷装置、印刷装置の制御方法及びプログラム
US8730490B2 (en) Printer driver, information processing apparatus, and computer program product
US20050286078A1 (en) Print control device and method for automatically resuming a printing operation of remaining pages
JP5097796B2 (ja) 画像形成装置
JP2006209309A (ja) 印刷システム
US8984397B2 (en) Architecture for arbitrary extensible markup language processing engine
JP5244770B2 (ja) 画像形成装置
US9870184B2 (en) Information processing apparatus combining multiple filters, recording medium, and control method
JP5298046B2 (ja) 画像形成装置
JP2003312107A (ja) 印刷制御装置および印刷制御方法および記憶媒体およびプログラム
WO2018142695A1 (ja) サーバー装置、情報処理システム及び画像形成装置
US20080212110A1 (en) Pdf direct printing method utilizing page printing order information for efficient handling of data
US8836984B2 (en) Image processing apparatus, method and storage medium for increasing the speed of printing data stored in an external storage medium by reducing the number of accesses to the medium
JP4853179B2 (ja) FixedPage文書の処理装置及び方法
JP5087525B2 (ja) 画像形成システム
US8228533B2 (en) Image processing system, image processing method, computer readable medium, and computer data signal
US20230401016A1 (en) Pre-processing print jobs
US20240143248A1 (en) Pre-rendering and caching system
JP2002248840A (ja) 印刷制御装置およびデータ処理方法および記憶媒体
JP2008254356A (ja) Svg文書印刷装置およびsvg文書印刷方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101020

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120813

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120911

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121127

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130807

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees