【手続補正書】
【提出日】平成19年6月28日(2007.6.28)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
（ａ）マークアップ言語文書をランタイム妥当性検査エンジンにロードするステップであって、前記ランタイム妥当性検査エンジンが、マークアップ言語スキーマ妥当性検査パーサを含むステップと、
（ｂ）マークアップ言語スキーマ定義のための注釈付きオートマトン・エンコーディングを前記マークアップ言語スキーマ妥当性検査パーサにロードするステップと、
（ｃ）前記マークアップ言語スキーマ妥当性検査パーサが、前記注釈付きオートマトン・エンコーディングを利用して、前記マークアップ言語スキーマ定義に対する前記マークアップ言語文書の妥当性を検査するステップと
を含むマークアップ言語スキーマの妥当性検査方法であって、
前記妥当性を検査するステップ（ｃ）が、さらに
（ｃ１）ＸＭＬ（拡張可能なマークアップ言語）文書に対して少なくとも１つのトークンを取得するステップと、
（ｃ２）汎用ＸＭＬパーサによって前記少なくとも１つのトークンの低レベル妥当性検査を実施するステップと、
（ｃ３）前記トークンが要素トークンまたは属性トークンである場合、ＸＭＬスキーマ妥当性検査パーサにより前記少なくとも１つのトークンの高レベル妥当性検査を実施するステップと
を含むマークアップ言語スキーマの妥当性検査方法。
【請求項２】
前記マークアップ言語が、ＸＭＬ（拡張可能なマークアップ言語）を含む、請求項１に記載の方法。
【請求項３】
前記注釈付きオートマトン・エンコーディングが、少なくとも１つの要素ノードを含み、１つまたは複数の属性を、前記要素ノードと関連付けることができ、また１つまたは複数のデータ型制約を、前記要素ノードまたは前記属性と関連付けることができる、請求項１または２に記載の方法。
【請求項４】
前記注釈付きオートマトン・エンコーディングが、前記少なくとも１つの要素ノードに対して少なくとも１つの要素注釈レコードを含み、前記少なくとも１つの要素注釈レコードが、
要素内容および引数に対するスキャナＩＤと、
開始タグ・トークンと、
終了タグ・トークンと、
属性リストと、
副要素名へのポインタを含むことができる副要素候補マップと
からなる１つまたは複数のグループを含む、請求項１、２、または３に記載の方法。
【請求項５】
前記ロードするステップ（ａ）の前に、
（ａ１）ＸＭＬ（拡張可能なマークアップ言語）スキーマ定義を受け取るステップと、
（ａ２）前記ＸＭＬスキーマ定義のために要素構造階層を生成し、前記階層を注釈付きツリーで表すステップと、
（ａ３）前記注釈付きツリーをエンコードし、前記注釈付きオートマトン・エンコーディングを生成するステップと、
（ａ４）前記注釈付きオートマトン・エンコーディングを直列化するステップと、
（ａ５）前記直列化された注釈付きオートマトン・エンコーディングを記憶するステップと
を含む、請求項１ないし４のいずれか一項に記載の方法。
【請求項６】
前記妥当性を検査するステップ（ｃ）がさらに、
（ｃ４）前記汎用ＸＭＬパーサおよび前記ＸＭＬスキーマ妥当性検査パーサによる妥当性検査が成功した場合、妥当性検査の合格を出力するステップと、
（ｃ５）前記汎用ＸＭＬパーサまたは前記ＸＭＬスキーマ妥当性検査パーサによる妥当性検査が成功しなかった場合、妥当性検査の不合格を出力するステップと
を含む、請求項５に記載の方法。
【請求項７】
前記要素トークンが、
開始タグ名と、
終了タグ名と
からなる１つまたは複数のグループを含む、請求項５または６に記載の方法。
【請求項８】
前記属性トークンが属性名を含む、請求項５、６、または７に記載の方法。
【請求項９】
前記要素トークンが開始タグ名であった場合、前記実施するステップ（ｃ３）が、
（ｃ３ｉ）前の注釈レコードおよび前記開始タグ名に基づいてカレントの注釈レコードを見つけるステップと、
（ｃ３ｉｉ）前記カレントの注釈レコードをスタックに追加するステップと、
（ｃ３ｉｉｉ）前記カレントの注釈レコードから前記開始タグ名に対する開始タグ・トークンを取得するステップと、
（ｃ３ｉｖ）前記開始タグ・トークンを、前記ＸＭＬスキーマ妥当性検査パーサの要素妥当性検査モジュールに入力するステップと、
（ｃ３ｖ）前記開始タグ・トークンの妥当性検査が成功したかどうか判定するステップと
を含む、請求項５ないし８のいずれか一項に記載の方法。
【請求項１０】
前記属性トークンが属性名であった場合、前記実施するステップ（ｃ３）が、
（ｃ３ｉ）カレントの注釈レコードおよび前記属性名を前記ＸＭＬスキーマ妥当性検査パーサの属性妥当性検査モジュールに渡すステップと、
（ｃ３ｉｉ）前記属性名を求めて前記カレントの注釈レコードの属性リストを検索するステップであって、前記属性名が前記カレントの注釈レコード中で見つからなかった場合、前記ＸＭＬ文書の妥当性検査が失敗するステップと、
（ｃ３ｉｉｉ）前記属性名が、前記カレントの注釈レコード中で見つかった場合、前記属性トークンを取得するステップと、
（ｃ３ｉｖ）前記属性トークンの前記妥当性検査が成功したかどうか判定するステップと
を含む、請求項５ないし９のいずれか一項に記載の方法。
【請求項１１】
前記要素トークンが終了タグ名であった場合、前記実施するステップ（ｃ３）が、
（ｃ３ｉ）スタックからカレントの注釈レコードを取りだすステップと、
（ｃ３ｉｉ）前記カレントの注釈レコードから終了タグ・トークンを取得するステップと、
（ｃ３ｉｉｉ）前記終了タグ・トークンを前記ＸＭＬスキーマ妥当性検査パーサの要素妥当性検査モジュールに入力するステップと、
（ｃ３ｉｖ）前記終了タグ・トークンの妥当性検査が成功したかどうか判定するステップと、
（ｃ３ｖ）前記カレントの注釈レコードのすべての属性の妥当性が検査されたかどうか、または前記カレントの注釈レコードの前記属性リストが空であるかどうか判定するステップであって、前記カレントの注釈レコードの前記属性のすべてが妥当性検査されておらず、前記カレントの注釈レコードの前記属性リストが空ではない場合、前記終了タグ・トークンの妥当性検査が成功しないステップと
を含む、請求項５ないし１０のいずれか一項に記載の方法。
【請求項１２】
少なくとも１つのマークアップ言語スキーマ定義のために少なくとも１つの注釈付きオートマトン・エンコーディングを生成するためのマークアップ言語スキーマ・コンパイルと、
ランタイム・スキーマ妥当性検査パーサを含むランタイム妥当性検査エンジンであって、前記ランタイム・スキーマ妥当性検査パーサが、入力として、マークアップ言語文書および前記少なくとも１つの注釈付きオートマトン・エンコーディングを受け取り、前記ランタイム・スキーマ妥当性検査パーサが、前記少なくとも１つの注釈付きオートマトン・エンコーディングを利用して前記少なくとも１つのマークアップ言語スキーマ定義に対して前記マークアップ言語文書の妥当性を検査するランタイム妥当性検査エンジンと
を含むシステムであって、
前記ランタイム・スキーマ妥当性検査パーサが、さらに
前記少なくとも１つの注釈付きオートマトン・エンコーディングをロードするためのＸＭＬ（拡張可能なマークアップ言語）スキーマ・ローディング・モジュールと、
要素トークンの妥当性を検査するための要素妥当性検査モジュール、および
属性トークンの妥当性を検査するための属性妥当性検査モジュールを含むＸＭＬスキーマ妥当性検査モジュールと
を含む、システム。
【請求項１３】
前記マークアップ言語が、ＸＭＬ（拡張可能なマークアップ言語）を含む、請求項１２１３に記載のシステム。
【請求項１４】
前記注釈付きオートマトン・エンコーディングが、少なくとも１つの要素ノードを含み、１つまたは複数の属性を、前記要素ノードと関連付けることができ、また１つまたは複数のデータ型制約を、前記要素ノードまたは前記属性と関連付けることができる、請求項１２または１３に記載のシステム。
【請求項１５】
前記注釈付きオートマトン・エンコーディングが、前記少なくとも１つの要素ノードに対して少なくとも１つの要素注釈レコードを含み、前記少なくとも１つの要素注釈レコードが、
要素内容および引数に対するスキャナＩＤと、
開始タグ・トークンと、
終了タグ・トークンと、
属性リストと、
副要素名へのポインタを含むことができる副要素候補マップと
からなる１つまたは複数のグループを含む、請求項１２、１３または１４に記載のシステム。
【請求項１６】
前記マークアップ言語スキーマ・コンパイルが、
ＸＭＬ（拡張可能なマークアップ言語）スキーマ・コンパイラ・フロントエンドと、
ＸＭＬスキーマ・コンパイラ・バックエンドと
を含む、請求項１２ないし１５のいずれか一項に記載のシステム。
【請求項１７】
前記ＸＭＬスキーマ・コンパイラ・フロントエンドが、前記少なくとも１つのＸＭＬスキーマ定義を受け取り、前記ＸＭＬスキーマ定義に対する要素構造階層を生成し、前記階層を注釈付きツリーで表す、請求項１６に記載のシステム。
【請求項１８】
前記ＸＭＬスキーマ・コンパイラ・バックエンドが、前記注釈付きツリーをエンコードし、前記エンコードされた注釈付きツリーから前記少なくとも１つの注釈付きオートマトン・エンコーディングを生成し、前記少なくとも１つの注釈付きオートマトン・エンコーディングを直列化する、請求項１７に記載のシステム。
【請求項１９】
前記少なくとも１つの注釈付きオートマトン・エンコーディングを記憶するための記憶媒体をさらに含む、請求項１２ないし１８のいずれか一項に記載のシステム。
【請求項２０】
前記ランタイム妥当性検査エンジンがさらに、
汎用ＸＭＬ（拡張可能なマークアップ言語）パーサを含み、前記汎用ＸＭＬパーサが、ＸＭＬ文書の低レベルの妥当性検査を実施し、前記ランタイム・スキーマ妥当性検査パーサが、前記ＸＭＬ文書の高レベルの妥当性検査を実施する、請求項１２ないし１９のいずれか一項に記載のシステム。
【請求項２１】
前記要素トークンが、
開始タグ名と、
終了タグ名と
からなる１つまたは複数のグループを含む、請求項２０に記載のシステム。
【請求項２２】
前記属性トークンが属性名を含む、請求項２０または２１に記載のシステム。
【請求項２３】
前記ランタイム妥当性検査エンジンがさらに、ＸＭＬ（拡張可能なマークアップ言語）スキャナ・プールを含み、前記ＸＭＬスキャナ・プールが、汎用スキャナおよび少なくとも１つの型特有のスキャナを含む、請求項１２ないし２２のいずれか一項に記載のシステム。
【請求項２４】
請求項１ないし１１のいずれかに記載の方法の各ステップをコンピュータに実行させるためのコンピュータ・プログラム。