[go: up one dir, main page]

JP2002099428A - ハッシュコンパクトxmlパーサ - Google Patents

ハッシュコンパクトxmlパーサ

Info

Publication number
JP2002099428A
JP2002099428A JP2001201414A JP2001201414A JP2002099428A JP 2002099428 A JP2002099428 A JP 2002099428A JP 2001201414 A JP2001201414 A JP 2001201414A JP 2001201414 A JP2001201414 A JP 2001201414A JP 2002099428 A JP2002099428 A JP 2002099428A
Authority
JP
Japan
Prior art keywords
tag
document
hash
code
syntax
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.)
Withdrawn
Application number
JP2001201414A
Other languages
English (en)
Inventor
Charles Brooke John
チャールズ ブルック ジョン
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
Publication of JP2002099428A publication Critical patent/JP2002099428A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/226Validation
    • 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]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Document Processing Apparatus (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 (修正有) 【課題】ハードウェア制約のある装置でのメモリとの競
合および処理負担を改善する構文要素を含むマークアッ
プ言語文書の解析方法を提供する。 【解決手段】構文要素の1つに対し、その要素のタイプ
を識別し310、前記タイプが第1タイプの場合はハッ
シュ表現を決定することによってその要素を処理し31
8、前記タイプが前記第1タイプの場合は、ハッシュ表
現を用いたその文書の少なくとも部分的な構造表現を強
める314、という手続きを含む。

Description

【発明の詳細な説明】
【0001】
【著作権についての注意】この特許明細書は、著作権保
護の対象となる素材を含む。その著作権者は、特許庁の
ファイルから閲覧する目的で、本特許明細書、或は、関
連素材を複製することに対しては、なんらの異論もない
が、そうでなければ、全てのいかなる著作権もこれを保
有する。
【0002】
【発明の属する技術分野】本発明は、一般的にマルチメ
ディア文書の処理、特に、マークアップ言語で記述され
た文書に関する。本発明は、マークアップ言語文書を構
文解析する方法及び装置に関するものである。本発明は
また、マークアップ言語で記述された文書を構文解析す
るための処理をコンピュータに実行させるために作成さ
れたコンピュータプログラムに関し、更に、このコンピ
ュータプログラムが記録されたコンピュータ可読媒体を
含むコンピュータプログラム製品に関する。
【0003】
【技術的背景】構文解析(パーシング)とは、文書から
情報を抽出する処理である。この処理には、通常、文書
の構文に対する最低限のチェックが少なくとも含まれ
る。そして、一般的に、その文書のツリー構造での記
述、又は、イベントの論理的なつながり(logical chai
n)を得ることができる。そのイベントの論理的なつな
がりに基づいた構造表現は、一般的に、文頭から文末ま
で、文書を順番に構文解析することによって生成され
る。
【0004】ツリー型のパーサは、例えば、XML文書
を内部ツリー構造にコンパイルし、アプリケーションが
扱うことのできる階層モデルを与える。W3Cの文書オ
ブジェクトモデル(DOM)作業グループは、拡張可能
なマークアップ言語(XML)文書に用いる標準ツリー
型アプリケーションプログラムインターフェース(AP
I)を現在開発している。他方、イベント型のパーサは
各要素の開始や終了等の解析イベントを、アプリケーシ
ョン−このアプリケーションのために解析が行われてい
る−に直接報告する。この報告は典型的にはコールバッ
クを用いて実行され、内部ツリー構造を必要としない。
解析が必要なアプリケーションは、様々なイベントを処
理するためにハンドラを実行する。これはグラフィカル
ユーザインターフェースにおけるイベントのハンドリン
グによく似ている。
【0005】ツリー型のパーサは、広範囲のアプリケー
ションに有用だが、一般的に、システムリソースに負担
がかかり、特に、解析対象となっている文書が大きな場
合には負担となる。さらに、アプリケーションは、その
アプリケーション独自のツリー構造の構築を必要とする
場合があるが、ツリー表現を、異なる表現と照らし合わ
せるためだけに、構築するのは非効率である。イベント
型のパーサによれば、XML文書に対し、より単純で、
より低いレベルでのアクセスが可能となり、使用可能な
システムメモリよりも大きなメモリを要する文書の解析
を容易にする。“Simple API for XM
L”(SAXパーサと称す)は、XML文書を解析する
ためのイベント駆動型インターフェースである。SAX
パーサは、図2A、図2B、図3A、図3B、図3Cに
おいて、更に詳細に議論する。
【0006】図1A、図1Bは、パーサシステムのブロ
ック図を示したものである。ここでは、以下のXML文
書部分106について考察する。
【0007】 105 <Shakespeare> 110 <!--This is a comment--> 115 <div class="preface"Name1="value1"name2="value2"> 120 <mult list=&lt;></mult> 125 <banquo> 130 Say [1] 135 <quote> 140 goodnight</quote>, 145 Hamlet.</banquo> 150 <Hamlet><quote>Goodnight,Hamlet.</quote></Hamlet> 155 </Shakespeare>
【0008】図1Bにおいて、XML文書106は、こ
の例では、イベント型のパーサである、パーサ112へ
入力される。点線枠108で示されるように、文書型定
義(DTD)又はXMLスキーマもまた、パーサ112
へオプションとして入力される。パーサ112は、矢印
114で示されるように、簡単なリストから成る文書1
06の部分的な構造表現を出力する。図1Aにおいて、
カスケードスタイルシート(CSS)又は拡張スタイル
シート(XSL)104は、CSS又はXSLパーサ1
10へ入力される。DTD102もまたこのパーサ11
0へ入力される。本図において、XMLパーサ112及
びCSS/XSLパーサ110は共に、イベント駆動型
パーサである。
【0009】XMLのようなマークアップ言語の利点の
1つは、タグを使用して文書の様々な部分を定義できる
ことにより、文書を、容易に、よりスマートで、よりポ
ータブルで、よりパワフルにできることにある。この機
能は、XMLの記述上の性質からきている。XML文書
はサブジェクト単位でカスタマイズされる。そして、そ
れにより、カスタマイズされたタグは、人間が文書を構
造的に理解できるようにするために用いられる。しか
し、この特性によって、XML文書が冗長で大きなもの
になることがよくあり、場合によっては問題となる。例
えば、XML文書がプリンタのように、ハードウェア制
約のある装置で解析されなければならない場合、メモリ
をたくさん使用する性質のある従来型の解析は、そのよ
うな装置に格納できる限られたメモリと競合してしま
う。さらに、ハードウェア制約のある装置によって文書
が処理される場合には、人間のXML文書の読みやすさ
は、一般的に、余り利点にはならない。さらに、XML
文書の解析において、タグ文字列のマッチング操作が多
く必要とされ、許容できないほどの処理要求の負担がか
かり、ひいては、許容できない数のプロセッササイクル
を引き起す。これらの問題は、図1A及び図1Bに示さ
れる両方のパーサ例に当てはまる。
【0010】
【本発明の開示】本発明の目的は、既存の機器の一つ以
上の欠点をほぼ無くし、或は、少なくとも改善すること
にある。
【0011】本発明の第1の態様では、構文要素を含む
マークアップ言語文書を解析する解析方法であって、前
記構文要素の内の一要素に対し、前記一要素のタイプを
識別する識別ステップと、前記タイプが第1タイプであ
れば、そのハッシュ表現を決定することによってその要
素を処理する処理ステップと、前記タイプが前記第1タ
イプであれば、前記ハッシュ表現を用いて、前記文書の
少なくとも部分的な構造表現を増大させる増大ステップ
と、を含むことを特徴とする解析方法が提供される。
【0012】本発明の他の態様では、VRDに照らして
マークアップ言語文書の妥当性検査を行う検査方法であ
って、(a)マークアップ言語文書を、そこで識別され
るドキュメントタグごとに、該ドキュメントタグが、対
応するマークアップ言語のドキュメントタグ階層におけ
る第1ドキュメントタグでなければ、処理するステップ
を有し、該処理は、(i)前記ドキュメントタグの階層
位置を決定するステップと、(ii)前記ドキュメント
タグ階層における前のドキュメントタグのハッシュ表現
に連結された、前記ドキュメントタグの拡張ハッシュ表
現を決定するステップと、(iii)前記ドキュメント
タグが前のドキュメントタグよりも深くネストにされる
場合に、前記ドキュメントタグの前記拡張ハッシュ表現
を格納するステップと、を含み、前記検査方法は更に、
(b)VRDを、そこで識別されるタグごとに、該タグ
が対応タグ階層の第1タグでない場合に、処理するステ
ップを有し、該処理は、(i)前記タグの階層位置を決
定するステップと、(ii)対応するタグ階層における
前のタグのハッシュ表現に連結される前記タグの拡張ハ
ッシュ表現を決定するステップと、(iii)前記タグ
の前記拡張ハッシュ表現をリストに格納するステップ
と、を含み、前記検査方法は更に、(c)前記ドキュメ
ントタグの前記拡張ハッシュ表現が、前記リスト内にあ
るか、或は、前記リストのメンバの妥当なサブセットで
ある場合には、前記マークアップ言語文書の妥当性を検
査するステップを有することを特徴とする検査方法が提
供される。
【0013】本発明の他の態様では、VRDに照らして
マークアップ言語文書の妥当性を検査する検査方法であ
って、(a)前記VRDを、そのなかで識別された構造
要素ごとに、処理する処理ステップを含み、該処理ステ
ップは、(i)前記構造要素の構文属性を決定するステ
ップと、(ii)前記構造要素のハッシュ表現を決定す
るステップと、(iii)前記VRDの構造表現におけ
る、前記構造要素の前記ハッシュ表現及び構文属性を格
納するステップと、を含み、前記検査方法は更に、
(b)マークアップ言語文書を、そのなかで識別された
ドキュメント構造要素ごとに、処理する処理ステップを
含み、該処理ステップは、(i)前記文書構造要素の構
文属性を決定するステップと、(ii)前記文書構造要
素のハッシュ表現を決定するステップと、(iii)前
記文書の構造表現における、前記文書構造要素の前記ハ
ッシュ表現と構文属性を格納するステップと、を含み、
前記検査方法は更に、(c)前記文書の前記構造表現に
おける前記各文書構造要素の構文属性及びハッシュ表現
が、前記VRDの前記構造表現における対応構文属性及
びハッシュ表現に一致する場合に、前記マークアップ言
語文書の妥当性を検査するステップを有することを特徴
とする検査方法が提供される。
【0014】本発明の他の態様では、構文要素を含むマ
ークアップ言語文書を符号化する符号化方法であって、
前記構文要素の一つについて、構文要素のタイプを識別
するステップと、(i)前記タイプが第1タイプであれ
ば、前記構文要素のハッシュ表現を決定すること、(i
i)前記タイプが第1タイプでなければ、前記構文要素
の圧縮表現を決定すること、(iii)前記構文要素を
保持すること、のいずれかによって、前記構文要素を処
理するステップと、を含むことを特徴とする符号化方法
が提供される。
【0015】本発明の他の態様では、符号化構文要素を
含むマークアップ言語文書を復号する復号方法であっ
て、前記符号化構文要素の一つについて、前記符号化構
文要素のタイプを識別するステップと、(i)前記タイ
プが第1タイプであれば、前記符号化構文要素の逆ハッ
シュ表現を決定すること、(ii)前記タイプが第1タ
イプでなければ、前記符号化構文要素の解凍表現を決定
すること、(iii)前記符号化構文要素を保持するこ
と、の少なくとも一つで、前記符号化構文要素を処理す
るステップと、を含むことを特徴とする復号方法が提供
される。
【0016】本発明の他の態様では、構文要素を含むマ
ークアップ言語文書を解析する解析装置であって、前記
構文要素のタイプを識別する識別手段と、前記タイプが
第1タイプである場合に、前記構文要素を、そのハッシ
ュ表現を決定することによって、処理する処理手段と、
前記タイプが第1タイプである場合に前記ハッシュ表現
を用いて、前記文書の少なくとも部分的構造表現を増大
する増大手段と、を含むことを特徴とする解析装置が提
供される。
【0017】本発明の他の態様では、VRDに照らして
マークアップ言語文書の妥当性を検査する検査装置であ
って、(a)マークアップ言語文書を、そこで識別され
るドキュメントタグごとに、該ドキュメントタグが、対
応するマークアップ言語のドキュメントタグ階層におけ
る第1ドキュメントタグでなければ、処理する手段を有
し、該手段は、(i)前記ドキュメントタグの階層位置
を決定する手段と、(ii)前記ドキュメントタグ階層
における前のドキュメントタグのハッシュ表現に連結さ
れた、前記ドキュメントタグの拡張ハッシュ表現を決定
する手段と、(iii)前記ドキュメントタグが前のド
キュメントタグよりも深くネストにされる場合に、前記
ドキュメントタグの前記拡張ハッシュ表現を格納する手
段と、を含み、前記検査装置は更に、(b)VRDを、
そこで識別されるタグごとに、該タグが対応タグ階層の
第1タグでない場合に、処理する手段を有し、該手段
は、(i)前記タグの階層位置を決定する手段と、(i
i)対応するタグ階層における前のタグのハッシュ表現
に連結される前記タグの拡張ハッシュ表現を決定する手
段と、(iii)前記タグの前記拡張ハッシュ表現をリ
ストに格納する手段と、を含み、前記検査装置は更に、
(c)前記ドキュメントタグの前記拡張ハッシュ表現
が、前記リスト内にあるか、或は、前記リストのメンバ
の妥当なサブセットであるかのどちらかであることを立
証し、それによって、前記マークアップ言語文書の妥当
性を検査する手段を有することを特徴とする検査装置が
提供される。
【0018】本発明の他の態様では、VRDに照らして
マークアップ言語文書の妥当性を検査する検査装置であ
って、(a)前記VRDを、そのなかで識別された構造
要素ごとに、処理する手段を含み、該手段は、(i)前
記構造要素の構文属性を決定する手段と、(ii)前記
構造要素のハッシュ表現を決定する手段と、(iii)
前記VRDの構造表現における、前記構造要素の前記ハ
ッシュ表現及び構文属性を格納する手段と、を含み、前
記検査装置は更に、(b)マークアップ言語文書を、そ
のなかで識別されたドキュメント構造要素ごとに、処理
する手段を含み、該手段は、(i)前記文書構造要素の
構文属性を決定する手段と、(ii)前記文書構造要素
のハッシュ表現を決定する手段と、(iii)前記文書
の構造表現における、前記文書構造要素の前記ハッシュ
表現と構文属性を格納する手段と、を含み、前記検査装
置は更に、(c)前記文書の前記構造表現における前記
各文書構造要素の構文属性及びハッシュ表現と、前記V
RDの前記構造表現における対応構文属性及びハッシュ
表現とを比較し、それにより、前記マークアップ言語文
書の妥当性を検査する手段を有することを特徴とする検
査装置が提供される。
【0019】本発明の他の態様では、構文要素を含むマ
ークアップ言語文書を符号化し、前記文書の少なくとも
部分的構造表現を形成する符号化装置であって、構文要
素のタイプを識別する手段と、(i)前記タイプが第1
タイプであれば、前記構文要素のハッシュ表現を決定す
ること、(ii)前記タイプが第1タイプでなければ、
前記構文要素の圧縮表現を決定すること、(iii)前
記構文要素を保持すること、のいずれかによって、前記
構文要素を処理する手段と、を含むことを特徴とする符
号化装置が提供される。
【0020】本発明の他の態様では、符号化構文要素を
含むマークアップ言語文書を復号する復号装置であっ
て、前記符号化構文要素のタイプを識別する手段と、
(i)前記タイプが第1タイプであれば、前記符号化構
文要素の逆ハッシュ表現を決定すること、(ii)前記
タイプが第1タイプでなければ、前記符号化構文要素の
解凍表現を決定すること、(iii)符号化構文要素を
保持すること、の少なくとも一つによって、前記符号化
構文要素を処理する手段と、を含むことを特徴とする復
号装置が提供される。
【0021】本発明の他の態様では、コンピュータに構
文要素を含むマークアップ言語文書を解析する手続を実
行させるコンピュータプログラムであって、前記構文要
素のタイプを識別するコードと、前記タイプが第1タイ
プである場合に、前記構文要素を、そのハッシュ表現を
決定することによって、処理するコードと、前記タイプ
が第1タイプである場合に前記ハッシュ表現を用いて、
前記文書の少なくとも部分的構造表現を増大するコード
と、を含むことを特徴とするコンピュータプログラムが
提供される。
【0022】本発明の他の態様では、コンピュータにV
RDに照らしてマークアップ言語文書の妥当性を検査す
る手続を実行させるコンピュータプログラムであって、
(a)マークアップ言語文書を、そこで識別されるドキ
ュメントタグごとに、該ドキュメントタグが、対応する
マークアップ言語のドキュメントタグ階層における第1
ドキュメントタグでなければ、処理するコードを有し、
該コードは、(i)前記ドキュメントタグの階層位置を
決定するコードと、(ii)前記ドキュメントタグ階層
における前のドキュメントタグのハッシュ表現に連結さ
れた、前記ドキュメントタグの拡張ハッシュ表現を決定
するコードと、(iii)前記ドキュメントタグが前の
ドキュメントタグよりも深くネストにされる場合に、前
記ドキュメントタグの前記拡張ハッシュ表現を格納する
コードと、を含み、前記コンピュータプログラムは更
に、(b)VRDを、そこで識別されるタグごとに、該
タグが対応タグ階層の第1タグでない場合に、処理する
コードを有し、該コードは、(i)前記タグの階層位置
を決定するコードと、(ii)対応するタグ階層におけ
る前のタグのハッシュ表現に連結される前記タグの拡張
ハッシュ表現を決定するコードと、(iii)前記タグ
の前記拡張ハッシュ表現をリストに格納するコードと、
を含み、前記コンピュータプログラムは更に、(c)前
記ドキュメントタグの前記拡張ハッシュ表現が、前記リ
スト内にあるか、或は、前記リストのメンバの妥当なサ
ブセットである場合には、前記マークアップ言語文書の
妥当性を検査するコードを含むことを特徴とするコンピ
ュータプログラムが提供される。
【0023】本発明の他の態様では、コンピュータにV
RDに照らしてマークアップ言語文書の妥当性を検査す
る手続を実行させるコンピュータプログラムであって、
(a)前記VRDを、そのなかで識別された構造要素ご
とに、処理するコードを含み、該コードは、(i)前記
構造要素の構文属性を決定するコードと、(ii)前記
構造要素のハッシュ表現を決定するコードと、(ii
i)前記VRDの構造表現における、前記構造要素の前
記ハッシュ表現及び構文属性を格納するコードと、を含
み、前記プログラムは更に、(b)マークアップ言語文
書を、そのなかで識別されたドキュメント構造要素ごと
に、処理するコードを含み、該コードは、(i)前記文
書構造要素の構文属性を決定するコードと、(ii)前
記文書構造要素のハッシュ表現を決定するコードと、
(iii)前記文書の構造表現における、前記文書構造
要素の前記ハッシュ表現と構文属性を格納するコード
と、を含み、前記プログラムは更に、(c)前記文書の
前記構造表現における前記各文書構造要素の構文属性及
びハッシュ表現が、前記VRDの前記構造表現における
対応構文属性及びハッシュ表現に一致する場合に、前記
マークアップ言語文書の妥当性を検査するコードを含む
ことを特徴とするコンピュータプログラムが提供され
る。
【0024】本発明の他の態様では、コンピュータに構
文要素を含むマークアップ言語文書を符号化する手続を
実行させるコンピュータプログラムであって、構文要素
のタイプを識別するコードと、(i)前記タイプが第1
タイプであれば、前記構文要素のハッシュ表現を決定す
ること、(ii)前記タイプが第1タイプでなければ、
前記構文要素の圧縮表現を決定すること、(iii)前
記構文要素を保持すること、のいずれかによって、前記
構文要素を処理するコードと、を含むことを特徴とする
コンピュータプログラムが提供される。
【0025】本発明の他の態様では、コンピュータに符
号化構文要素を含むマークアップ言語文書を復号する手
続を実行させるコンピュータプログラムであって、前記
符号化構文要素のタイプを識別するコードと、(i)前
記タイプが第1タイプであれば、前記符号化構文要素の
逆ハッシュ表現を決定すること、(ii)前記タイプが
第1タイプでなければ、前記符号化構文要素の解凍表現
を決定すること、(iii)符号化構文要素を保持する
こと、の少なくとも一つで、前記符号化構文要素を処理
するコードと、を含むことを特徴とするコンピュータプ
ログラムが提供される。
【0026】本発明の他の態様では、コンピュータに構
文要素を含むマークアップ言語文書を解析する手続を実
行させるコンピュータプログラムを、格納したコンピュ
ータ可読媒体を含むコンピュータプログラム製品であっ
て、前記コンピュータプログラムは、前記構文要素のタ
イプを識別するコードと、前記タイプが第1タイプであ
る場合に、前記構文要素を、そのハッシュ表現を決定す
ることによって、処理するコードと、前記タイプが第1
タイプである場合に前記ハッシュ表現を用いて、前記文
書の少なくとも部分的構造表現を増大するコードと、を
含むことを特徴とするコンピュータプログラム製品が提
供される。
【0027】本発明の他の態様では、コンピュータにV
RDに照らしてマークアップ言語文書の妥当性を検査す
る手続を実行させるコンピュータプログラムを、格納し
たコンピュータ可読媒体を含むコンピュータプログラム
製品であって、前記コンピュータプログラムは、(a)
マークアップ言語文書を、そこで識別されるドキュメン
トタグごとに、該ドキュメントタグが、対応するマーク
アップ言語のドキュメントタグ階層における第1ドキュ
メントタグでなければ、処理するコードを有し、該コー
ドは、(i)前記ドキュメントタグの階層位置を決定す
るコードと、(ii)前記ドキュメントタグ階層におけ
る前のドキュメントタグのハッシュ表現に連結された、
前記ドキュメントタグの拡張ハッシュ表現を決定するコ
ードと、(iii)前記ドキュメントタグが前のドキュ
メントタグよりも深くネストにされる場合に、前記ドキ
ュメントタグの前記拡張ハッシュ表現を格納するコード
と、を含み、前記コンピュータプログラムは更に、
(b)VRDを、そこで識別されるタグごとに、該タグ
が対応タグ階層の第1タグでない場合に、処理するコー
ドを有し、該コードは、(i)前記タグの階層位置を決
定するコードと、(ii)対応するタグ階層における前
のタグのハッシュ表現に連結される前記タグの拡張ハッ
シュ表現を決定するコードと、(iii)前記タグの前
記拡張ハッシュ表現をリストに格納するコードと、を含
み、前記コンピュータプログラムは更に、(c)前記ド
キュメントタグの前記拡張ハッシュ表現が、前記リスト
内にあるか、或は、前記リストのメンバの妥当なサブセ
ットである場合に、前記マークアップ言語文書の妥当性
を検査するコードを含むことを特徴とするコンピュータ
プログラム製品が提供される。
【0028】本発明の他の態様では、コンピュータにV
RDに照らしてマークアップ言語文書の妥当性を検査す
る手続を実行させるコンピュータプログラムを、格納し
たコンピュータ可読媒体を含むコンピュータプログラム
製品であって、前記プログラムは、(a)前記VRD
を、そのなかで識別された構造要素ごとに、処理するコ
ードを含み、該コードは、(i)前記構造要素の構文属
性を決定するコードと、(ii)前記構造要素のハッシ
ュ表現を決定するコードと、(iii)前記VRDの構
造表現における、前記構造要素の前記ハッシュ表現及び
構文属性を格納するコードと、を含み、前記プログラム
は更に、(b)マークアップ言語文書を、そのなかで識
別されたドキュメント構造要素ごとに、処理するコード
を含み、該コードは、(i)前記文書構造要素の構文属
性を決定するコードと、(ii)前記文書構造要素のハ
ッシュ表現を決定するコードと、(iii)前記文書の
構造表現における、前記文書構造要素の前記ハッシュ表
現と構文属性を格納するコードと、を含み、前記プログ
ラムは更に、(c)前記文書の前記構造表現における前
記各文書構造要素の構文属性及びハッシュ表現が、前記
VRDの前記構造表現における対応構文属性及びハッシ
ュ表現に一致する場合に、前記マークアップ言語文書の
妥当性を検査するコードを含むことを特徴とするコンピ
ュータプログラム製品が提供される。
【0029】本発明の他の態様では、構文要素を含むマ
ークアップ言語文書の少なくとも部分的な構造表現であ
って、前記構文要素の内の一要素に対し、前記一要素の
タイプを識別する識別ステップと、前記タイプが第1タ
イプであれば、そのハッシュ表現を決定することによっ
てその要素を処理する処理ステップと、前記タイプが前
記第1タイプであれば、前記ハッシュ表現を用いて、前
記文書の少なくとも部分的な構造表現を増大させる増大
ステップと、を行う解析方法によって生成されることを
特徴とする構造表現が提供される。
【0030】本発明の他の態様では、構文要素を含むマ
ークアップ言語文書を解析する解析装置であって、プロ
セッサと、(i)前記文書と、(ii)前記文書を解析
する手続を前記プロセッサに実行させるプログラムを格
納したプログラムと、格納するメモリを含み、該プログ
ラムは、(i)前記構文要素のタイプを識別するコード
と、(ii)前記タイプが第1タイプである場合に、前
記構文要素を、そのハッシュ表現を決定することによっ
て、処理するコードと、(iii)前記タイプが第1タ
イプである場合に前記ハッシュ表現を用いて、前記文書
の少なくとも部分的構造表現を増大するコードと、を含
むことを特徴とする解析装置が提供される。
【0031】本発明の他の態様では、構文要素を含むV
RDに照らして構文要素を含むマークアップ言語文書の
妥当性を検査する検査装置であって、(a)プロセッサ
と、(b)(i)前記文書と、(ii)前記VRDと、
(iii)文書の妥当性を検査する手順を前記プロセッ
サに実行させるプログラムと、を格納するメモリを有
し、(c)前記プログラムは、(ca)マークアップ言
語文書を、そこで識別されるドキュメントタグごとに、
該ドキュメントタグが、対応するマークアップ言語のド
キュメントタグ階層における第1ドキュメントタグでな
ければ、処理するコードを有し、該コードは、(ca
a)前記ドキュメントタグの階層位置を決定するコード
と、(cab)前記ドキュメントタグ階層における前の
ドキュメントタグのハッシュ表現に連結された、前記ド
キュメントタグの拡張ハッシュ表現を決定するコード
と、(cac)前記ドキュメントタグが前のドキュメン
トタグよりも深くネストにされる場合に、前記ドキュメ
ントタグの前記拡張ハッシュ表現を格納するコードと、
を含み、前記プログラムは更に、(cb)VRDを、そ
こで識別されるタグごとに、該タグが対応タグ階層の第
1タグでない場合に、処理するコードを有し、該コード
は、(cba)前記タグの階層位置を決定するコード
と、(cbb)対応するタグ階層における前のタグのハ
ッシュ表現に連結される前記タグの拡張ハッシュ表現を
決定するコードと、(cbc)前記タグの前記拡張ハッ
シュ表現をリストに格納するコードと、を含み、前記プ
ログラムは更に、(cc)前記ドキュメントタグの前記
拡張ハッシュ表現が、前記リスト内にあるか、或は、前
記リストのメンバの妥当なサブセットであるかのいずれ
かであることを立証し、それにより前記マークアップ言
語文書の妥当性を検査するコードを含むことを特徴とす
る検査装置が提供される。
【0032】本発明の他の態様では、構文要素を含むV
RDに照らして構文要素を含むマークアップ言語文書の
妥当性を検査する検査装置であって、(a)プロセッサ
と、(b)(i)前記文書と、(ii)前記VRDと、
(iii)文書の妥当性を検査する手順を前記プロセッ
サに実行させるプログラムと、を格納するためのメモリ
を有し、(c)前記プログラムは、(ca)前記VRD
を、そのなかで識別された構造要素ごとに、処理するコ
ードを含み、該コードは、(caa)前記構造要素の構
文属性を決定するコードと、(cab)前記構造要素の
ハッシュ表現を決定するコードと、(cac)前記VR
Dの構造表現における、前記構造要素の前記ハッシュ表
現及び構文属性を格納するコードと、を含み、前記プロ
グラムは更に、(cb)マークアップ言語文書を、その
なかで識別されたドキュメント構造要素ごとに、処理す
るコードを含み、該コードは、(cba)前記文書構造
要素の構文属性を決定するコードと、(cbb)前記文
書構造要素のハッシュ表現を決定するコードと、(cb
c)前記文書の構造表現における、前記文書構造要素の
前記ハッシュ表現と構文属性を格納するコードと、を含
み、前記プログラムは更に、(cc)前記文書の前記構
造表現における前記各文書構造要素の構文属性及びハッ
シュ表現を、前記VRDの前記構造表現における対応構
文属性及びハッシュ表現と比較し、それにより前記マー
クアップ言語文書の妥当性を検査するコードを含むこと
を特徴とする検査装置が提供される。
【0033】本発明の他の態様では、VRDに照らして
マークアップ言語文書の妥当性検査を行う検査方法であ
って、前記VRDにおける第1タイプの最も深くネスト
された構文要素についての第1拡張ハッシュ表現を決定
するステップと、VRDリストに前記第1拡張ハッシュ
表現を格納するステップと、マークアップ言語文書にお
ける第1タイプの最も深くネストされた構文要素につい
て、第2拡張ハッシュ表現を決定するステップと、前記
第2拡張ハッシュ表現が前記VRDリストに存在する場
合に、前記マークアップ言語文書は妥当でないことを宣
言するステップと、を含むことを特徴とする検査方法が
提供される。
【0034】本発明の他の態様では、VRDに照らして
マークアップ言語文書の妥当性を検査する検査装置であ
って、前記VRDの第1タイプの最も深くネストされた
構文要素について第1拡張ハッシュ表現を決定する手段
と、VRDリストの前記第1拡張ハッシュ表現を格納す
る手段と、前記マークアップ言語文書における第1タイ
プの最も深くネストされた構文要素について、第2拡張
ハッシュ表現を決定する手段と、前記第2拡張ハッシュ
表現が前記VRDリストに存在する場合に、前記マーク
アップ言語文書は妥当でないと宣言する手段と、を有す
ることを特徴とする検査装置が提供される。
【0035】本発明の他の態様では、VRDに照らして
マークアップ言語文書の妥当性を検査する手続をコンピ
ュータに実行させるコンピュータプログラムであって、
前記VRDの第1タイプの最も深くネストされた構文要
素について第1拡張ハッシュ表現を決定するコードと、
VRDリストの前記第1拡張ハッシュ表現を格納するコ
ードと、前記マークアップ言語文書における第1タイプ
の最も深くネストされた構文要素について、第2拡張ハ
ッシュ表現を決定するコードと、前記第2拡張ハッシュ
表現が前記VRDリストに存在する場合に、前記マーク
アップ言語文書は妥当でないと宣言するコードと、を含
むことを特徴とするコンピュータプログラムが提供され
る。
【0036】本発明の他の態様では、VRDに照らして
マークアップ言語文書の妥当性を検査する手続をコンピ
ュータに実行させるコンピュータプログラムを格納した
コンピュータに含まれるコンピュータプログラム製品で
あって、該プログラムは、前記VRDの第1タイプの最
も深くネストされた構文要素について第1拡張ハッシュ
表現を決定するコードと、VRDリストに前記第1拡張
ハッシュ表現を格納するコードと、前記マークアップ言
語文書における前記第1タイプの最も深くネストされた
構文要素について第2拡張ハッシュ表現を決定するコー
ドと、前記第2拡張ハッシュ表現が前記VRDリストに
存在する場合に、前記マークアップ言語文書が妥当でな
いと宣言するコードと、を含むことを特徴とするコンピ
ュータプログラム製品が提供される。
【0037】
【ベストモードを含む詳細な説明】以下、添付の図面を
参照して説明するが、ここでは、同じ符号を付したステ
ップ及び/又は特徴は、逆の意図が表されない限り、同
じ機能或は動作を有するものとする。
【0038】本明細書に記載の発明の概念は、XMLタ
グについて、及び、可能ならばXMLファイル中の他の
要素について、”完全な”ハッシュを実行することによ
って、XMLパーサのメモリ必要量を減少させ、様々な
性能値を向上させることができる、という考えに基づい
ている。ハッシュ関数とは、数学的であってもなくても
よいが、入力文字列を取得し、ハッシュ値と呼ばれる出
力コード番号に変換する関数である。完全なハッシュ関
数は、予めセットされた領域内のユニークな入力文字列
に対して、ユニークなコード番号を作る関数である。入
力文字列は、例えば、W3Cで許可された英数字や他の
文字で構成され、ハッシュ処理の仕様に記されている特
定の長さよりも短くなければならない。それに代えて、
又は、それに加えて、入力文字列は、例えば、入力内容
に基づいたコード番号の衝突が起こる可能性があるとい
う点から、別の方法で制約を加えることができる。この
アイディアによって、任意のXMLタグを、数やコード
として扱うことができる。そして、メモリ内に数字の形
で格納することができる。パーサは、通常、構造が解析
されるときに、メモリ内のXML構造の一部分を保存す
るので、XMLタグをユニークな数字に変換することに
よってメモリ必要量を減少させることができ、更に、文
字列と文字列の比較を、同様の、しかしより高速の数値
の比較に置き換えることができる。
【0039】ここで記載する装置の原理は、非常に様々
なマークアップ言語を用いた文書の解析にも、普通に応
用することができる。説明を簡潔にするため、ここで開
示される装置は、XML言語を参照して、説明すること
とする。しかし、これは発明の技術的範囲を制限しよう
とするものではない。例えば、ここに記載された機構は
また、UTF-16転送フォーマットに応用することができる
(UTF-16の詳細は、国際規格ISO/IEC 10646-1を参照の
こと)。
【0040】図2A及び図2Bは、従来技術のSAXパ
ーサ処理236を示したものである。これは、随意、整
形性、及び/又は、妥当性をチェックするサブ処理をサ
ポートする。
【0041】図2Aにおいて、マークアップ文書(本実
施形態においては、XMLドキュメント)は、初期ステ
ップ200で開かれる。その後、決定ステップ202
は、文書が未処理の(すなわち解析されていない)文字
を含んでいるかどうかをテストし、決定ステップ202
の条件に合ったなら、以下のステップ204で文字を読
み込み、文字列に格納する。しかし、テストステップ2
02において、更に文字が検出されなければ、解析処理
236はステップ234で終了する。
【0042】ステップ204に続いて、テストステップ
206において、チェックが行われ、完全な構文要素が
組み立てられているかどうかを判断する。もし完全な構
文要素が組み立てられているのであれば、パーサ処理2
36は”構文タイプ”識別ステップ210へ進む。反対
に、完全な構文要素が組み立てられていなければ、パー
サ処理236は文書中に使用できる文字が更に存在する
かを判断する判断ブロック208へ向かう。さらに文字
の使用が可能であれば、パーサ処理236は”はい”矢
印に応じてステップ204へ戻る。一方、これ以上文字
が使用できない場合は、処理236は”いいえ”矢印に
応じて、構文要素タイプ識別ステップ210へ向かう。
【0043】"タイプ識別"ステップ210は、組み立て
られた構文要素に対して"タイプ"を識別し、その後、ス
テップ212で、要素文字列が文書構造のメモリ表現の
中に置かれ、それによりこの時点で組み立てられていた
ように表現を増やす。その文章構造のメモリ表現は、一
般的に、イベント駆動型パーサの場合、文書の部分構造
表現であり、単純なリストとなり得る。
【0044】ステップ212の後、処理236は整形性
チェックを実行すべきかどうかを判断するテストステッ
プ242へ向かう。整形性チェックは、文章が、インタ
ーネット上の http://www.w3.org/tr/2000/rec-XML-200
01006.html で入手できる『拡張可能なマークアップ言
語(XML)1.0(第2版)W3C勧告、2000年10月6
日』の5ページに定義されているような、適切な"整形
式制約"を満たすことをチェックする。整形性チェック
は、文章が一般的な構造ルールに準拠しているかどうか
をテストする、特に、文書中のタグが適切にネストにな
っているかどうかをテストする。そのようなチェックが
実行されると、処理236は”YES”矢印に応じて、
点線で示された境界線246上の”a”に向かう。参照
文字”a”から”d”に沿った点線246は、図2Bの
対応する境界線に映されており、そこで処理236がさ
らに示されている。整形性チェックが実行されなかった
場合、処理236は”いいえ”矢印に応じて、テストス
テップ242から”妥当性チェック”を実行すべきかど
うかを判断するテストステップ244へ向かう。妥当性
チェックは、前記W3C勧告5.1節に示される文書型
定義(DTD)のような、妥当性参照文書(簡単のため
VRDと称す)に定義される妥当性の制約に照らして、
文書中の構文要素の比較を伴う。DTDとXMLスキー
マは妥当性チェックが実行されるVRDの例であるが、
ここで述べれらている妥当性チェックは他のタイプのV
RDに対して実行される。この比較処理は、単なる整形
性チェックに比し、より広範囲に渡って、要素の正しい
構文配置を検証する。
【0045】妥当性チェックが実行されると、処理23
6は”YES”矢印に応じて、点線で示された境界線2
46上の”b”に向かう。他方、妥当性チェックが実行
されなかった場合、処理236は”NO”矢印に応じ
て、点線で示された境界線246上の”c”に向かう。
整形性チェックが選択された場合、処理236は境界線
246上の”a”からオプションサブ処理238、特に
その中の整形性チェックステップ214へ向かう。処理
238のオプションとしての性質は、点線で囲まれた長
方形で示される。
【0046】妥当性チェックが選択された場合、処理2
36は境界線246上の”b”からオプションサブ処理
240、特にその中に見られる妥当性チェックステップ
220へ向かう。処理240の選択的な性質は点線で囲
まれた長方形で示される。妥当性チェックが選択されな
い場合、処理236は境界線246上の”c”からアク
ション選択ステップ226へ向かう。整形性チェックが
選択されて、整形性ステップ214の後、次の誤りチェ
ックステップ216で誤りが検出された場合、矢印21
8で示されるように修正動作及び/または誤り指示が行
われる。他方、誤りが検出されなければ、パーサ処理2
36はステップ216からサブ処理240へ向かい、そ
こでは妥当性チェックがステップ220で実行される。
前述のように、解析処理236は、誤りチェックステッ
プ216から、もしくは整形性チェックサブ処理238
をバイパスして、妥当性チェックステップ220に向か
い、処理236は境界線246上の“b”から妥当性チ
ェックステップ220に直接向かう。オプションの整形
性サブ処理238は、適切な判断がテストステップ24
2,244で下された場合にバイパスすることができる
(図2A参照)。
【0047】前述のように、妥当性チェックステップ2
20は、文書型定義(DTD)に対して考慮されるマー
クアップ文書中の識別された構文要素の比較を含む。こ
の比較処理は、サブ処理238に示されている単なる整
形性チェックよりも広範囲に渡って、要素の正しい構文
配置を検証する。
【0048】妥当性チェックステップ220に続いて、
誤りチェックステップ222で誤りが検出されると、修
正動作が実行され、矢印224で示されるようにはい/
いいえ誤り指示が実行される。一方、誤りが検出されな
い場合は、パーサ処理236はアクション選択処理22
6へ進み、そこでは考慮されている構文要素のタイプに
基づいてアクションが選択される。図2Aのステップ2
42及び244の決定において適切な判断が下される
と、選択的サブ処理238及び240の両方をバイパス
することができる。両方の上記サブ処理がバイパスされ
ると、前述のようにパース処理236は境界線246上
の“c”から直接アクション選択ステップ226へ向か
う。
【0049】構文要素がタグであった場合、矢印228
で示されるように、タグ値や対応する文字列は、解析処
理が実行されているアプリケーションに送られ、タグの
メモリ表現が保存される。他方、要素タイプがタグのタ
イプでない場合、矢印230で示されるように、要素値
文字列は関連アプリケーションに送られ、要素のメモリ
表現は削除される。最終的に、パース処理236は、矢
印232で示されるように、図2Bの点線で示された境
界線上の“d”へ向かい、図2Aの対応する点線で示さ
れた境界線246上の“d”から文字テストステップ2
02へ向かう。
【0050】XML文書の冗長性により、多くのメモリ
必要量が生じ、それに対応して、元の文字列形式中の文
書構造を格納するために大量のメモリ必要量を要するこ
とになる。この文書構造はステップ212において参照
される。さらに、可変長の英数字文字列間での文字列比
較のパフォーマンスに関し、かなりの処理負荷が整形性
チェックステップ214及び妥当性チェックステップ2
20の両方で生じる。
【0051】次に示す2つのステップの両方に関連し
て、一般的に、文書の部分メモリ表現は格納されなけれ
ばならず、文字列のチェックは実行されなければならな
い。つまり、(i)階層分岐が閉じているかどうかのチ
ェック、すなわち終了タグと開始タグのマッチング、ま
た、分岐の重複がないかどうかのチェックについてのス
テップ214と、(ii)DTDに対する構造の一致性
やタグ名のチェックに加えて、(i)と同様の処理が必
要となるステップ220と、である。パーサは、通常、
XML構造が解析される場合、メモリ中にXML構造の
一部分を保存しなければならない。SAXパーサの場合
でも、正しく動作するために、XML構造の局所的な部
分がメモリ中に格納されなければならない。しかし、各
XMLタグがハッシュ関数を用いてユニークな数字に変
換される場合、ハッシュ演算で生じる数字は、関連する
任意の長さのXMLタグ文字列よりも小さいので、メモ
リ必要量は一般的に減少する。さらに、開始&終了タグ
のマッチングに必要な文字列間の比較は、より高速な数
値の比較で置き換えることができるため、処理負荷が減
少する。
【0052】代表的ハッシュアルゴリズムは、(i)巡
回冗長符号化アルゴリズム(CRC)(通例、データ転
送や格納において、署名分析又は誤り検出/訂正に用い
られる)と、(ii)完全ロスレス符号化アルゴリズム
と、(iii)ホフマン符号化アルゴリズムと、を含
む。
【0053】一般的に、適切なハッシュアルゴリズム
は、静的な演算でなければならない。言い換えれば、要
求されたデータセットに対し、同一の入力条件において
は常に同じハッシュ結果を出力しなければならない。し
かし、要求されたデータセットはその環境によって変化
しうる。そして、そのようなデータセットは、通常、少
なくとも一つの全マークアップ文書を含むことができ、
また、関連DTD或いはXMLスキーマや、リンクされ
たマークアップ文書や、XML文書で参照されたCSS
文書のような、異なった言語における関連の又はリンク
されたマークアップ文書を含むこともできる。一方、タ
グ構文に遭遇した場合には、例えば、XML 文書に非
リテラル‘<’文字を見つけた場合には、常に、そのア
ルゴリズムをリセットすることによって、必要に応じて
静的ハッシュアルゴリズムを使用することができる。ま
た、XML DTD文書に<!ELEMENT文字列を見つけた場
合に、又は、CSS文書中であって有効なタグセレクタ
が許される全ての場合に、ハッシュアルゴリズムをリセ
ットすることができる。
【0054】入力されたマークアップ文書中のリファレ
ンスは、適切なハッシュアルゴリズムに信号を送るか又
はそれを選択するために用いられる。これは他のマーク
アップ文書や、DTDや、スタイルシートや、文字エン
コーディングや、名前空間などを参照できるのとちょう
ど同じように実行されうる。例えば、特定のハッシュア
ルゴリズムは特定の名前空間と同じものとして扱うこと
ができる。これにより、文書中の名前空間のリファレン
スを介したハッシュアルゴリズムへの間接的なリファレ
ンスが可能となる。ハッシュアルゴリズムの実行は、関
連するパラメータ化と共に、全体的に又は部分的にマー
クアップ言語に含まれる。このような、ハッシュアルゴ
リズムを参照したり含めたりする方法は、最適化に有効
である。つまり、特定のマークアップ文書に関して様々
なハッシュ方法が最適化される場合である。それによ
り、宛先装置やシステム中の性能とメモリ使用量が改善
される。一方、前述の参照方法がマッチングに有用な場
合がある。それは1つ以上のマークアップ文書を伴うア
プリケーションであり、そのアプリケーションで、誤り
のチェック又は解析又は他の機能の完了が必要で、1つ
以上の他の文書(例えば、DTD)が既に同じアルゴリ
ズムでハッシュ化されている場合である。
【0055】上記アプローチでは、更なる改善が可能で
あり、例えば、DTDハッシュを任意的に含むことが挙
げられる。これは、(より低速な)文字列の比較に代え
て、数値の比較を可能とすることにより、DTDを格納
するための読み出し専用メモリ(ROM)の必要量を減
少させ、XML文書の妥当性処理を高速化することがで
きる。
【0056】図3A、3B及び3Cは、改良されたSA
Xパーサ処理344のアレンジの1つを示したものであ
る。図3Aにおいて、ステップ300からステップ31
0は、図2Aに関して説明してきたステップ200から
ステップ210に対応するものである。ステップ310
の後、テストステップ312において、組み立てられた
構文要素の性質がタグであるか、別の要素タイプである
か確かめるためにテストされる。要素がタグの場合は、
パース処理344は矢印316に従って、ハッシュステ
ップ318へ向かう。ハッシュステップ318は、それ
ぞれ図5及び6のプロセッサ414及び505を用い
て、構文要素の単一数値表現を決定する。これによっ
て、要素の表現を効率良くメモリ上に実現され、また、
英数字領域よりも、単純で高速な数値での比較演算がで
きる。構文要素を示す要素文字列とそのハッシュ値の両
方が、処理344の時点で保持されるが、ステップ31
8で、各々のメモリ418及び506(図5及び6を参
照)を用いて文書構造のメモリ表現へ挿入されるのは、
文字列の値ではなくハッシュ値である。ここまではこれ
のほうがよい。
【0057】図3A、図3B及び図3Cで示されるよう
なパース処理344を、より正確に理解するため、ま
ず、図2で示したパース処理236との関係で、XML
部の例[1]を解析する場合について説明する。この場
合、サブ処理212において、XML部[1]から、以
下のような解析されたマークアップタグの階層表現が生
成される。
【0058】 205 Shakespeare 215 div 220 mult 221 /mult 225 banquo 235 quote 240 quote [2] 245 /banquo 250 Hamlet 251 quote 252 /quote 253 /Hamlet 255 /Shakespeare
【0059】逆に、図3Aに示されるような、パース処
理344において、タグ要素と非タグ要素とに対して異
なる処理が行われた結果、ステップ318で同等な階層
表現が生成される。その同等階層表現は[3]に示され
る。[3]の階層表現は、解析されハッシュにされたマ
ークアップタグから成る。これを例示するために、タグ
名の領域は、以下の表1に示されるように制約され、ハ
ッシュマッピング(機能的にはハッシュ“関数”の適用
と同等である)は次の表で示される。
【0060】
【表1】
【0061】上記ハッシュマッピングに基づき、[1]
で示されたXML文書は、以下のような階層表現とな
る。
【0062】 205 133 215 326 222 371 223 /371 225 787 235 629 240 /629 [3] 245 /787 254 411 255 629 256 /629 257 /411 255 /133
【0063】図3Aに戻ると、パース処理344は、ス
テップ314から点線で示された境界線356上の
“a”へ向かう。参照文字“a”及び“b”に沿った点
線356は、図3Bの対応する境界線に映されており、
それに関連して処理344が更に示されている。
【0064】図3Bに移り、処理344は、点線で示さ
れた境界線356上の“a”から、整形性チェックが実
行されるかどうかを判断するテストステップ350へ続
く。そのチェックが実行されると、処理344は「YE
S」矢印に応じて、境界線358上の“c”へ向かう。
参照文字“c”及び“f”に沿って点線で示された境界
線358は、図3Cの対応する境界線に映されており、
それに関連して処理344が更に示されている。整形性
チェックが実行されなかった場合、処理344は、「N
O」矢印に応じて、妥当性チェックが実行されるかどう
かを判断するテストステップ352へ向かう。妥当性チ
ェックが実行されると、処理344は「YES」矢印に
応じて、境界線58上の“e”へ向かう。一方、妥当性
チェックが実行されなかった場合は、処理344は境界
線358上の“d”へ向かう。
【0065】図3Cに向かうと、整形性チェックが実行
された場合、処理344は、点線で示された境界線35
8上の“c”から、整形性チェックステップ320へ向
かう。一方、整形性チェックが選択されなかった場合、
処理344は、点線で示された境界線358上の“e”
から、妥当性チェックステップ326へ進む。整形性チ
ェックと妥当性チェックのどちらも選択されなかった場
合、処理344は、点線で示された境界線358上の
“d”から、アクション選択ステップ334へ進む。
【0066】整形性チェックステップ320は、対応す
るプロセッサ414及び505を用いて、整形性チェッ
クを実行し、選択的処理346の一部分を形成してい
る。処理346の選択的性質は点線を用いて示される。
同様に、妥当性ステップ326はサブ処理348の一部
分を形成し、その選択的性質は点線で示されている。
【0067】[3]に表される階層表現により、文字列
の比較がより高速でより効率的な数値の比較に置き換え
られることは明らかである。それに従って関連する計算
の負荷が軽減される。さらに、[3]で示される階層表
現は、[1]で示される階層表現よりもメモリ効率に優
れており、それに対応して[3]で示される表現は、前
述したようなメモリ制約のあるアプリケーションにより
適している。
【0068】図3Cに戻り、整形性チェックが選択さ
れ、ステップ320で整形性チェックが実行された後、
パース処理344は誤りチェックステップ322へ向か
う。ここでは、誤りが検出されると、矢印324で示さ
れるように、修正動作が実行され、及び/又は、誤りが
指示される。整形性チェックは、文書中のタグが適切に
ネストになっているかどうかを一般的に考慮する。従っ
て、例えば、[2]を参照すると、“Hamlet”と“/Ham
let”のタグペアは“Shakespeare”と“/Shakespeare”
のタグペア内に適切にネストになっている。なぜなら、
“Hamlet”タグペアは、完全に“Shakespeare”タグペ
ア内にネストになっており、そのタグペア同士は、例え
ば、互いに重なり合っていないからである。
【0069】一方、誤りが検出されなかった場合、パー
ス処理344はオプションの処理348へ向かう。ここ
において、DTD及びXMLスキーマに関して、対応す
るプロセッサ414及び505を用いた、妥当性チェッ
クステップ326が実行される。前述のように、妥当性
チェックは整形性チェックよりも詳細にチェックを行う
ものである。従って、例えば、整形性チェックは、“Ha
mlet”のタグのペアが“Shakespeare”のタグペアの間
に正しくネストになっているとみなすのに対し、妥当性
チェックは、これとは異なり、“Hamlet”のタグペアが
“Shakespeare”のタグペアの間に完全にネストになっ
ているという正しいネストのチェックだけでなく、“Ha
mlet”のタグペアがこの方法で、正当なネストになって
いるかどうかのチェックも行う。例えば、実際、“Shak
espeare”のタグペアが“Hamlet”のタグのペアの間に
ネストにならなければならず、この逆のネストではだめ
な場合もある。従って、妥当性チェック処理は、この場
合、ネストが適切であるかどうか、すなわち完全に実行
されるかどうかに加え、“Hamlet”タグペアが“Shakes
peare”のタグペアの間にネストになり得るかどうか、
というタグの階層表現もチェックする。
【0070】妥当性ステップ326を実行するため、D
TD/XMLスキーマのメモリ表現を、ハッシュステッ
プ318で生成されたマークアップ文書のハッシュの性
質に一致するように、DTD又はXMLスキーマタグ
は、ハッシュステップ328で最初にハッシュにしてお
く。妥当性チェックステップ326は、ステップ318
で生成された文書の構造表現と、ステップ328で生成
されたDTD/XMLスキーマの構造表現とを比較す
る。そして、マークアップ文書の構文要素の正しい構文
配置を検証する。なお、図2のステップ220で用いら
れるように、この比較で必要な文字列の比較は、ステッ
プ328及び318のハッシュ演算の結果、ここで、図
3Cにおいて、より高速でより効率的な数値の比較に置
き換えられる。
【0071】妥当性チェックの後、処理344は誤りチ
ェックステップ330へ向かう。ここでは、矢印332
で示されるように、修正動作及び/または誤り指示が実
行される。誤りがなかった場合、パース処理344は、
アクションステップ334へ進む。ここにおいて、構文
要素のタイプがタグの場合、パース処理が実行されてい
るアプリケーションに、対応するタグの文字列が送ら
れ、タグの文字列自体は、図5及び6にある418又は
512のメモリから消去される。しかし、関連するハッ
シュで表されたタグのメモリ表現は保持される。従っ
て、現在解析されているタグの文字列のコピーを除け
ば、タグの文字型のメモリ表現は保持されない。タグの
メモリ表現は、これによりハッシュの形式だけとなる。
要素の構文タイプが非タグタイプの場合、又は非タグ名
タイプの場合、矢印338で示されるように、要素の値
又は文字列の表現は、関連のアプリケーションへ送ら
れ、関連のメモリ表現は消去される。パース処理344
は今、矢印340で示されるように、点線で示された境
界線358上の“f”へと折り返し、その後図3Bの点
線で示された境界線358上の対応する“f”へ向か
い、その後点線で示された境界線358上の“b”へ向
かい、その後図3Aの点線で示された境界線356上の
対応する“b”へ向かい、最後に文字テストステップ3
02へと向かう。これ以上文字が検出されなければ、パ
ース処理344はステップ342で終了する。
【0072】XML文書部[1]は、ハッシュ形式のタ
グを持つようになり、以下のような形式で示される。
【0073】 505 <133> 110 <!--This is a comment--> 515 <326 class="preface"Name1="value1"name2="value2"> 520 <371 list=&lt;> </371> 525 <787> 130 Say [4] 535 <629> 540 goodnight</629>, 545 Hamlet. </787> 550 <411><629>Goodnight,Hamlet.</629></411> 555 </133>
【0074】終了タグの表現は(一般的には、開始タグ
に<section>という書式を用いるのに対し、</section>
という書式を用いる)、様々な方法で定義することがで
き、それによってXML標準仕様との互換性が高くなっ
たり、低くなったりする。開始タグと終了タグは、現在
の記述において、“同等のタイプ”だとみなされる点に
注意しなければならない。さらに、開始タグと終了タグ
は一まとめにして機能する、すなわち文書内容の部分を
区切ることは、2つのタグに関連性があることを意味す
る。さらに、開始タグと終了タグの前記書式は、終了タ
グが開始タグを修飾していることを意味し、識別文字、
すなわち“/”といったものは、対応する終了タグを作
り出すために開始タグに組み込まれている点に注意しな
ければならない。XML標準仕様との互換性は、場合に
よっては重要となることがある。好適な実施形態におい
て、現在のタグ文字列の‘/'文字は、開始タグと終了タ
グの名前がハッシュ関数から同じ数値が返されるため
に、次のタグの名前をハッシュにする前に、一般的には
取り除かれる。XMLタグの例は、インターネット上の
http://www.w3.org/tr/2000/rec-XML-20001006.html
で入手できる『拡張可能なマークアップ言語(XML)
1.0(第2版)W3C勧告、2000年10月6日』の3.1節に
見られるように、</Name Attribute>によって示され
る。現在の記述では、“タグ”は、文脈によって、考慮
している特定のタグの一部分又は全体のいずれかを参照
する。一方、メモリ中では‘/’文字(終了タグを識別
する)に相当する表現を保持することが必要となる場合
もありうる。これは、以下のさまざまな方法で行われ
る。例えば、(i)終了タグであることを示すために、
終了タグのハッシュ数字の近傍で、‘/’文字又はそれ
に相当する文字をメモリに「再挿入」すること、又は
(ii)ハッシュタグの始まりか終わりの状態を示すブ
ール値を用いること、又は、(iii)完全にマッチン
グした場合、開始タグと終了タグの単純な和がゼロとな
るように、終了タグのハッシュ値を負にすること、等が
挙げられる。(iii)の場合、開始タグのハッシュ
は、本実施形態において、必要な終了タグのハッシュを
作り出すために、単純な否定演算子によって変更され
る。(iii)は、符号ビットがハッシュアルゴリズム
に影響を受けないという保証が必要である。事実上、
(iii)はブールフラグオプション(ii)とほとん
ど同じである。
【0075】さらに、構造化されたハッシュ番号が作ら
れ、そこではネストになったタグ用のハッシュ番号は、
第1のタグがネストになっているところではより高レベ
ルのXMLタグであることを明示できる。従って、例え
ば、タグ123がタグ987の内部にネストになっているとこ
ろでは、ネストになったタグ123のように示す代わり
に、987.123のように示すことができる。この構造化さ
れたハッシュ又は“拡張された”ハッシュにより、また
がった構造の演算が減少する。すなわち、タグのペアの
終了点を検索している間にメモリに保持しなければなら
ないXML文書の量を減らすことによって解析の性能を
さらに向上することができる。
【0076】拡張された表現は、ハッシュに基づく必要
はなく、文字列や“数え上げ法”に基づくことができる
という点にも注意しなければならない。数え上げ法は、
タグの名前と数字の間で配置が定義され、目録表や索引
が作られる処理である。数え上げ法の簡単な形式は、全
てのタグの名前を単にリストにし、列記されたタグに番
号を付けたものである。従って、例えば、"Shakespear
e.banquo.quote"の形式の連結文字列は、3つの連結タ
グの文字型拡張表現を表す。
【0077】XML部[3]に対する構造化された同等
のハッシュにされたマークアップの例は、負の終了タグ
のハッシュを用いた、以下の[5]で示される。
【0078】 133 133.326 133.371 133.-371 133.787 133.787.629 ->013307870629 133.787.-629 ->-013307870629 133.787 [5] 133.411 133.411.629 133.411.-629 133.-411 -133
【0079】[5]において、ネストになったタグの構
造は、[3]で示される形式から、一連の連結ハッシュ
タグに変換される。ここでは、各々の後続の低レベルの
(すなわち、より深くネストされた)ハッシュタグの階
層レベルは、前の上段の階層レベルに関連付けられる。
これはハッシュで表されたDTDから、同様に解析され
た構造を用いて、簡単な数の比較を実行することができ
る。実際、[5]の各々の行は、[5]の行4及び行5
で示されるように、出くわした一連のハッシュタグを連
結して組み合わさった1つの数字で表される。この1つ
の数字は、元の入力タグの識別と関係を非常に圧縮され
た形で表し、それによって同様にハッシュで表されたD
TDと非常に効率のよい比較ができる。数字のタグセッ
トは、文書構造を表すために、非常に圧縮された形で用
いることができることがわかる。妥当性チェックは、単
にハッシュで表された開始タグのセットを用いるだけで
実行でき、各々のこのセットは、文書構造の各々の枝の
最も深い、全体の、構造を表す点に注意が必要である。
例えば、[5]の構造を最小限に表したものは、以下の
[6]のように示される。
【0080】 01330326 01330371 [6] 013307870629 013304110629
【0081】また、DTD又はXMLスキーマ構造も同
じ方法によって表すことができる。
【0066】解析とハッシュが行われた入力文書からの
タグセットと、解析とハッシュが行われたDTDの間の
1つ又は複数の数値の比較は、XMLパーサの妥当性に
通常必要とされる一連の文字列及び構造の比較を置き換
える。DTD又はXMLスキーマによって定義されたど
んな代替構造も、入力XML文書から生じたハッシュタ
グセット数字と後で比較するために用いる単一ハッシュ
タグセット数字にコード化できることがわかる。
【0082】図4は、例えば、DTD又はXMLスキー
マのようなVRDに対して、マークアップ文書を検証す
るための処理600を示したものである。処理600
は、検証されるマークアップ文書が開かれるステップ6
02から始まる。その後、ステップ604で、現在の拡
張タグは、図5又は図6の各々のプロセッサ414又は
505によってリセットされる。図4の説明において、
“タグ”、“拡張タグ”、“テンポラリータグ”等は、
各々のタグのハッシュ表現を指す。以下のステップ60
6では、テンポラリータグのルートは、各々のプロセッ
サ414又は505の1つによってリセットされ、その
後、マークアップ文書中の次のタグが、ステップ608
で識別される。その後、テストステップ610は、ステ
ップ608で識別されたタグが開始タグであるかどうか
判断する。テストステップ610のイベントでは、処理
600は「YES」矢印に応じてステップ612へ向か
う。ステップ612では、ステップ608で識別された
タグを、各々のプロセッサ414又は505のうち1つ
を用いた拡張タグに加える。次に、処理600はステッ
プ612からステップ608へ戻る。
【0083】テストステップ610が、次のタグは開始
タグではないと判断した場合、処理600は「NO」矢
印に応じて、拡張タグが“0”かどうかを判断し文書の
ルートレベルを表すテストステップ614へ向かう。
“0”の値が検出された場合、処理600は「YES」
矢印に応じて、文書の終わりに到達したかどうかを判断
するテストステップ624へ向かう。もしそうでない場
合には、処理600は「NO」矢印に応じてステップ6
06へ向かう。なお、ステップ614で“0"の値が検
出されるのは、開始タグと終了タグの数が合わない構造
等のように、整形性のない文書構造だからかもしれな
い。
【0084】テストステップ614が、拡張タグの値が
“0”でないことを判断した場合、処理は「NO」矢印
に応じて、拡張タグがテンポラリータグのルート値と等
しいかどうかを判断するテストステップ616へ向か
う。そうでない場合には、処理600は「NO」矢印に
応じて、各々のメモリ418及び506中に文書リスト
中の拡張タグを格納するステップ618へ進む。一方、
テストステップ616が、拡張タグがテンポラリータグ
のルートに等しいことを判断した場合、処理600は各
々のプロセッサ414と505を用いて、「YES」矢
印に応じて拡張タグから最も低い(すなわち最も深いネ
ストである)タグを取り除くステップ620へ向かう。
その後、処理600は、ステップ622で拡張タグをテ
ンポラリータグのルートにコピーし、処理はステップ6
08へ戻る。
【0085】テストステップ624に戻る前に、これま
で記述されていたように、処理600は正当性がチェッ
クされるマークアップ文書へ向かう点に注意しなければ
ならない。しかし、明確には記述されていないが、妥当
性参照文書(VRD)に適用される同一の処理も存在
し、この処理によって処理600により作り出される文
書リストをテストできるVRDリストが作り出される。
処理600及びVRDに向かうそれに相当する処理は、
異なる時間に通常発生する。処理600は、検証される
全ての文書に対して発生し、各々の特定の文書を検証す
るために拡張したハッシュ表現のリストを作り出す。V
RDリストがステップ626の前に完成される場合、V
RDリストは処理600と実質的には同時に作り出すこ
とができる。一方、VRD処理はオフラインで実行する
ことができ、結果のリストはステップ626の前に処理
600に与えられる。
【0086】ステップ626に戻ると、前述のようにV
RDリストが入手できるので、ステップ626は文書リ
スト中の全ての入力がVRDリストに見つかるかどうか
を判断する。もしそうである場合には、処理600は
「YES」矢印に応じて、文書は妥当であると宣言する
ステップ628に向かう。一方、文書リストがVRDリ
ストには見られない入力を持つ場合、処理600は「N
O」矢印に応じて、文書が無効であると宣言するステッ
プ630に向かう。
【0087】ステップ626でさらに詳しく述べられて
いるように、前記記述では、文書リストの全ての入力と
VRDリストの全ての入力を比較する。もう1つの処理
は、ステップ616の後に、ステップ626と同様のス
テップでの完全なVRDリストに対して、各々の拡張タ
グをテストすることである。この処理のイベントでは、
文書拡張タグがVRDリストに見つからなかった場合、
これ以上不要なテストを行わずに、処理600がステッ
プ630に直接進むことができる。しかし、拡張タグが
見つかった場合、処理600はステップ620等に向か
うことができる。この処理によって誤りを早く認識し、
ただちに妥当性処理を終了することができる。VRDリ
ストが短ければさらに効率がアップする。完全な妥当性
チェックが、前記方法で実行される場合、ステップ62
8は考慮している文書が妥当であることを示す。
【0088】前述の妥当性の方法をさらに説明するため
に、以下の構造部(ここでは開始タグが“01"から“05"
であり、対応する終了タグはそれぞれ“-01"から“-05"
である)を考える。
【0089】 01 02 03 -03 04 [7] -04 -02 05 -05 -01
【0090】機能面から言えば、処理600はマークア
ップ文書の階層構造の最も深い枝の部分に降りる。すな
わち[7]の第1行にある“01”から[7]の第3行に
ある“03”へ向う。そして、その特定の枝の最も深い部
分を表す拡張ハッシュ表現、すなわち“010203”を格納
する。次に、この処理は、新たに探索すべき枝を示す別
の開始タグ(この例の場合、[7]の5行目にある“0
4”)を見つけるまで、終了タグを捨て、枝を横切る。
処理が新しい枝に降りる場合、その処理は、階層のより
高いレベルにある拡張ハッシュ表現を保存する。これら
のハッシュ表現は、処理がこれらのレベルに戻るまで保
存される。文書構造中の誤り(無効の文書、又は整形性
されていない文書)は、これらのVRDにマッチングし
ない拡張ハッシュ表現を通常返す。ステップ620は、
前の開始タグに対して検索された終了タグの整形性チェ
ックを任意的に含んでもよく、その結果、文書に整形性
があれば整形性マッチを提供する。前出の開始タグは、
拡張ハッシュ表現の中で最低のタグである点に注意すべ
きである。例えば、DTD/XMLスキーマは、ステッ
プ610で、ステップ620の拡張ハッシュ表現にある
最低の開始タグにマッチングしない終了タグを返し、そ
れによって整形性チェックにひっかかることになるかも
しれない。
【0091】ステップ626でのテストは、一般的に、
その文書のDTD用にリストになったハッシュ表現に対
して、マークアップ文書構造の拡張ハッシュ表現をマッ
チングさせようとする。文書構造のハッシュ表現は、一
般的にDTDリストにある最も深い構造表現のサブセッ
トである。従って、妥当なXML文書は、対応するVR
D又はDTD中に定義されている、あらゆる正当な構造
的ネストのサブセットを含んでよい。従って、ステップ
626における一般的なテストでは、DTDのより深い
ハッシュ表現と、文書のより浅いハッシュ構造表現との
比較を含む。従って、例えば、XML文書からの拡張ハ
ッシュ表現“0123"は、対応するDTDからのハッシュ
表現“01230456"と比較した場合、「妥当性がある」と
評価される。
【0092】図4に示される妥当性処理600は、高速
だが不完全な妥当性チェックを用いて、最も深くネスト
になった部分等の、文書構造中のより複雑な部分をチェ
ックするように、最適化されうる。従って、任意の性能
特性を有する特定の妥当なパーサを実行するために、速
度と妥当性の感度の最適な組み合わせを選択できる。
【0093】また、妥当性方法600を変更して「標準
的な」整形性チェックの少なくとも一部分を実行するこ
ともできる。従って、例えばステップ620において、
拡張タグ表現の中で、最も低い階層にあるタグ表現のハ
ッシュに対して、終了タグのハッシュ表現をチェックす
ることができる。前記表現が、同じオリジナルのタグで
あると適切に識別されなかった場合、その文書は整形性
がなく、回復や誤り処理が実行される。
【0094】前記方法は、構造チェックとは別にまたは
一緒に、構造内で定義された属性のハッシュ表現を含む
ように拡張できる。
【0095】この妥当性及び整形性チェックの方法を、
別々の処理における入力文書や、文書構造及び内容を解
析する処理に対して、適用できることは明らかである。
従って、例えば、方法600は、中央演算処理装置(C
PU)サイクル及びメモリサイズが特に大きな制約を受
けていない環境においても、妥当性及び整形性チェック
を、効率良く、高速に実行できるようにするために、最
適化することができる。そのようなシステムで別々のチ
ェックを実行する利点として、高度に最適化されたチェ
ックを用いて、「妥当性のない」文書を直ちに廃棄する
ことができるという事実が挙げられる。これは、少なく
とも妥当でない文書の一部分にかける時間と処理を大幅
に節約することができる。それによって、例えば、(i)
文章が妥当でないことを見つけるためだけに、文章を解
析して完全なDOMツリー表現にし、妥当性チェックを
実行すること、又は(ii)妥当でない文書の第2の部分を
検出する前に、文書の第1の(妥当な)部分の処理を更
に開始すること(文書の第1部分の処理がそれによって
無駄になっている)を防ぐことができる。もう1つの利
点は、高速な妥当性チェックを用いて文書に妥当性がな
いとわかった後、次のジョブの処理を直ちに始められる
点である。
【0096】「不完全な」ハッシュ処理、すなわち、各
々の英数字の入力文字列に対して単一の数字を作りだす
保証がないハッシュ処理にも、適した場合があり、特
に、XMLタグ文字列の最大長が制限されている、又は
ある確率で少なくとも制限されている場合に適してい
る。さらに、XMLタグ文字列セットが限られた数の文
字順列に制限されるか、又は限られた数の文字順列に制
限される可能性がある場合、適切に動作するために不完
全なハッシュ処理が設計され、選択される。
【0097】文書構造の数的表現のための通信規格、又
は、代替の公用及び私的フォーマットは、ハッシュアル
ゴリズムの使用に基づいて、定義され、記述される。こ
の技術によって、冗長性のために大量のデータ伝送を通
常伴う、XMLデータの伝送にメリットとなる圧縮形式
及び人間が読み易いASCII形式が可能となる。人間の読
み易さを保持するか、しないかに対して、様々な選択肢
が存在する。例えば、(完全な)ハッシュを、他の圧縮
形式と組合わせることが挙げられる。これは、XMLフ
ァイル中の様々な要素タイプにそれぞれ適用される例え
ば、XML文字列タグを、完全なハッシュアルゴリズム
から得られる、ユニークで、人間が読みやすい数字に、
置き換えることができる。また、ハッシュではない構文
要素及び他の要素は、処理又は装置間で、伝送用の非損
失圧縮技術によって圧縮することができ、それによっ
て、伝送データ量が減少する。
【0098】前段落で述べたように、必要なところに、
逆ハッシュアルゴリズム又は可逆ハッシュアルゴリズム
を参照したり、含んだりすることができる。これは、例
えば、ハッシュされる前の、伝送された、マークアップ
文書から、表示したり、ラベリングしたりする目的で、
1つ以上のマークアップタグを人間が読み易い文字列に
デコード、又は解読するために、そのようなアルゴリズ
ムが必要とされる場合に用いられる。ここでは、別に、
解析や誤りチェックのためにそのようなことを行う必要
はない。可逆ハッシュアルゴリズム、又は逆ハッシュア
ルゴリズムのもう1つ利用法は、マークアップタグ又は
他のデータを解読することによって、伝送されたマーク
アップ文書について制限された機能や特徴が使用できる
ようになることである。可逆アルゴリズム、又は逆アル
ゴリズムは、マークアップ文書の送信部と受信部のマッ
チングに使用することができる。可逆ハッシュアルゴリ
ズム、又は逆ハッシュアルゴリズムは、受信部に既に含
まれているので伝送はされないが、マークアップ文書で
参照される場合もある。可逆ハッシュアルゴリズム、又
は可逆ハッシュアルゴリズムには、(i) 完全非損失アル
ゴリズム、及び(ii)ハフマン符号化、が例として挙げら
れる。
【0099】上記機構は、以下の条件の1つ以上が当て
はまる場合には、あらゆるマークアップ言語に対して、
非常に有利な立場で適用することができる。その条件と
は、すなわち、(i) マークアップ言語はタグ名の定義
(例えば、XML、DTD、CSS、XSL等)を許
す、(ii)タグ名は大きな文字コードテーブル(例えば、
UTF-16)を使用し、及び/又は、タグ名の長さは一般的
にそのハッシュ表現よりも短くない、(iii)マークアッ
プ文書を用いる又は受け取る使用アプリケーションは、
マークアップ文書、XMLスキーマ又はDTDの中に最
低でも1つのネストの階層レベルを持った、複雑な構造
表現を通常必要とする、(iv)入力マークアップ文書は、
何らかチェック形式、通常は整形性又は妥当性チェック
が必要である、(v) マークアップパーサ、及び/又は、
アプリケーションは、メモリ容量(例えば、組み込み式
又は低価格CPUシステム)又はメモリ管理(例えば、
仮想メモリがないシステム、又はダイナミックメモリが
割り当てられていないシステム)に厳しい制限がある、
(vi)複雑で、高度にネストなる可能性があるマークアッ
プ文書上で素早く動作する必要があるマークアップパー
サ及び/又は、アプリケーションである。
【0100】本明細書で示されたマークアップ言語文書
の解析方法は、マークアップ言語文書の解析用関数、又
はサブ関数を実行する、1つ以上の集積回路等の専用ハ
ードウェアで実行できる。そのような専用ハードウェア
は、画像プロセッサ、ディジタル信号プロセッサ、又は
1つ以上のマイクロプロセッサ及び関連メモリを有して
いてもよい。マークアップ言語文書の解析方法は、一
方、専用組込みコンピュータシステム400を用いて、
実行することができる。そのようなシステムは図5で示
される。このシステムにおいて、図3A、図3B、図3
C、及び図4の処理は、組込みコンピュータシステム4
00中で実行されるアプリケーションプログラム等のソ
フトウェアとして実行されてもよい。コンピュータシス
テム400は、典型的には、プリンタ(図には示されて
いない)等のエンドシステムに組み込まれ、プリンタ中
のプリンタエンジン402を動作させる。特に、組込み
コンピュータによって実行されるソフトウェアの命令に
よって、マークアップ言語の解析方法のステップが行わ
れる。そのソフトウェアは、読み出し専用メモリ(RO
M)418、ランダムアクセスムモリ(RAM)41
8、又は他のタイプのメモリ(示されていない)を含ん
だコンピュータ可読媒体に収納されてもよい。そのソフ
トウェアは、製造時に組込みコンピュータにロードされ
るか、或は、その場でソフトウェアのアップグレードが
行われる。
【0101】組込みコンピュータシステム400は、コ
ンピュータモジュール410、パラメタ設定用のスイッ
チモジュール422等の入力装置、ジョブ状態を示す液
晶表示器(LCD)等の出力装置、プリンタエンジン4
02で構成される。組込みコンピュータ400は、通
常、物理的にプリンタ(示されていない)に組み込まれ
る。コンピュータネットワーク404に接続された他の
コンピュータ(示されていない)で起こった印刷ジョブ
は、入出力(I/O)インターフェース408への接続
404によって、組み込みコンピュータ400に送られ
る。
【0102】組込みコンピュータモジュール410は、
プロセッサユニット414及びメモリユニット418、
更に、例えば、半導体ランダムアクセスメモリ(RA
M)、読み込み専用メモリ(ROM)、スイッチモジュ
ールとLCDインターフェース416を含む入出力(I
/O)インターフェース、プリンタエンジン402とネ
ットワーク406用の入出力インターフェース408で
構成される。組込みコンピュータ410の構成要素40
8及び構成要素414〜418は、通常相互接続された
バス412を介して交信しており、これは関連技術で知
られる組込みコンピュータシステム410の従来動作モ
ードのようになる。一般的に、この機構に関するプログ
ラムは、メモリ418に格納され、プログラム動作時に
プロセッサ414がプログラムを読み込んで制御する。
【0103】また、マークアップ言語文書の解析方法
は、図6で示されるような、従来型汎用コンピュータシ
ステム500を用いて実行することができる。このシス
テムにおいて、図3A、図3B、図3C、及び図4の処
理は、コンピュータシステム500中で動作するアプリ
ケーションプログラム等のソフトウェアとして実行され
てもよい。このアプリケーションは、例えば、ハッシュ
が、ネットワークを介したコンピュータ間の通信規格と
して用いられる場合に役立つ。図6は、現在考慮してい
る通信コンピュータの一例を示したものである。
【0104】特に、マークアップ言語文書の解析方法の
ステップは、コンピュータによって実行されるソフトウ
ェアの命令によって行われる。そのソフトウェアは2つ
の分離部品に分けられてもよい。すなわち、1つは解析
方法を実行する部分で、もう1つは後者とユーザの間の
ユーザーインターフェースを管理する部分である。例え
ば、そのソフトウェアは、以下に示す記憶装置を有する
コンピュータ可読媒体に格納されてもよい。そのソフト
ウェアはコンピュータ可読媒体からコンピュータにロー
ドされ、次にコンピュータにより実行される。そのよう
なソフトウェアを有するコンピュータ可読媒体、又は前
記媒体に記録されたコンピュータプログラムは、コンピ
ュータプログラム製品である。このコンピュータプログ
ラム製品のコンピュータでの使用は、本発明の実施形態
に応じて、マークアップ言語文書を解析に有利な装置で
実行されるのが望ましい。
【0105】コンピュータシステム500は、コンピュ
ータモジュール501、キーボード502及びマウス5
03等の入力装置、プリンタ515及びディスプレイ装
置514を含む出力装置で構成される。変調・復調(モ
デム)送受信装置516は、例えば、電話線521又は
他の機能媒体を介して接続可能な通信ネットワーク52
0へ双方向で通信するために、コンピュータモジュール
501で用いられる。モデム516は、インターネット
や他のネットワークシステム、例えば、ローカルエリア
ネットワーク(LAN)又はワイドエリアネットワーク
(WAN)、コンピュータ500と通信している他のパ
ーソナルコンピュータ(PC)522等へアクセスでき
るようにするために用いられる。
【0106】コンピュータモジュール501は、典型的
には、少なくとも1つのプロセッサユニット505、メ
モリユニット506を含み、例えば、半導体ランダムア
クセスメモリ(RAM)、読み込み専用メモリ(RO
M)、ビデオインターフェース507を含んだ入力・出
力(I/O)インターフェース、キーボード502及び
マウス503用の入力・出力インターフェース513、
及びオプションとしてのジョイスティック(図で示され
ていない)、モデム516のためのインターフェース5
08で構成される。
【0107】記憶装置509が設けられており、通常、
ハードディスクドライブ510及びフロッピー(登録商
標)ディスクドライブ511を含む。また、磁気テープ
ドライブ(不図示)を用いてもよい。CD−ROMドラ
イブ512は、非揮発性のデータ源として通常備えられ
る。コンピュータモジュール501の構成要素505〜
513は、相互接続されたバス504を介して通常交信
し、これは関連技術で知られるコンピュータシステム5
00の従来動作モードのようになる。本実施形態におい
て実行できるコンピュータには、IBM PC、IBM PC互換
機、及びSun Sparcstations又はそこから発展した同様
のシステムが例に挙げられる。
【0108】典型的には、本実施形態におけるアプリケ
ーションプログラムは、ハードディスクドライブ510
上に格納され、プログラム動作時にプロセッサ505が
プログラムを読み込んで制御する。ネットワーク520
から取り出されたプログラム及びあらゆるデータの中間
記憶装置は、場合によってはハードディスクドライブ5
10と連動して、半導体メモリ506を用いて実現して
もよい。場合によっては、アプリケーションプログラム
は、CD−ROM又はフロッピーディスクにエンコード
してユーザに供給されてもよく、対応するドライブ51
2又は511を介して読み込まれるか、代わりに、モデ
ム装置516を介してネットワーク520上でPC52
2からユーザによって読まれてもよい。
【0109】さらに、磁気テープ、ROM、集積回路、
磁気光ディスク、ラジオ又はコンピュータモジュール5
01及び別の装置間の赤外線トランスミッションチャン
ネル、PCMCIAカード等のコンピュータ可読カー
ド、電子メールの送信及びウエブサイトやそれと同様の
ものを有するインターネット及びイントラネットを含む
他のコンピュータ可読媒体から、コンピュータシステム
500にソフトウェアをロードすることもできる。上記
は、コンピュータ可読媒体に関連した例に過ぎない。発
明の範疇や技術的思想から外れない限り、他のコンピュ
ータ可読媒体は、実行してもよい。
【0110】(産業上の利用分野)以上から、本発明の
実施形態は、コンピュータ及びデータ処理産業に適用で
きることは明らかである。上記は、本発明の実施形態の
いくつかを示したに過ぎず、発明の範囲や意図から外れ
ない限り、修正及び/又は変更を行うことができる。上
記実施形態は、例に過ぎず、限定的なものではない。
【図面の簡単な説明】
【図1A】本発明の好適な実施形態に係るXMLパーサ
システムのブロック図である。
【図1B】本発明の好適な実施形態に係るXMLパーサ
システムのブロック図である。
【図2A】選択的な整形性チェック及び/又は妥当性チ
ェックを含む、従来技術におけるSAXパーサの方法ス
テップを示すフローチャートである。
【図2B】選択的な整形性チェック及び/又は妥当性チ
ェックを含む、従来技術におけるSAXパーサの方法ス
テップを示すフローチャートである。
【図3A】図2A及び図2BのSAXパーサを改良した
機構を示す図である。
【図3B】図2A及び図2BのSAXパーサを改良した
機構を示す図である。
【図3C】図2A及び図2BのSAXパーサを改良した
機構を示す図である。
【図4】DTD又はXMLスキーマ等の参照文書に対す
る、文書の妥当性の処理について示す図である。
【図5】改良されたSAXパーサの機構を実行できる専
用組込みコンピュータのブロック図である。
【図6】改良されたSAXパーサの機構を実行できる汎
用コンピュータを示す図である。

Claims (58)

    【特許請求の範囲】
  1. 【請求項1】構文要素を含むマークアップ言語文書を解
    析する解析方法であって、前記構文要素の内の一要素に
    対し、 前記一要素のタイプを識別する識別ステップと、 前記タイプが第1タイプであれば、そのハッシュ表現を
    決定することによってその要素を処理する処理ステップ
    と、 前記タイプが前記第1タイプであれば、前記ハッシュ表
    現を用いて、前記文書の少なくとも部分的な構造表現を
    増大させる増大ステップと、 を含むことを特徴とする解析方法。
  2. 【請求項2】イベント駆動型であることを特徴とする請
    求項1に記載の解析方法。
  3. 【請求項3】ハッシュアルゴリズム、 関連ユニバーサルリファレンスインディケータに依存す
    る前記ハッシュアルゴリズムへの第1リファレンス、 関連名前空間に依存する前記ハッシュアルゴリズムへの
    第2リファレンス、 及び、関連エクステンドマークアップ言語宣言に依存す
    る前記ハッシュアルゴリズムへの第3リファレンス、 のいずれかを用いて前記ハッシュ表現を決定することを
    特徴とする請求項1に記載の解析方法。
  4. 【請求項4】前記第1タイプは、 構造要素或はその一部、 前記構造要素の定義、 前記構造要素の宣言、及び前記構造要素のマッチ、 のいずれかであることを特徴とする請求項2に記載の解
    析方法。
  5. 【請求項5】前記構造要素はタグであることを特徴とす
    る請求項4に記載の解析方法。
  6. 【請求項6】前記ハッシュ表現は、前記一つの構文要素
    ごとのユニークなコードであり、前記一構文要素は第1
    文字数以下であることを特徴とする請求項2に記載の解
    析方法。
  7. 【請求項7】前記ハッシュ表現は、前記一つの構文要素
    ごとにユニークなコードではなく、前記一構文要素は、
    (i)前記要素の文字数、及び(ii)前記要素の文字の順
    列の許容数、のうちの少なくとも一つの観点から、ある
    可能性レベルまで制約を受けることを特徴とする請求項
    2に記載の解析方法。
  8. 【請求項8】前記コードは、英数字を含むことを特徴と
    する請求項6に記載の解析方法。
  9. 【請求項9】前記処理ステップは、(i)前記第1タイ
    プの第1インスタンスである前記一構文要素と(ii)
    前記第1タイプの第2インスタンスである他方の構文要
    素と、の両方の拡張ハッシュ表現を決定するサブステッ
    プを含み、 前記第1インスタンス内に、前記第2インスタンスがネ
    ストになっていることを特徴とする請求項2に記載の解
    析方法。
  10. 【請求項10】前記構文要素の内の他要素について、更
    に、 前記他要素のタイプを識別するステップと、 前記他要素のタイプが前記第1タイプと同等である場合
    に、 (i)前記他要素を処理し、それによってその第2ハッ
    シュ表現を決定する第2処理ステップと、 (ii)前記第2ハッシュ表現を用いて、前記文書の少
    なくとも部分的な構造表現を増大させる増大ステップ
    と、を有し、 前記処理ステップ及び前記第2処理ステップは、前記一
    要素と前記他要素の間に第1の関係が存在する場合に、
    第1の関係に対応する第2の関係が、前記一要素のハッ
    シュ表現と、前記他要素のハッシュ表現との間に存在す
    ることを特徴とする請求項1に記載の解析方法。
  11. 【請求項11】前記一要素は、開始タグであり、 前記他要素は、終了タグであり、 前記一要素のハッシュ表現は、対応ハッシュ開始タグで
    あり、 前記他要素の第2ハッシュ表現は、対応ハッシュ終了タ
    グであることを特徴とする請求項10に記載の解析方
    法。
  12. 【請求項12】前記終了タグは、前記開始タグの第1変
    形であり、 前記ハッシュ終了タグは、前記ハッシュ開始タグの第2
    変形であり、 前記第2変形は、前記第1変形に対応することを特徴と
    する請求項11に記載の解析方法。
  13. 【請求項13】前記終了タグは、そこに識別文字が組込
    まれること以外は、前記開始タグと同一であり、 前記ハッシュ終了タグは、 前記ハッシュ開始タグと同一のもの、 そこに識別文字が組込まれること以外は前記ハッシュ開
    始タグと同一のもの、及び オペレータによって処理されたハッシュ開始タグと同一
    のもの、 の内の少なくとの一つであることを特徴とする請求項1
    2に記載の解析方法。
  14. 【請求項14】前記一要素及び前記他要素は、それぞ
    れ、開始タグ及び終了タグを含み、第1タグペアをな
    し、 前記第1タグペアの為の対応ハッシュ開始タグ及び対応
    ハッシュ終了タグは、前記文書の前記部分的構造表現に
    組込まれ、 前記文書は、更に、開始タグと終了タグをそれぞれ含む
    第2タグペアを含み、該第2タグペアは、前記文書の前
    記第1タグペア内にネストされ、 前記解析方法は、更に、 前記第2タグペアを処理し、対応第2ハッシュ開始/終
    了タグを形成するステップと、 前記第2ハッシュ開始/終了タグが、前記第1タグペア
    の為の前記ハッシュ開始/終了タグとの関係で、前記第
    1タグペア内での前記第2タグペアのネストと同等のネ
    ストを示すため、前記対応第2ハッシュ開始/終了タグ
    を用いて、前記文書の前記少なくとも部分的構造表現を
    増大する増大ステップと、 を有することを特徴とする請求項12に記載の解析方
    法。
  15. 【請求項15】前記増大ステップの前に、更に、 第1ハッシュ開始タグを第2ハッシュ開始タグと連結
    し、第1ハッシュ終了タグを第2ハッシュ終了タグと連
    結し、それにより、前記第2タグペアについてのそれぞ
    れの拡張ハッシュ開始/終了タグを形成し、 前記増大ステップは、前記第2タグペアについての前記
    それぞれの拡張ハッシュ開始/終了タグを用いて実行さ
    れ、 前記拡張ハッシュ開始/終了タグは、前記第1タグペア
    の前記ハッシュ開始/終了タグとの関係で、前記第1タ
    グペア内での前記第2タグペアのネストと同等のネスト
    を示すことを特徴とする請求項14に記載の解析方法。
  16. 【請求項16】前記増大ステップに続いて、構文規則に
    対する整形性チェックステップが行われ、 該整形性チェックは、前記マークアップ言語文書の前記
    少なくとも部分的な構造表現における要素の対応ハッシ
    ュ表現を数的に比較することによって、前記マークアッ
    プ言語文書の前記少なくとも部分的な構造表現を構文規
    則に照らしてチェックするステップを含むことを特徴と
    する請求項1に記載の解析方法。
  17. 【請求項17】前記数的な比較のステップに続いて、更
    に、 前記構文規則に従い、前記第1タイプではない要素の対
    応非ハッシュ表現を、文字列比較するステップを行うこ
    とを特徴とする請求項16に記載の解析方法。
  18. 【請求項18】前記第1タイプは、 構造要素或はその一部、 前記構造要素の定義、 前記構造要素の宣言、及び前記構造要素のマッチ、 のいずれかであることを特徴とする請求項1に記載の解
    析方法。
  19. 【請求項19】前記構造要素はタグであることを特徴と
    する請求項18に記載の解析方法。
  20. 【請求項20】前記文書の前記少なくとも部分的な構造
    表現の整形性を、構文規則に照らしてチェックするチェ
    ックステップを更に含むことを特徴とする請求項14に
    記載の解析方法。
  21. 【請求項21】前記構文規則は、タグの適正なネストに
    関するものであり、 前記チェックステップは、 前記文書の前記少なくとも部分的な構造表現におけるハ
    ッシュタグに亘る数的比較を行い、それにより、前記第
    1ハッシュ開始/終了タグと、前記第2ハッシュ開始/
    終了タグを識別するサブステップと、 前記第2ハッシュ開始/終了タグが前記第1ハッシュ開
    始/終了タグとの関係で適正なネストを示すことを確認
    するサブステップと、 を含むことを特徴とする請求項20に記載の解析方法。
  22. 【請求項22】前記数的比較に続いて、 前記構文規則に従い、前記文書の前記少なくとも部分的
    な構造表現におけるそれぞれのタグの非ハッシュ部分に
    亘り、文字列比較を行うステップを更に含むことを特徴
    とする請求項21に記載の解析方法。
  23. 【請求項23】構文規則に照らして、前記文書の前記少
    なくとも部分的な構文表現の整形性をチェックするステ
    ップを更に有することを特徴とする請求項15に記載の
    解析方法。
  24. 【請求項24】前記構文規則は、タグの適正なネストに
    関するものであり、 前記チェックステップは、 前記文書の前記少なくとも部分的な構造表現におけるハ
    ッシュタグに亘り数的比較を行い、それにより、前記第
    1ハッシュ開始/終了タグと、前記第2ハッシュ開始/
    終了タグを識別するサブステップと、 前記拡張ハッシュ開始/終了タグが、前記第1ハッシュ
    開始/終了タグとの関係で適正なネストを示すことを確
    認するサブステップと、 を含むことを特徴とする請求項23に記載の解析方法。
  25. 【請求項25】前記数的比較に続いて、 前記文書の前記少なくとも部分的な構造表現におけるそ
    れぞれのタグの非ハッシュ部分にわたり、文字列比較を
    行うステップを更に含むことを特徴とする請求項24に
    記載の解析方法。
  26. 【請求項26】前記整形性チェックステップは、妥当性
    参照文書VRDに照らす妥当性検査ステップによって、
    (a)続けられ、(b)含まれ、又は(c)置き換えら
    れ、 前記妥当性検査ステップは、 (a)前記VRDを処理する処理サブステップを含み、
    該処理サブステップは、VRDにおけるの構文要素ごと
    に、 (i)VRDの前記構文要素のタイプを識別するサブサ
    ブステップと、 (ii)前記タイプが、前記第1タイプの場合に、前記
    構文要素を、そのハッシュ表現を決定することによって
    処理するサブサブステップと、を含み、 前記妥当性検査ステップは、更に、 (b)処理されたVRDに照らして前記マークアップ言
    語文書の前記少なくとも部分的な構造表現をチェックす
    るチェックサブステップを含み、該チェックサブステッ
    プは、要素の対応ハッシュ表現を数的に比較するサブサ
    ブステップを含むことを特徴とする請求項16に記載の
    解析方法。
  27. 【請求項27】VRDに照らしてマークアップ言語文書
    の妥当性検査を行う検査方法であって、 (a)マークアップ言語文書を、そこで識別されるドキ
    ュメントタグごとに、該ドキュメントタグが、対応する
    マークアップ言語のドキュメントタグ階層における第1
    ドキュメントタグでなければ、処理するステップを有
    し、該処理は、 (i)前記ドキュメントタグの階層位置を決定するステ
    ップと、 (ii)前記ドキュメントタグ階層における前のドキュ
    メントタグのハッシュ表現に連結された、前記ドキュメ
    ントタグの拡張ハッシュ表現を決定するステップと、 (iii)前記ドキュメントタグが前のドキュメントタ
    グよりも深くネストにされる場合に、前記ドキュメント
    タグの前記拡張ハッシュ表現を格納するステップと、を
    含み、 前記検査方法は更に、 (b)VRDを、そこで識別されるタグごとに、該タグ
    が対応タグ階層の第1タグでない場合に、処理するステ
    ップを有し、該処理は、 (i)前記タグの階層位置を決定するステップと、 (ii)対応するタグ階層における前のタグのハッシュ
    表現に連結される前記タグの拡張ハッシュ表現を決定す
    るステップと、 (iii)前記タグの前記拡張ハッシュ表現をリストに
    格納するステップと、を含み、 前記検査方法は更に、 (c)前記ドキュメントタグの前記拡張ハッシュ表現
    が、前記リスト内にあるか、或は、前記リストのメンバ
    の妥当なサブセットである場合には、前記マークアップ
    言語文書の妥当性を検査するステップを有することを特
    徴とする検査方法。
  28. 【請求項28】VRDに照らしてマークアップ言語文書
    の妥当性を検査する検査方法であって、 (a)前記VRDを、そのなかで識別された構造要素ご
    とに、処理する処理ステップを含み、該処理ステップ
    は、 (i)前記構造要素の構文属性を決定するステップと、 (ii)前記構造要素のハッシュ表現を決定するステッ
    プと、 (iii)前記VRDの構造表現における、前記構造要
    素の前記ハッシュ表現及び構文属性を格納するステップ
    と、を含み、 前記検査方法は更に、 (b)マークアップ言語文書を、そのなかで識別された
    ドキュメント構造要素ごとに、処理する処理ステップを
    含み、該処理ステップは、 (i)前記文書構造要素の構文属性を決定するステップ
    と、 (ii)前記文書構造要素のハッシュ表現を決定するス
    テップと、 (iii)前記文書の構造表現における、前記文書構造
    要素の前記ハッシュ表現と構文属性を格納するステップ
    と、を含み、 前記検査方法は更に、 (c)前記文書の前記構造表現における前記各文書構造
    要素の構文属性及びハッシュ表現が、前記VRDの前記
    構造表現における対応構文属性及びハッシュ表現に一致
    する場合に、前記マークアップ言語文書の妥当性を検査
    するステップを有することを特徴とする検査方法。
  29. 【請求項29】前記数的比較ステップに続いて、更に、
    前記第1タイプでない要素の対応非ハッシュ表現の文字
    列比較ステップを行うことを特徴とする請求項26に記
    載の解析方法。
  30. 【請求項30】前記第1タイプは、 構造要素或はその一部、 前記構造要素の定義、 前記構造要素の宣言、 前記構造要素のマッチ、 のいずれかであることを特徴とする請求項26に記載の
    解析方法。
  31. 【請求項31】前記構造要素はタグであることを特徴と
    する請求項30に記載の解析方法。
  32. 【請求項32】構文要素を含むマークアップ言語文書を
    符号化する符号化方法であって、 前記構文要素の一つについて、 構文要素のタイプを識別するステップと、 (i)前記タイプが第1タイプであれば、前記構文要素
    のハッシュ表現を決定すること、 (ii)前記タイプが第1タイプでなければ、前記構文
    要素の圧縮表現を決定すること、 (iii)前記構文要素を保持すること、 のいずれかによって、前記構文要素を処理するステップ
    と、 を含むことを特徴とする符号化方法。
  33. 【請求項33】符号化構文要素を含むマークアップ言語
    文書を復号する復号方法であって、 前記符号化構文要素の一つについて、 前記符号化構文要素のタイプを識別するステップと、 (i)前記タイプが第1タイプであれば、前記符号化構
    文要素の逆ハッシュ表現を決定すること、 (ii)前記タイプが第1タイプでなければ、前記符号
    化構文要素の解凍表現を決定すること、 (iii)前記符号化構文要素を保持すること、 の少なくとも一つで、前記符号化構文要素を処理するス
    テップと、 を含むことを特徴とする復号方法。
  34. 【請求項34】構文要素を含むマークアップ言語文書を
    解析する解析装置であって、 前記構文要素のタイプを識別する識別手段と、 前記タイプが第1タイプである場合に、前記構文要素
    を、そのハッシュ表現を決定することによって、処理す
    る処理手段と、 前記タイプが第1タイプである場合に前記ハッシュ表現
    を用いて、前記文書の少なくとも部分的構造表現を増大
    する増大手段と、 を含むことを特徴とする解析装置。
  35. 【請求項35】VRDに照らしてマークアップ言語文書
    の妥当性を検査する検査装置であって、 (a)マークアップ言語文書を、そこで識別されるドキ
    ュメントタグごとに、該ドキュメントタグが、対応する
    マークアップ言語のドキュメントタグ階層における第1
    ドキュメントタグでなければ、処理する手段を有し、該
    手段は、 (i)前記ドキュメントタグの階層位置を決定する手段
    と、 (ii)前記ドキュメントタグ階層における前のドキュ
    メントタグのハッシュ表現に連結された、前記ドキュメ
    ントタグの拡張ハッシュ表現を決定する手段と、 (iii)前記ドキュメントタグが前のドキュメントタ
    グよりも深くネストにされる場合に、前記ドキュメント
    タグの前記拡張ハッシュ表現を格納する手段と、を含
    み、 前記検査装置は更に、 (b)VRDを、そこで識別されるタグごとに、該タグ
    が対応タグ階層の第1タグでない場合に、処理する手段
    を有し、該手段は、 (i)前記タグの階層位置を決定する手段と、 (ii)対応するタグ階層における前のタグのハッシュ
    表現に連結される前記タグの拡張ハッシュ表現を決定す
    る手段と、 (iii)前記タグの前記拡張ハッシュ表現をリストに
    格納する手段と、を含み、 前記検査装置は更に、 (c)前記ドキュメントタグの前記拡張ハッシュ表現
    が、前記リスト内にあるか、或は、前記リストのメンバ
    の妥当なサブセットであるかのどちらかであることを立
    証し、それによって、前記マークアップ言語文書の妥当
    性を検査する手段を有することを特徴とする検査装置。
  36. 【請求項36】VRDに照らしてマークアップ言語文書
    の妥当性を検査する検査装置であって、 (a)前記VRDを、そのなかで識別された構造要素ご
    とに、処理する手段を含み、該手段は、 (i)前記構造要素の構文属性を決定する手段と、 (ii)前記構造要素のハッシュ表現を決定する手段
    と、 (iii)前記VRDの構造表現における、前記構造要
    素の前記ハッシュ表現及び構文属性を格納する手段と、
    を含み、 前記検査装置は更に、 (b)マークアップ言語文書を、そのなかで識別された
    ドキュメント構造要素ごとに、処理する手段を含み、該
    手段は、 (i)前記文書構造要素の構文属性を決定する手段と、 (ii)前記文書構造要素のハッシュ表現を決定する手
    段と、 (iii)前記文書の構造表現における、前記文書構造
    要素の前記ハッシュ表現と構文属性を格納する手段と、
    を含み、 前記検査装置は更に、 (c)前記文書の前記構造表現における前記各文書構造
    要素の構文属性及びハッシュ表現と、前記VRDの前記
    構造表現における対応構文属性及びハッシュ表現とを比
    較し、それにより、前記マークアップ言語文書の妥当性
    を検査する手段を有することを特徴とする検査装置。
  37. 【請求項37】構文要素を含むマークアップ言語文書を
    符号化し、前記文書の少なくとも部分的構造表現を形成
    する符号化装置であって、 構文要素のタイプを識別する手段と、 (i)前記タイプが第1タイプであれば、前記構文要素
    のハッシュ表現を決定すること、 (ii)前記タイプが第1タイプでなければ、前記構文
    要素の圧縮表現を決定すること、 (iii)前記構文要素を保持すること、 のいずれかによって、前記構文要素を処理する手段と、 を含むことを特徴とする符号化装置。
  38. 【請求項38】符号化構文要素を含むマークアップ言語
    文書を復号する復号装置であって、 前記符号化構文要素のタイプを識別する手段と、 (i)前記タイプが第1タイプであれば、前記符号化構
    文要素の逆ハッシュ表現を決定すること、 (ii)前記タイプが第1タイプでなければ、前記符号
    化構文要素の解凍表現を決定すること、 (iii)符号化構文要素を保持すること、 の少なくとも一つによって、前記符号化構文要素を処理
    する手段と、 を含むことを特徴とする復号装置。
  39. 【請求項39】コンピュータに構文要素を含むマークア
    ップ言語文書を解析する手続を実行させるコンピュータ
    プログラムであって、 前記構文要素のタイプを識別するコードと、 前記タイプが第1タイプである場合に、前記構文要素
    を、そのハッシュ表現を決定することによって、処理す
    るコードと、 前記タイプが第1タイプである場合に前記ハッシュ表現
    を用いて、前記文書の少なくとも部分的構造表現を増大
    するコードと、 を含むことを特徴とするコンピュータプログラム。
  40. 【請求項40】コンピュータにVRDに照らしてマーク
    アップ言語文書の妥当性を検査する手続を実行させるコ
    ンピュータプログラムであって、 (a)マークアップ言語文書を、そこで識別されるドキ
    ュメントタグごとに、該ドキュメントタグが、対応する
    マークアップ言語のドキュメントタグ階層における第1
    ドキュメントタグでなければ、処理するコードを有し、
    該コードは、 (i)前記ドキュメントタグの階層位置を決定するコー
    ドと、 (ii)前記ドキュメントタグ階層における前のドキュ
    メントタグのハッシュ表現に連結された、前記ドキュメ
    ントタグの拡張ハッシュ表現を決定するコードと、 (iii)前記ドキュメントタグが前のドキュメントタ
    グよりも深くネストにされる場合に、前記ドキュメント
    タグの前記拡張ハッシュ表現を格納するコードと、を含
    み、 前記コンピュータプログラムは更に、 (b)VRDを、そこで識別されるタグごとに、該タグ
    が対応タグ階層の第1タグでない場合に、処理するコー
    ドを有し、該コードは、 (i)前記タグの階層位置を決定するコードと、 (ii)対応するタグ階層における前のタグのハッシュ
    表現に連結される前記タグの拡張ハッシュ表現を決定す
    るコードと、 (iii)前記タグの前記拡張ハッシュ表現をリストに
    格納するコードと、を含み、 前記コンピュータプログラムは更に、 (c)前記ドキュメントタグの前記拡張ハッシュ表現
    が、前記リスト内にあるか、或は、前記リストのメンバ
    の妥当なサブセットである場合には、前記マークアップ
    言語文書の妥当性を検査するコードを含むことを特徴と
    するコンピュータプログラム。
  41. 【請求項41】コンピュータにVRDに照らしてマーク
    アップ言語文書の妥当性を検査する手続を実行させるコ
    ンピュータプログラムであって、 (a)前記VRDを、そのなかで識別された構造要素ご
    とに、処理するコードを含み、該コードは、 (i)前記構造要素の構文属性を決定するコードと、 (ii)前記構造要素のハッシュ表現を決定するコード
    と、 (iii)前記VRDの構造表現における、前記構造要
    素の前記ハッシュ表現及び構文属性を格納するコード
    と、を含み、 前記プログラムは更に、 (b)マークアップ言語文書を、そのなかで識別された
    ドキュメント構造要素ごとに、処理するコードを含み、
    該コードは、 (i)前記文書構造要素の構文属性を決定するコード
    と、 (ii)前記文書構造要素のハッシュ表現を決定するコ
    ードと、 (iii)前記文書の構造表現における、前記文書構造
    要素の前記ハッシュ表現と構文属性を格納するコード
    と、を含み、 前記プログラムは更に、 (c)前記文書の前記構造表現における前記各文書構造
    要素の構文属性及びハッシュ表現が、前記VRDの前記
    構造表現における対応構文属性及びハッシュ表現に一致
    する場合に、前記マークアップ言語文書の妥当性を検査
    するコードを含むことを特徴とするコンピュータプログ
    ラム。
  42. 【請求項42】コンピュータに構文要素を含むマークア
    ップ言語文書を符号化する手続を実行させるコンピュー
    タプログラムであって、 構文要素のタイプを識別するコードと、 (i)前記タイプが第1タイプであれば、前記構文要素
    のハッシュ表現を決定すること、 (ii)前記タイプが第1タイプでなければ、前記構文
    要素の圧縮表現を決定すること、 (iii)前記構文要素を保持すること、 のいずれかによって、前記構文要素を処理するコード
    と、 を含むことを特徴とするコンピュータプログラム。
  43. 【請求項43】コンピュータに符号化構文要素を含むマ
    ークアップ言語文書を復号する手続を実行させるコンピ
    ュータプログラムであって、 前記符号化構文要素のタイプを識別するコードと、 (i)前記タイプが第1タイプであれば、前記符号化構
    文要素の逆ハッシュ表現を決定すること、 (ii)前記タイプが第1タイプでなければ、前記符号
    化構文要素の解凍表現を決定すること、 (iii)符号化構文要素を保持すること、 の少なくとも一つで、前記符号化構文要素を処理するコ
    ードと、 を含むことを特徴とするコンピュータプログラム。
  44. 【請求項44】コンピュータに構文要素を含むマークア
    ップ言語文書を解析する手続を実行させるコンピュータ
    プログラムを、格納したコンピュータ可読媒体を含むコ
    ンピュータプログラム製品であって、 前記コンピュータプログラムは、 前記構文要素のタイプを識別するコードと、 前記タイプが第1タイプである場合に、前記構文要素
    を、そのハッシュ表現を決定することによって、処理す
    るコードと、 前記タイプが第1タイプである場合に前記ハッシュ表現
    を用いて、前記文書の少なくとも部分的構造表現を増大
    するコードと、 を含むことを特徴とするコンピュータプログラム製品。
  45. 【請求項45】コンピュータにVRDに照らしてマーク
    アップ言語文書の妥当性を検査する手続を実行させるコ
    ンピュータプログラムを、格納したコンピュータ可読媒
    体を含むコンピュータプログラム製品であって、 前記コンピュータプログラムは、 (a)マークアップ言語文書を、そこで識別されるドキ
    ュメントタグごとに、該ドキュメントタグが、対応する
    マークアップ言語のドキュメントタグ階層における第1
    ドキュメントタグでなければ、処理するコードを有し、
    該コードは、 (i)前記ドキュメントタグの階層位置を決定するコー
    ドと、 (ii)前記ドキュメントタグ階層における前のドキュ
    メントタグのハッシュ表現に連結された、前記ドキュメ
    ントタグの拡張ハッシュ表現を決定するコードと、 (iii)前記ドキュメントタグが前のドキュメントタ
    グよりも深くネストにされる場合に、前記ドキュメント
    タグの前記拡張ハッシュ表現を格納するコードと、を含
    み、 前記コンピュータプログラムは更に、 (b)VRDを、そこで識別されるタグごとに、該タグ
    が対応タグ階層の第1タグでない場合に、処理するコー
    ドを有し、該コードは、 (i)前記タグの階層位置を決定するコードと、 (ii)対応するタグ階層における前のタグのハッシュ
    表現に連結される前記タグの拡張ハッシュ表現を決定す
    るコードと、 (iii)前記タグの前記拡張ハッシュ表現をリストに
    格納するコードと、を含み、 前記コンピュータプログラムは更に、 (c)前記ドキュメントタグの前記拡張ハッシュ表現
    が、前記リスト内にあるか、或は、前記リストのメンバ
    の妥当なサブセットである場合に、前記マークアップ言
    語文書の妥当性を検査するコードを含むことを特徴とす
    るコンピュータプログラム製品。
  46. 【請求項46】コンピュータにVRDに照らしてマーク
    アップ言語文書の妥当性を検査する手続を実行させるコ
    ンピュータプログラムを、格納したコンピュータ可読媒
    体を含むコンピュータプログラム製品であって、 前記プログラムは、 (a)前記VRDを、そのなかで識別された構造要素ご
    とに、処理するコードを含み、該コードは、 (i)前記構造要素の構文属性を決定するコードと、 (ii)前記構造要素のハッシュ表現を決定するコード
    と、 (iii)前記VRDの構造表現における、前記構造要
    素の前記ハッシュ表現及び構文属性を格納するコード
    と、を含み、 前記プログラムは更に、 (b)マークアップ言語文書を、そのなかで識別された
    ドキュメント構造要素ごとに、処理するコードを含み、
    該コードは、 (i)前記文書構造要素の構文属性を決定するコード
    と、 (ii)前記文書構造要素のハッシュ表現を決定するコ
    ードと、 (iii)前記文書の構造表現における、前記文書構造
    要素の前記ハッシュ表現と構文属性を格納するコード
    と、を含み、 前記プログラムは更に、 (c)前記文書の前記構造表現における前記各文書構造
    要素の構文属性及びハッシュ表現が、前記VRDの前記
    構造表現における対応構文属性及びハッシュ表現に一致
    する場合に、前記マークアップ言語文書の妥当性を検査
    するコードを含むことを特徴とするコンピュータプログ
    ラム製品。
  47. 【請求項47】構文要素を含むマークアップ言語文書の
    少なくとも部分的な構造表現であって、 前記構文要素の内の一要素に対し、 前記一要素のタイプを識別する識別ステップと、 前記タイプが第1タイプであれば、そのハッシュ表現を
    決定することによってその要素を処理する処理ステップ
    と、 前記タイプが前記第1タイプであれば、前記ハッシュ表
    現を用いて、前記文書の少なくとも部分的な構造表現を
    増大させる増大ステップと、 を行う解析方法によって生成されることを特徴とする構
    造表現。
  48. 【請求項48】構文要素を含むマークアップ言語文書を
    解析する解析装置であって、 プロセッサと、(i)前記文書と、(ii)前記文書を
    解析する手続を前記プロセッサに実行させるプログラム
    を格納したプログラムと、格納するメモリを含み、 該プログラムは、 (i)前記構文要素のタイプを識別するコードと、 (ii)前記タイプが第1タイプである場合に、前記構
    文要素を、そのハッシュ表現を決定することによって、
    処理するコードと、 (iii)前記タイプが第1タイプである場合に前記ハ
    ッシュ表現を用いて、前記文書の少なくとも部分的構造
    表現を増大するコードと、 を含むことを特徴とする解析装置。
  49. 【請求項49】構文要素を含むVRDに照らして構文要
    素を含むマークアップ言語文書の妥当性を検査する検査
    装置であって、 (a)プロセッサと、 (b)(i)前記文書と、(ii)前記VRDと、(i
    ii)文書の妥当性を検査する手順を前記プロセッサに
    実行させるプログラムと、を格納するメモリを有し、 (c)前記プログラムは、 (ca)マークアップ言語文書を、そこで識別されるド
    キュメントタグごとに、該ドキュメントタグが、対応す
    るマークアップ言語のドキュメントタグ階層における第
    1ドキュメントタグでなければ、処理するコードを有
    し、該コードは、 (caa)前記ドキュメントタグの階層位置を決定する
    コードと、 (cab)前記ドキュメントタグ階層における前のドキ
    ュメントタグのハッシュ表現に連結された、前記ドキュ
    メントタグの拡張ハッシュ表現を決定するコードと、 (cac)前記ドキュメントタグが前のドキュメントタ
    グよりも深くネストにされる場合に、前記ドキュメント
    タグの前記拡張ハッシュ表現を格納するコードと、を含
    み、 前記プログラムは更に、 (cb)VRDを、そこで識別されるタグごとに、該タ
    グが対応タグ階層の第1タグでない場合に、処理するコ
    ードを有し、該コードは、 (cba)前記タグの階層位置を決定するコードと、 (cbb)対応するタグ階層における前のタグのハッシ
    ュ表現に連結される前記タグの拡張ハッシュ表現を決定
    するコードと、 (cbc)前記タグの前記拡張ハッシュ表現をリストに
    格納するコードと、を含み、 前記プログラムは更に、 (cc)前記ドキュメントタグの前記拡張ハッシュ表現
    が、前記リスト内にあるか、或は、前記リストのメンバ
    の妥当なサブセットであるかのいずれかであることを立
    証し、それにより前記マークアップ言語文書の妥当性を
    検査するコードを含むことを特徴とする検査装置。
  50. 【請求項50】構文要素を含むVRDに照らして構文要
    素を含むマークアップ言語文書の妥当性を検査する検査
    装置であって、 (a)プロセッサと、 (b)(i)前記文書と、(ii)前記VRDと、(i
    ii)文書の妥当性を検査する手順を前記プロセッサに
    実行させるプログラムと、を格納するためのメモリを有
    し、 (c)前記プログラムは、 (ca)前記VRDを、そのなかで識別された構造要素
    ごとに、処理するコードを含み、該コードは、 (caa)前記構造要素の構文属性を決定するコード
    と、 (cab)前記構造要素のハッシュ表現を決定するコー
    ドと、 (cac)前記VRDの構造表現における、前記構造要
    素の前記ハッシュ表現及び構文属性を格納するコード
    と、を含み、 前記プログラムは更に、 (cb)マークアップ言語文書を、そのなかで識別され
    たドキュメント構造要素ごとに、処理するコードを含
    み、該コードは、 (cba)前記文書構造要素の構文属性を決定するコー
    ドと、 (cbb)前記文書構造要素のハッシュ表現を決定する
    コードと、 (cbc)前記文書の構造表現における、前記文書構造
    要素の前記ハッシュ表現と構文属性を格納するコード
    と、を含み、 前記プログラムは更に、 (cc)前記文書の前記構造表現における前記各文書構
    造要素の構文属性及びハッシュ表現を、前記VRDの前
    記構造表現における対応構文属性及びハッシュ表現と比
    較し、それにより前記マークアップ言語文書の妥当性を
    検査するコードを含むことを特徴とする検査装置。
  51. 【請求項51】VRDに照らしてマークアップ言語文書
    の妥当性検査を行う検査方法であって、 前記VRDにおける第1タイプの最も深くネストされた
    構文要素についての第1拡張ハッシュ表現を決定するス
    テップと、 VRDリストに前記第1拡張ハッシュ表現を格納するス
    テップと、 マークアップ言語文書における第1タイプの最も深くネ
    ストされた構文要素について、第2拡張ハッシュ表現を
    決定するステップと、 前記第2拡張ハッシュ表現が前記VRDリストに存在す
    る場合に、前記マークアップ言語文書は妥当でないこと
    を宣言するステップと、 を含むことを特徴とする検査方法。
  52. 【請求項52】前記第1タイプの前記構文要素は、 構造要素及びその一部、 前記構造要素の定義、 前記構造要素の宣言、 前記構造要素のマッチ、 のいずれかであることを特徴とする請求項51に記載の
    検査方法。
  53. 【請求項53】前記構造要素はタグであることを特徴と
    する請求項52に記載の検査方法。
  54. 【請求項54】前記VRDの前記最も深くネストされた
    構文要素は、前記VRDの広域的構造、或は前記VRD
    の局所的サブ構造のいずれかの中に最も深くネストされ
    た構文要素であり、 前記マークアップ言語文書の最も深くネストされた構文
    要素は、前記マークアップ言語文書の広域的構造、或
    は、前記マークアップ言語文書の局所的サブ構造のいず
    れかの中に最も深くネストされた構文要素であることを
    特徴とする請求項51に記載の検査方法。
  55. 【請求項55】VRDに照らしてマークアップ言語文書
    の妥当性を検査する検査装置であって、 前記VRDの第1タイプの最も深くネストされた構文要
    素について第1拡張ハッシュ表現を決定する手段と、 VRDリストの前記第1拡張ハッシュ表現を格納する手
    段と、 前記マークアップ言語文書における第1タイプの最も深
    くネストされた構文要素について、第2拡張ハッシュ表
    現を決定する手段と、 前記第2拡張ハッシュ表現が前記VRDリストに存在す
    る場合に、前記マークアップ言語文書は妥当でないと宣
    言する手段と、 を有することを特徴とする検査装置。
  56. 【請求項56】VRDに照らしてマークアップ言語文書
    の妥当性を検査する手続をコンピュータに実行させるコ
    ンピュータプログラムであって、 前記VRDの第1タイプの最も深くネストされた構文要
    素について第1拡張ハッシュ表現を決定するコードと、 VRDリストの前記第1拡張ハッシュ表現を格納するコ
    ードと、 前記マークアップ言語文書における第1タイプの最も深
    くネストされた構文要素について、第2拡張ハッシュ表
    現を決定するコードと、 前記第2拡張ハッシュ表現が前記VRDリストに存在す
    る場合に、前記マークアップ言語文書は妥当でないと宣
    言するコードと、 を含むことを特徴とするコンピュータプログラム。
  57. 【請求項57】VRDに照らしてマークアップ言語文書
    の妥当性を検査する手続をコンピュータに実行させるコ
    ンピュータプログラムを格納したコンピュータに含まれ
    るコンピュータプログラム製品であって、該プログラム
    は、 前記VRDの第1タイプの最も深くネストされた構文要
    素について第1拡張ハッシュ表現を決定するコードと、 VRDリストに前記第1拡張ハッシュ表現を格納するコ
    ードと、 前記マークアップ言語文書における前記第1タイプの最
    も深くネストされた構文要素について第2拡張ハッシュ
    表現を決定するコードと、 前記第2拡張ハッシュ表現が前記VRDリストに存在す
    る場合に、前記マークアップ言語文書が妥当でないと宣
    言するコードと、 を含むことを特徴とするコンピュータプログラム製品。
  58. 【請求項58】前記コードは、英数字を含むことを特徴
    とする請求項7に記載の解析方法。
JP2001201414A 2000-06-30 2001-07-02 ハッシュコンパクトxmlパーサ Withdrawn JP2002099428A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
AUPQ8495A AUPQ849500A0 (en) 2000-06-30 2000-06-30 Hash compact xml parser
AU8495 2000-06-30

Publications (1)

Publication Number Publication Date
JP2002099428A true JP2002099428A (ja) 2002-04-05

Family

ID=3822562

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001201414A Withdrawn JP2002099428A (ja) 2000-06-30 2001-07-02 ハッシュコンパクトxmlパーサ

Country Status (3)

Country Link
US (1) US7281205B2 (ja)
JP (1) JP2002099428A (ja)
AU (1) AUPQ849500A0 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7221801B2 (en) 2002-12-05 2007-05-22 Samsung Electronics Co., Ltd. Method and system for generating input file using meta language regarding graphic data compression

Families Citing this family (103)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7388092B2 (en) * 1996-05-03 2008-06-17 Applera Corporation Oligonucleotides and analogs labeled with energy transfer dyes
US7062456B1 (en) * 1999-02-09 2006-06-13 The Chase Manhattan Bank System and method for back office processing of banking transactions using electronic files
US7117239B1 (en) 2000-07-28 2006-10-03 Axeda Corporation Reporting the state of an apparatus to a remote computer
US7328211B2 (en) 2000-09-21 2008-02-05 Jpmorgan Chase Bank, N.A. System and methods for improved linguistic pattern matching
US8108543B2 (en) 2000-09-22 2012-01-31 Axeda Corporation Retrieving data from a server
US7185014B1 (en) * 2000-09-22 2007-02-27 Axeda Corporation Retrieving data from a server
US7065742B1 (en) * 2000-10-30 2006-06-20 Microsoft Corporation System and method for dynamically processing declarative language instance data
US7213265B2 (en) * 2000-11-15 2007-05-01 Lockheed Martin Corporation Real time active network compartmentalization
US7225467B2 (en) * 2000-11-15 2007-05-29 Lockheed Martin Corporation Active intrusion resistant environment of layered object and compartment keys (airelock)
US7149792B1 (en) 2000-11-20 2006-12-12 Axeda Corporation Device registration mechanism
US6978301B2 (en) * 2000-12-06 2005-12-20 Intelliden System and method for configuring a network device
US7249170B2 (en) * 2000-12-06 2007-07-24 Intelliden System and method for configuration, management and monitoring of network resources
US7054946B2 (en) 2000-12-06 2006-05-30 Intelliden Dynamic configuration of network devices to enable data transfers
US8219662B2 (en) * 2000-12-06 2012-07-10 International Business Machines Corporation Redirecting data generated by network devices
US7150037B2 (en) * 2001-03-21 2006-12-12 Intelliden, Inc. Network configuration manager
JP3832807B2 (ja) * 2001-06-28 2006-10-11 インターナショナル・ビジネス・マシーンズ・コーポレーション データ処理方法及びその手法を用いたエンコーダ、デコーダ並びにxmlパーサ
US6862588B2 (en) * 2001-07-25 2005-03-01 Hewlett-Packard Development Company, L.P. Hybrid parsing system and method
US7305615B2 (en) * 2001-07-30 2007-12-04 Gigalogix, Inc. Methods and apparatus for accelerating data parsing
US7200548B2 (en) * 2001-08-29 2007-04-03 Intelliden System and method for modeling a network device's configuration
US8296400B2 (en) * 2001-08-29 2012-10-23 International Business Machines Corporation System and method for generating a configuration schema
US7483938B2 (en) * 2001-09-27 2009-01-27 International Business Machines Corporation System for character validation and method therefor
US20030079053A1 (en) * 2001-10-23 2003-04-24 Kevin Burns System and method for evaluating effectiveness of network configuration management tools
US7065562B2 (en) 2001-11-26 2006-06-20 Intelliden, Inc. System and method for generating a representation of a configuration schema
US7254601B2 (en) 2001-12-20 2007-08-07 Questra Corporation Method and apparatus for managing intelligent assets in a distributed environment
US20030187956A1 (en) * 2002-04-01 2003-10-02 Stephen Belt Method and apparatus for providing access control and content management services
US7178149B2 (en) 2002-04-17 2007-02-13 Axeda Corporation XML scripting of soap commands
US6959329B2 (en) * 2002-05-15 2005-10-25 Intelliden System and method for transforming configuration commands
US7716576B1 (en) * 2002-05-20 2010-05-11 Cisco Technology, Inc. Flexible XML parsing based on p-code
US7987246B2 (en) * 2002-05-23 2011-07-26 Jpmorgan Chase Bank Method and system for client browser update
US7669120B2 (en) * 2002-06-21 2010-02-23 Microsoft Corporation Method and system for encoding a mark-up language document
US7225398B1 (en) 2002-06-26 2007-05-29 Microsoft Corporation Using icons to show the validity of computer language structural elements applicable to a computer-generated document
US20040003067A1 (en) * 2002-06-27 2004-01-01 Daniel Ferrin System and method for enabling a user interface with GUI meta data
US20040004251A1 (en) 2002-07-08 2004-01-08 Madurawe Raminda U. Insulated-gate field-effect thin film transistors
US7464145B2 (en) 2002-07-11 2008-12-09 Intelliden, Inc. Repository-independent system and method for asset management and reconciliation
US7366893B2 (en) * 2002-08-07 2008-04-29 Intelliden, Inc. Method and apparatus for protecting a network from attack
US7461158B2 (en) * 2002-08-07 2008-12-02 Intelliden, Inc. System and method for controlling access rights to network resources
US7558847B2 (en) * 2002-09-13 2009-07-07 Intelliden, Inc. System and method for mapping between and controlling different device abstractions
US20040078457A1 (en) * 2002-10-21 2004-04-22 Tindal Glen D. System and method for managing network-device configurations
US20070061884A1 (en) * 2002-10-29 2007-03-15 Dapp Michael C Intrusion detection accelerator
US7146643B2 (en) * 2002-10-29 2006-12-05 Lockheed Martin Corporation Intrusion detection accelerator
CN100380322C (zh) * 2002-10-29 2008-04-09 洛克希德马丁公司 硬件加速的验证解析器
EP1579321A2 (en) * 2002-10-29 2005-09-28 Lockheed Martin Corporation Hardware accelerated validating parser
US20040083466A1 (en) * 2002-10-29 2004-04-29 Dapp Michael C. Hardware parser accelerator
US7080094B2 (en) * 2002-10-29 2006-07-18 Lockheed Martin Corporation Hardware accelerated validating parser
US7340650B2 (en) * 2002-10-30 2008-03-04 Jp Morgan Chase & Co. Method to measure stored procedure execution statistics
US20040103199A1 (en) * 2002-11-22 2004-05-27 Anthony Chao Method and system for client browser update from a lite cache
US20040117437A1 (en) * 2002-12-16 2004-06-17 Exanet, Co. Method for efficient storing of sparse files in a distributed cache
US7966418B2 (en) 2003-02-21 2011-06-21 Axeda Corporation Establishing a virtual tunnel between two computer programs
EP1604277A2 (en) * 2003-02-28 2005-12-14 Lockheed Martin Corporation Hardware accelerator personality compiler
US7325186B2 (en) * 2003-02-28 2008-01-29 Microsoft Corporation Method and system for showing unannotated text nodes in a data formatted document
US6990632B2 (en) * 2003-02-28 2006-01-24 Microsoft Corporation Method and system for inferring a schema from a hierarchical data structure for use in a spreadsheet
US7552384B2 (en) * 2003-03-27 2009-06-23 International Business Machines Corporation Systems and method for optimizing tag based protocol stream parsing
WO2005013131A2 (en) * 2003-08-05 2005-02-10 Koninklijke Philips Electronics, N.V. Method and system for probability-based validation of extensible markup language documents
WO2005015361A2 (en) * 2003-08-08 2005-02-17 Jp Morgan Chase Bank System for archive integrity management and related methods
US7877399B2 (en) * 2003-08-15 2011-01-25 International Business Machines Corporation Method, system, and computer program product for comparing two computer files
US20050060345A1 (en) * 2003-09-11 2005-03-17 Andrew Doddington Methods and systems for using XML schemas to identify and categorize documents
US20050065964A1 (en) * 2003-09-19 2005-03-24 Ziemann David M. Update of a tree-based database
US20050071756A1 (en) * 2003-09-23 2005-03-31 International Business Machines Corporation XML to numeric conversion method, system, article of manufacture, and computer program product
KR100803285B1 (ko) * 2003-10-21 2008-02-13 한국과학기술원 역 산술 부호화와 타입 추론 엔진을 이용한 질의 가능 엑스-엠-엘 압축 방법
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
US20050132031A1 (en) * 2003-12-12 2005-06-16 Reiner Sailer Method and system for measuring status and state of remotely executing programs
JP3945708B2 (ja) * 2004-01-23 2007-07-18 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理システム、変換処理システム、逆変換処理システム、変換方法、変換プログラム、及び記録媒体
US7603654B2 (en) * 2004-03-01 2009-10-13 Microsoft Corporation Determining XML schema type equivalence
US20050234680A1 (en) * 2004-04-14 2005-10-20 International Business Machines Corporation Simplified and optimized process for application user interface testing and validation
US7586851B2 (en) * 2004-04-26 2009-09-08 Cisco Technology, Inc. Programmable packet parsing processor
WO2006004946A2 (en) * 2004-06-30 2006-01-12 Reactivity, Inc. Accelerated schema-based validation
US7512592B2 (en) * 2004-07-02 2009-03-31 Tarari, Inc. System and method of XML query processing
US7366974B2 (en) * 2004-09-03 2008-04-29 Jp Morgan Chase Bank System and method for managing template attributes
US20060059210A1 (en) * 2004-09-16 2006-03-16 Macdonald Glynne Generic database structure and related systems and methods for storing data independent of data type
US20090132466A1 (en) * 2004-10-13 2009-05-21 Jp Morgan Chase Bank System and method for archiving data
WO2006051962A1 (ja) * 2004-11-12 2006-05-18 Justsystems Corporation データ処理装置およびデータ処理方法
US8458467B2 (en) * 2005-06-21 2013-06-04 Cisco Technology, Inc. Method and apparatus for adaptive application message payload content transformation in a network infrastructure element
US7664879B2 (en) 2004-11-23 2010-02-16 Cisco Technology, Inc. Caching content and state data at a network element
US7987272B2 (en) 2004-12-06 2011-07-26 Cisco Technology, Inc. Performing message payload processing functions in a network element on behalf of an application
US8082304B2 (en) 2004-12-10 2011-12-20 Cisco Technology, Inc. Guaranteed delivery of application layer messages by a network element
GB0428365D0 (en) * 2004-12-24 2005-02-02 Ibm Methods and apparatus for generating a parser and parsing a document
JP2006351002A (ja) * 2005-05-17 2006-12-28 Fuji Xerox Co Ltd 文書検証装置、文書検証方法およびプログラム
US8554826B2 (en) * 2005-08-30 2013-10-08 General Electric Company Method and system for XML message based transactions on a medical diagnostic system
US8065606B1 (en) 2005-09-16 2011-11-22 Jpmorgan Chase Bank, N.A. System and method for automating document generation
US7676488B2 (en) * 2005-10-31 2010-03-09 Sap Ag Conditional formatted reporting using syntax checking
US7716577B2 (en) * 2005-11-14 2010-05-11 Oracle America, Inc. Method and apparatus for hardware XML acceleration
US7593949B2 (en) * 2006-01-09 2009-09-22 Microsoft Corporation Compression of structured documents
US8037406B1 (en) 2006-07-25 2011-10-11 Sprint Communications Company L.P. Dynamic screen generation and navigation engine
US8370479B2 (en) 2006-10-03 2013-02-05 Axeda Acquisition Corporation System and method for dynamically grouping devices based on present device conditions
US7895514B1 (en) 2006-10-23 2011-02-22 Adobe Systems Incorporated Systems and methods for solving rendering compatibility problems across electronic document viewers
US8104076B1 (en) 2006-11-13 2012-01-24 Jpmorgan Chase Bank, N.A. Application access control system
US8065397B2 (en) 2006-12-26 2011-11-22 Axeda Acquisition Corporation Managing configurations of distributed devices
US7917515B1 (en) * 2007-03-26 2011-03-29 Lsi Corporation System and method of accelerating processing of streaming data
US8266062B2 (en) * 2007-06-27 2012-09-11 Microsoft Corporation Server side reversible hash for telephone-based licensing mechanism
US8005848B2 (en) * 2007-06-28 2011-08-23 Microsoft Corporation Streamlined declarative parsing
US8037096B2 (en) * 2007-06-29 2011-10-11 Microsoft Corporation Memory efficient data processing
US8478861B2 (en) 2007-07-06 2013-07-02 Axeda Acquisition Corp. Managing distributed devices with limited connectivity
US8099663B2 (en) * 2007-07-19 2012-01-17 Business Objects Software Ltd. Apparatus and method for document synchronization
US8701119B1 (en) * 2007-08-28 2014-04-15 Richard A. Ross Parsing XML in software on CPU with multiple execution units
US8091019B2 (en) * 2009-01-22 2012-01-03 International Business Machines Corporation Supporting variable data structures and constant data structures in a hardware-based extensible markup language (XML) post processing engine (PPE)
US9038177B1 (en) 2010-11-30 2015-05-19 Jpmorgan Chase Bank, N.A. Method and system for implementing multi-level data fusion
US9880981B2 (en) * 2010-12-30 2018-01-30 International Business Machines Corporation Automatically detecting the ability to execute processing logic after a parser or validation error
US9292588B1 (en) 2011-07-20 2016-03-22 Jpmorgan Chase Bank, N.A. Safe storing data for disaster recovery
US20130254553A1 (en) * 2012-03-24 2013-09-26 Paul L. Greene Digital data authentication and security system
US10540373B1 (en) 2013-03-04 2020-01-21 Jpmorgan Chase Bank, N.A. Clause library manager
JP6476618B2 (ja) * 2014-07-07 2019-03-06 富士通株式会社 伸長方法、伸長プログラムおよび伸長装置
US10482078B2 (en) * 2015-06-30 2019-11-19 Telefonaktiebolaget Lm Ericsson (Publ) Methods and devices for handling hash-tree based data signatures
CN111581438B (zh) * 2019-02-19 2024-01-23 青岛海信移动通信技术有限公司 文件解析方法和终端

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5680622A (en) 1994-06-30 1997-10-21 Borland International, Inc. System and methods for quickly detecting shareability of symbol and type information in header files
JP4149544B2 (ja) 1997-03-10 2008-09-10 株式会社東芝 全文検索システムおよび全文検索プログラムを記録した記録媒体
US6635088B1 (en) * 1998-11-20 2003-10-21 International Business Machines Corporation Structured document and document type definition compression
US6785673B1 (en) * 2000-02-09 2004-08-31 At&T Corp. Method for converting relational data into XML
US6883137B1 (en) * 2000-04-17 2005-04-19 International Business Machines Corporation System and method for schema-driven compression of extensible mark-up language (XML) documents

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7221801B2 (en) 2002-12-05 2007-05-22 Samsung Electronics Co., Ltd. Method and system for generating input file using meta language regarding graphic data compression

Also Published As

Publication number Publication date
US20020038320A1 (en) 2002-03-28
US7281205B2 (en) 2007-10-09
AUPQ849500A0 (en) 2000-07-27

Similar Documents

Publication Publication Date Title
JP2002099428A (ja) ハッシュコンパクトxmlパーサ
US7617451B2 (en) Structuring data for word processing documents
CN100410961C (zh) 可扩展标记语言流化转换器
US7139975B2 (en) Method and system for converting structured documents
US7458022B2 (en) Hardware/software partition for high performance structured data transformation
Hegewald et al. XStruct: efficient schema extraction from multiple and large XML documents
US7437666B2 (en) Expression grouping and evaluation
US20070022128A1 (en) Structuring data for spreadsheet documents
US7328403B2 (en) Device for structured data transformation
US8447785B2 (en) Providing context aware search adaptively
US8219901B2 (en) Method and device for filtering elements of a structured document on the basis of an expression
US8234288B2 (en) Method and device for generating reference patterns from a document written in markup language and associated coding and decoding methods and devices
CA2483423A1 (en) System and method for processing of xml documents represented as an event stream
US20070234199A1 (en) Apparatus and method for compact representation of XML documents
US20060136816A1 (en) File formats, methods, and computer program products for representing documents
JP2001067348A (ja) 構造化文書の圧縮方法および圧縮装置並びに構造化文書圧縮プログラムを記録したコンピュータ読取可能な記録媒体
US20030051216A1 (en) Automatic validation method for multimedia product manuals
JP2008084341A (ja) 構造化文書の圧縮方法および圧縮装置並びに構造化文書圧縮プログラムを記録したコンピュータ読取可能な記録媒体
WO2006133136A2 (en) Structuring data for word processing documents
US9965453B2 (en) Document transformation
AU769716B2 (en) Hash compact XML parser
Hegewald et al. XStruct

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080902