【誤訳訂正書】
【提出日】平成19年9月18日(2007.9.18)
【誤訳訂正１】
【訂正対象書類名】明細書
【訂正対象項目名】００１１
【訂正方法】変更
【訂正の内容】
【００１１】
【課題を解決するための手段】
本発明は、中間言語またはソースコードファイルをサーバ側資源から作成するためのコード生成方法および装置に関するものであり、ソースコードファイルは、実行処理可能なクラスにコンパイルされる。実行処理可能なクラスにより、クライアントレスポンスのレンダリングを含むサーバ側機能を実行するウェブページ制御オブジェクトの素早い生成が可能になる。本発明のある実施形態において、コード生成スキームは、イベント処理および特定のオブジェクトへの属性の設定を扱うために階層内で接続された制御オブジェクトを作成することができる。さらに、コード生成方法はまた、テンプレートを用いて宣言されたオブジェクトを接続することもできる。
【誤訳訂正２】
【訂正対象書類名】明細書
【訂正対象項目名】００１２
【訂正方法】変更
【訂正の内容】
【００１２】
より好ましくは、本発明は、サーバコンピュータシステムメモリにおけるクラスの作成方法に関する。クラスは、ウェブページコンテンツを動的にレンダリングするサーバ側オブジェクトを作成するために、サーバコンピュータシステムによって用いられ、ウェブページコンテンツは、クライアント側コンピュータシステムに送られ、クライアントコンピュータシステム上のウェブページとして表示される。処理において、サーバコンピュータシステムは、ウェブページのためのリクエストをクライアントコンピュータシステムから受信し、このリクエストが動的ウェブページコンテンツファイルを識別する。サーバコンピュータは、動的ウェブページコンテンツファイルの要素を格納するためのデータモデルを作成し、データモデルを評価し、データモデルの評価に基づき動的なウェブページコンテンツファイルに関するソースコードファイルを生成する。ソースコードが作成されると、ソースコードファイルがコンパイルされて、コンパイルされたクラスをメモリに作成する。一般に、プロセスは、サーバコンピュータシステムにクラス参照を戻してサーバコンピュータシステムがクラスを用いることが可能になって終了する。
【誤訳訂正３】
【訂正対象書類名】明細書
【訂正対象項目名】００１３
【訂正方法】変更
【訂正の内容】
【００１３】
他の好ましい実施形態によると、方法は、サーバコンピュータシステム上のキャッシュメモリにクラスを格納する。一旦、キャッシュメモリに格納されると、多数のサーバ側ページオブジェクトが１つのコンパイルされたクラスからインスタンスを作成し、もともとの資源は再度使用されない。ウェブページに対するリクエストを受信する度に、サーバコンピュータシステムは、その動的ウェブページコンテンツファイルのコンパイルされたクラスがメモリにあるかどうかを判断する。要求されたクラスが、メモリに存在しない場合は、それを作成する。クラスがあれば、サーバコンピュータシステムは、ウェブページコンテンツを動的に生成するために、そのクラスからサーバ側処理オブジェクトのインスタンスを作成する。次に、ウェブページコンテンツはレンダリングされクライアントコンピュータシステムに送られる。
【誤訳訂正４】
【訂正対象書類名】明細書
【訂正対象項目名】００１４
【訂正方法】変更
【訂正の内容】
【００１４】
本発明のさらに別の実施形態によれば、データモデルを評価する方法ステップは、複数のパスでデータモデルの反復トラバースを伴う。各パス時にソースコードが生成され、そのパス時のデータモデルの評価に基づきソースコードファイルに書き込まれる。データモデルは、階層的に連結されたデータ構造を用いて構築される。
【誤訳訂正５】
【訂正対象書類名】明細書
【訂正対象項目名】００１５
【訂正方法】変更
【訂正の内容】
【００１５】
本発明によるコンピュータプログラムプロダクトの実施形態は、コンピュータシステムによって読み取り可能であり、サーバコンピュータ上にメモリにコンパイルされたクラスを作成するコンピュータプロセスを実行処理するコンピュータプログラムをコード化するコンピュータプログラム記憶媒体を含む。コンパイルされたクラスは、クライアントコンピュータシステム上に表示される要求されたウェブページに対応するレスポンスをレンダリングするためにサーバ側処理オブジェクトのインスタンスを作成するのに用いられる。本発明によるコンピュータプログラムプロダクトの別の実施形態は、コンピュータシステムによる搬送波によって具体化され、サーバにコンパイルされたクラスを作成するためのコンピュータプログラムをコード化するコンピュータデータ信号を含む。
【誤訳訂正６】
【訂正対象書類名】明細書
【訂正対象項目名】００１６
【訂正方法】変更
【訂正の内容】
【００１６】
【発明の実施の形態】
本発明の実施の形態は、動的ウェブページコンテンツ資源またはファイルによって定義された特定のウェブページのためのメモリにコンパイルされたクラスを生成する方法に関するものである。コンパイルされたクラスの作成は、ウェブページファイルからソースコードファイルの作成を伴う。次に、ソースコードファイルがクラスにコンパイルされる。コンパイルされたクラスが、メモリに存在すると、表示するクライアントに送り返されるレスポンスをレンダリングするためにページオブジェクトのインスタンスが作成され得る。一般に、ページオブジェクトは、ウェブページ上に表示されるクライアント側ユーザインタフェース要素の処理および生成のためのサーバ側制御オブジェクトを伴う。さらに、サーバ側制御オブジェクトの階層が、これらのオブジェクトが、クライアント上のウェブページの表示のためのHTMLのような結果オーサリング言語コードを最終的に協働して生成するウェブページファイルに宣言され得る。
【誤訳訂正７】
【訂正対象書類名】明細書
【訂正対象項目名】００２０
【訂正方法】変更
【訂正の内容】
【００２０】
この処理の間、ハンドラ１２０はまた、開発労力を簡素化するために予め開発された、または第３者コードのライブラリにアクセスすることができる。このようなライブラリの１つがサーバ側クラス制御ライブラリ１２６であり、ここから、ハンドラ１２０は、ユーザインタフェース要素を処理しウェブページに表示する結果HTMLデータを生成するサーバ側制御オブジェクトのインスタンスを作成することができる。本発明のある実施形態において、１つ以上のサーバ側制御オブジェクトは、動的コンテンツファイル１２４に記述されたウェブページ上に、可視的にまたは隠して、１つ以上のユーザインタフェース要素にマッピングする。
【誤訳訂正８】
【訂正対象書類名】明細書
【訂正対象項目名】００２７
【訂正方法】変更
【訂正の内容】
【００２７】
図３において、ASP+ページ３１０に関連付けられたページファクトリ３０８が呼び出され、ASP+ページ３１０からのオブジェクトのインスタンスの作成および構成をハンドリングする。ASP+ページ３１０は、一意のURLによって認識または参照され得、他の接頭辞も用い得るが、例えば、".aspx"という接頭辞によってさらに識別することができる。特定の".aspx"資源に対するリクエストがまず、ページファクトリモジュール３０８によって受信されると、ページファクトリモジュール３０８は、ファイルシステムを検索して適切な資源またはファイル（例えば、.aspxページ３１０）を得る。このファイルは、リクエストを処理するサーバによって後に解釈またはアクセスされ得るテキスト（例えば、オーサリング言語データ）または別のフォーマットでのデータ（例えば、バイトコードデータまたはコード化されたデータ）を含んでもよい。物理的なファイルが存在する場合、ページファクトリモジュール３０８は、ファイルを開き、そのファイルをメモリに読み出す。あるいは、要求されたファイルは存在するが、予めメモリにロードされている場合は、以下に詳細に述べるように、資源は必ずしもメモリにロードされる必要はないかもしれない。要求されたaspxファイルが見つからない場合、ページファクトリモジュール３０８は、例えばHTTP"404"メッセージをクライアントに送信することによって、適切な「ファイルが見つからない」というエラーメッセージを戻す。
【誤訳訂正９】
【訂正対象書類名】明細書
【訂正対象項目名】００３４
【訂正方法】変更
【訂正の内容】
【００３４】
第２ラインの<html>は、直接的な「書き込み」命令以外、結果HTMLコードをレンダリングするための情報において追加の処理が行われないようにリテラルとしてソースコードファイルへ書き込まれる標準HTML開始タグである。HTML構文において、<html>は、HTMLファイルの始まりを示し、これもまたリテラルであるライン２１の終了タグ</html>と対になっている。
【誤訳訂正１０】
【訂正対象書類名】明細書
【訂正対象項目名】００６１
【訂正方法】変更
【訂正の内容】
【００６１】
ページファクトリモジュール３０８によって行われる処理６００を図６のフローチャートに示す。図６では、処理６００は、制御オブジェクト階層２０４の生成処理（図２）にほぼ対応する。処理６００は、ASP+ページ（ASP＋ファイルともいう）をコンパイルされたオブジェクトコードクラスに変換し、ついで、それは、制御オブジェクト３１４、３１８、３２０および３２２（図３）のインスタンスを作成するためにメモリにロードされる。
【誤訳訂正１１】
【訂正対象書類名】明細書
【訂正対象項目名】００６３
【訂正方法】変更
【訂正の内容】
【００６３】
構文解析処理６０２で実際の資源が識別されると、チェック処理６０３において、メモリをチェックし、クラスがメモリに存在するかどうかを判断する。クラスがコンパイルされているかどうかを判断するために、チェック処理６０３において、クラスがコンパイルされるとセットされるフラグを検索することによって、または名前によってメモリ内のクラスを検索する。どちらにしても、チェック処理６０３において、コンパイルクラスがすでにコンパイルされ格納されていることを示す指標を検索する。クラスがメモリにある場合、フローはYES枝に分岐しインスタンス作成処理６１２に進む。インスタンス作成処理は、コンパイルされたクラスから制御オブジェクトのインスタンスを作成する。チェック処理６０３において、クラスがコンパイルされていないと判断されると、フローはNO枝に分岐し位置決定処理６０４に進む。
【誤訳訂正１２】
【訂正対象書類名】明細書
【訂正対象項目名】００６４
【訂正方法】変更
【訂正の内容】
【００６４】
チェック処理６０３が、クラスはメモリに存在しないと判断すると、位置決定処理６０４において、特定の資源を検索し探し当て、ファイルをメモリに読み出す。"System. ASP WebForms. PageFactory"クラスのようなベースクラスが、ASPおよびASPXページのインスタンス作成および構成をハンドリングするハンドラファクトリインプリメンテーションを提供する。資源、この場合は物理的な動的なウェブページコンテンツファイルが見つからなければ、適切なエラーメッセージが戻される。
【誤訳訂正１３】
【訂正対象書類名】明細書
【訂正対象項目名】００６５
【訂正方法】変更
【訂正の内容】
【００６５】
位置決定処理６０４の次に、処理６００において、構文解析作成処理６０６を行い、ここでASP+ファイルのような資源の構文解析を行う。構文解析／作成処理６０６は、ASP+ファイルを宣言ごとに読み出し、構文解析しながら集めた情報からデータモデルを作成する。データモデルは、ソースコードを引き出すことができるアクティブコンテンツファイルの要素に関連する要素を含むデータ構造である。データモデルは、アクティブコンテンツファイルで参照された構造的要素を含み、これらの要素は、アクティブサーバページの結果制御オブジェクトの構造を表すように連結される。本発明のある実施形態において、データモデルは、階層的なツリー構造で関連付けられたオブジェクトの組み合わせである。
【誤訳訂正１４】
【訂正対象書類名】明細書
【訂正対象項目名】００６７
【訂正方法】変更
【訂正の内容】
【００６７】
ASP＋ファイルが構文解析され、データモデルが作成されると、任意である作成処理６０７を行ってもよい。作成処理６０７は、以下に記載するように、データモデルを解析し、例えば、作成すべきソースコードファイルのようなソースコードを抽象化したものである中間データ構造を作成する。本質的に、中間データ構造は、コードを記述する包括的なデータ構造である。中間データ構造は、クラスを記述する上位レベルのデータ構造を有する。各クラスごとに、クラス名およびメソッドのリストまたはアレイを有する別のレベルのデータ構造であってもよい。さらに、各メソッド自体、ステートメントおよび宣言のような種々の要素を有するデータ構造である。ステートメントは、表現、データ呼び出しなどのような項目を含み得る。
【誤訳訂正１５】
【訂正対象書類名】明細書
【訂正対象項目名】００６８
【訂正方法】変更
【訂正の内容】
【００６８】
ASP+ファイルは構文解析され、データモデル（および任意には、中間データ構造）が作成されると、作成ソースコードモジュール６０８は、典型的には、ASP+ファイルに存在する各宣言のコードの種々のラインを書き込むことにより、各データモデルの解析を通して必要なソースコードを作成する。一般に、このステップは、データモデルにおける公知の宣言および他の情報のコードへの直接的な翻訳を伴う。このような翻訳は、翻訳を行うアプリケーションへハードコード化されるか、または、各翻訳は、検索テーブルに格納され得る。この種の検索テーブルは、ほとんどすべての言語にとって適切な翻訳を提供するよう作成され得るが、オブジェクト指向ソースコード言語の使用により、既存のCOMまたはCOM+ライブラリを利用するためのCOMまたはCOM+クラスへのコンパイルが簡単になる。（例えば、ソースコード言語の一例として、C++またはVbasicなどがある。）さらに、中間データ構造が処理６０７で作成される場合は、翻訳はさらに直接的になる。このような場合、データ構造は、包括的なソースコード言語ファイルに非常に近くなって、翻訳は、単に、特定のソースコード言語のソースコードファイルを作成するのに適切な辞典および文法の追加になるにすぎない場合がある。
【誤訳訂正１６】
【訂正対象書類名】明細書
【訂正対象項目名】００６９
【訂正方法】変更
【訂正の内容】
【００６９】
ASP+ファイルは、結果ソースコードファイルに特定のソースコード言語を宣言する。ASP+ファイルに言語が宣言されていない場合、Visual Basicなどのデフォルト言語を用いることができる。データモデルまたは中間データ構造から生成された結果ソースコードファイルは、本質的に、プログラマがサーバ側制御オブジェクト階層を利用する場合で、このコード生成ツールの恩恵を受けないときに書き込むことを要求されることになるタイプの高度なソースコードファイルである。
【誤訳訂正１７】
【訂正対象書類名】明細書
【訂正対象項目名】００７０
【訂正方法】変更
【訂正の内容】
【００７０】
ソースコードファイルが完成すると、コンパイル処理６１４において、ソースコードファイルをコンパイルし、オブジェクトコードまたは他の実行処理可能フォームでコンパイルされたクラスを作成する。あるいは、クラスは、バイトコードまたは仮想装置上で起動するできる他の言語にコンパイルすることができる。ソースコードファイルのコンパイルは、ソースコードファイルに存在するソースコード言語をコンパイルするように構成されたコンパイラの使用を伴う。そして、クラスが、インスタンス作成処理６１６によって呼び出され、ウェブページのためのページオブジェクトおよび結果制御オブジェクトを作成する。URLリクエストに明示的に備わっていなければ、インスタンス作成処理は、特定の資源のURLリクエストの一部をなす非明示的処理である。
【誤訳訂正１８】
【訂正対象書類名】明細書
【訂正対象項目名】００７１
【訂正方法】変更
【訂正の内容】
【００７１】
ASP+ファイルがページクラスにコンパイルされると、クラスは、将来のリクエストで使用可能な状態で維持される。したがって、ASP+ファイルのソースコードの生成処理は、１度行われるだけでよく、後のリクエストはコンパイルされたクラスを利用することができ、必要なオブジェクトを必要に応じてインスタンス作成する。コンパイルされたクラスは、短期間の間キャッシュされ得、かつ／またはコンパイルされたクラスはディスクに格納し得る。実際、ASP+ファイルが一旦コンパイルされると、元々のASP+ファイルを再び触れる必要がない。もちろん、ASP+ファイルが修正される場合は、コンパイル処理を繰り返すことによってページクラスを更新する。適切なフラグまたは他の指標メカニズムを用いてASP+ファイルが更新されたかどうかを判断することができ、したがって自動クラス更新が可能である。あるいは、ウェブページファイルまでASP+を更新した後、キャッシュされたクラスを除去するという責任は開発者に残され得る。
【誤訳訂正１９】
【訂正対象書類名】明細書
【訂正対象項目名】００７７
【訂正方法】変更
【訂正の内容】
【００７７】
ソースコード作成モジュール６０８（図６）では、このデータモデルを用いて、特定のソースコード言語のソースコードファイルを作成する。データモデルからのソースコードファイルの作成処理は、ソースコード言語に依存することに注目することが重要である。すなわち、特定の言語で書き込まれたソースコードファイルは、典型的に、特定のフォーマット要件、例えば、すべての可変宣言がこれらの変数の使用に先立つという要件を有する。したがって、その言語のコンパイラが呼び出されると、適切なプログラム命令がソースコードファイル内の適切な位置に配置されなければならない。この作業をなし遂げるために、ASP+ファイルを評価して、ファイルの中にどんな一意の要素または特徴があるかを判断しなければならないし、またファイルを処理してソースコードファイルを生成しなければならない。ソースコードファイルは、典型的に、第１の一組の要素または宣言が可変宣言のようなファイルの始めにあることを要求するので、データモデル全体が、この情報のために解析されるべきである。同様に、制御オブジェクト情報は、ファイルの中央にあるべきなので、処理の第１フェーズの次の第２フェーズ時にこの情報のためにデータモデル全体を解析すべきである。
【誤訳訂正２０】
【訂正対象書類名】明細書
【訂正対象項目名】００７８
【訂正方法】変更
【訂正の内容】
【００７８】
これらのフェーズは、ソースコードファイル（または処理６０７での中間データ構造）に書き込まれるべきコードの別個の部分を判断する機能的処理であり、ここでは、別個の部分は、ソースコードファイル内の結果位置に基づき論理的に組み合わされる。したがって、これらのフェーズは、１つのデータモデルの「パス」またはトラバースであると考えられ、したがって連続的に行われる。しかし、あるいは、これらのフェーズは、別個の並行した処理として行われてもよく、別個の処理の結果は１つのソースコードにまとめられ、処理が単一データモデルまたはデータモデルの別個のコピーのいずれかを評価する。あるいは、コードの別個の部分を判断し書き込む機能的な処理またはフェーズは、単一のトラバース時に行われてもよく、そこで、ソースコードは、ソースコードファイルの別個の部分に選択的に書き込まれたり、その部分が、ソースコードの論理的部分間の適切な連結を提供するようにまとめられるか、関連付けられた別個のファイルに書き込まれたりする。したがって、本明細書中では、別個の解析を、実質的に連続して、すなわち次々に行われるように記載しているが、解析は実質的に同時にスプリットされたり、実行されてもよい。
【誤訳訂正２１】
【訂正対象書類名】明細書
【訂正対象項目名】００７９
【訂正方法】変更
【訂正の内容】
【００７９】
図８に示す処理またはフローは、データモデルから比較的直接ソースコードファイルを生成する実施形態、すなわち図６に示す省略処理６０７に関する。本実施形態は、変数が始めに宣言され、オブジェクトおよびメソッドが変数情報に続くVBコードファイルのようなソースコードファイルを生成する。図８に示すソースコード作成処理８００は、データモデルの「パス」として別個のフェーズを示し、データモデルのデータ構造を３回の通過させる。第１のパスの処理において、変数および宣言情報を探している。第２のパスの処理において、オブジェクト作成情報を探し、第３のパス処理８００において、コードレンダリング情報を探している。
【誤訳訂正２２】
【訂正対象書類名】明細書
【訂正対象項目名】００８０
【訂正方法】変更
【訂正の内容】
【００８０】
第１のパスは、変数および他の宣言情報についてデータモデルをトラバースする処理８０２で始まる。このステップは、処理７００で作成されたデータモデルの第１のデータ構造を解析することから始まる。第１のデータ構造の解析処理において、宣言に関するソースコードファイルに書き込まれるべきソースコードの特定ラインがあるかどうか判断する。
【誤訳訂正２３】
【訂正対象書類名】明細書
【訂正対象項目名】００８１
【訂正方法】変更
【訂正の内容】
【００８１】
第１のデータ構造の解析が終了すると、処理８０４において、ソースコードファイルに変数および宣言情報に関するソースコードを生成し書き込む。ライタオブジェクトが呼び出され、それに与えられたテキストをソースコードファイルに単に書き込む。したがって、ライタオブジェクトへの呼び出しは、ソースコードファイル名のパラメタと変数または宣言情報に関する特定のプログラミング言語の文法のテキストストリングとの両方を含む。あるいは、テキストは、コピーされるか、または他の公知の手段を用いてソースコードファイルに書き込まれる。
【誤訳訂正２４】
【訂正対象書類名】明細書
【訂正対象項目名】００８２
【訂正方法】変更
【訂正の内容】
【００８２】
また、処理８０４において、ライタオブジェクトへ渡すべき適切な文法を決定しなければならない。本質的に、現在のデータ構造が、サーバ側制御を表す場合は、処理８０４において、それに対するソースコードを生成する。そうでなければ、処理８０４において、それをソースコードファイルにコピーする。本質的に、処理８０４は、３つのうちの１つを行い得る。生成処理８０４において、まず、ASP+ファイルにおける情報がリテラルテキストであるかどうか、したがってソースコードファイルに直接書き込まれるべきかどうかを判断してもよい。これは、HTMLタグがASP+ファイルに挿入される場合であり、この場合、ソースコード宣言は生成されない。その代わりに、情報は単に資源ファイルにコピーされる。処理８０４において、第２に、テキストが単純な翻訳、特定のソースコード言語の適切な文法フォームで１対１の対応を要求するかどうかを判断してもよい。このような処理８０４において、１対１対応を探すか、または、ページファクトリモジュールにハードコードされた場合は１対１翻訳を行い、結果情報をライタオブジェクトに供給する。第３に、１対１翻訳ができない場合は、処理８０４において、より複雑な翻訳が要求され、したがってモジュールまたは次の検索テーブル処理を呼び出し、ライタオブジェクトに渡されるべき適切なソースコード文法の作成処理を行う。典型的に、宣言情報の翻訳は直接的である。
【誤訳訂正２５】
【訂正対象書類名】明細書
【訂正対象項目名】００８３
【訂正方法】変更
【訂正の内容】
【００８３】
処理８０４において、第１のデータ構造のソースコードの生成および書き込みを行うと、テスト処理８０６において、データモデルに解析すべきデータ構造がまだ存在するかどうかを検知する。データモデルのこの第１のパス時に解析すべきデータ構造がまだある場合は、フローはYES枝に分岐して処理８００の始めに戻り、８０２において次のデータ構造に対してトラバースを行う。このような場合、次のデータ構造は、上記のように解析されソースコード文法を生成し、その文法コードを資源ファイルに書き込むライタオブジェクトを呼び出す。
【誤訳訂正２６】
【訂正対象書類名】明細書
【訂正対象項目名】００８５
【訂正方法】変更
【訂正の内容】
【００８５】
次に、ソースコード生成および書き込み処理８１０において第１のデータ構造を解析し、オブジェクト作成に関する情報がその第１のデータ構造にあるかどうかを判断する。このようなオブジェクト作成情報が第１のデータ構造に存在する場合、特定のプログラミング言語の文法が作成および生成されてソースコードファイルに書き込むライタオブジェクトに送信される。本質的に、処理８１０は、上記の処理８０４と同様であり、ここでは、データ構造が特定タイプの情報について解析され、その情報がデータ構造から収集されると、何らかの翻訳を行い、その情報に関するソースコード言語を作成する。情報がリテラルである場合、処理８１０において、その情報をソースコードファイルに直接送ることができる。同様に、その情報が簡単な翻訳を必要とする場合は、その簡単な翻訳は、プログラムにハードコードされるか、あるいは検索テーブルタイプ処理の一部であってもよい。また、さらに複雑な構造が要求される場合は、検索テーブルまたは他のモジュールを呼び出し、情報を処理し、ソースコードファイルに適切な文法ソースコードを作成する。
【誤訳訂正２７】
【訂正対象書類名】明細書
【訂正対象項目名】００８６
【訂正方法】変更
【訂正の内容】
【００８６】
処理８１０の次に、照会ステップ８１２は、データモデルに解析すべきデータ構造が存在するかどうかをテストする。オブジェクト作成のために解析すべきデータ構造がデータモデルに存在する場合、フローはYES枝に分岐し次のデータ構造をトラバースするトラバース処理８０８に進む。したがって、処理８０８において、次のデータ構造に戻り、処理８１０において、オブジェクト作成に関する情報のデータ構造を解析する。このオブジェクト作成情報は、上記のように、ライタオブジェクトに送信され、ソースコードファイルに追加することができるソースコードラインに翻訳される。ステップ８１２、８０８および８１０は、すべてのソースコードがオブジェクト作成に関し書き込まれるまで繰り返される。
【誤訳訂正２８】
【訂正対象書類名】明細書
【訂正対象項目名】００８７
【訂正方法】変更
【訂正の内容】
【００８７】
判断ステップ８１２が、オブジェクト作成のために解析すべきデータ構造がデータモデルにもう存在しないと判断すると、フローはNO枝に分岐し処理８１４に進み、第２のパスを終了する。この第３のパスは、データモデルのトップの処理８１４で始まる。処理８０８および８０２に関して上で述べたように、このトラバースステップは、まず、データモデル内の第１のデータ構造を取り出す。処理８１４でのデータモデル内の第１のデータ構造の取り出しの次に、処理８１６で、コードレンダリング情報のデータ構造を解析する。コードレンダリング情報は、ライタに送信されたり、ソースコードファイルに追加させるプログラミング言語での特定な文法に翻訳される。コードレンダリングメソッドは、ソースコードファイルの終わり近くにあり、したがって、第３のパスがオブジェクト作成パスの次に行われる。あるいは、コードレンダリングメソッドが同時スレッド処理に間に生成され、ソースファイルの終わりに追加される。
【誤訳訂正２９】
【訂正対象書類名】明細書
【訂正対象項目名】００８８
【訂正方法】変更
【訂正の内容】
【００８８】
処理８１６は、上記の処理８１０および８０４とかなり似ており、このソースコード情報は、データ構造にあるコードレンダリング情報から収集され得る。さらに、上記のように、情報は直接挿入されてもよく、１対１の割合で翻訳されてもいいし、より複雑なモジュールを用いてソースコードファイルの文法を生成することを要求してもよい。処理８１６の次に、検知処理８１８において、データモデルにデータ構造が残っていないかどうか判断する。
【誤訳訂正３０】
【訂正対象書類名】明細書
【訂正対象項目名】００８９
【訂正方法】変更
【訂正の内容】
【００８９】
処理８１８において、この第３のパス間に解析すべきデータ構造がまだ存在すると検知すると、フローはYES枝に分岐し、次のデータ構造のトラバースのために８１４に戻る。次のデータ構造が呼び出され、処理８１８において、次のデータ構造のコードレンダリング情報に関するソースコードの生成および書き込みを行う。
【誤訳訂正３１】
【訂正対象書類名】明細書
【訂正対象項目名】００９１
【訂正方法】変更
【訂正の内容】
【００９１】
上記の説明により明らかなように、数回のパスがデータモデルに対して行われる。これは、データモデルの各宣言が、ソースコードファイルの種々の場所に置かれるコードの特定のラインを要求することによる。しかし、ソースコードファイルを書き込む際、ライタオブジェクトは、ファイルに連続的に追加して順次書き込むことしかできず、予め書き込まれたコードライン間にソースコードラインを挿入できない。したがって、データモデルは、ソースコードの第１または上部、ソースコードの第２または中間部、およびソースコードファイルの第３または最後の部分に属する適切な情報を収集するために１回以上トラバースしなければならない。パスの数は、種々のコンピュータ言語に対し存在するコードの部分の数によって異なることが予想される。
【誤訳訂正３２】
【訂正対象書類名】明細書
【訂正対象項目名】００９２
【訂正方法】変更
【訂正の内容】
【００９２】
図９に示す処理またはフローは、データモデルから中間データ構造を生成し、次いで、中間データ構造からソースコードファイルを生成する実施形態、すなわち図６の処理６０７および６０８の別の実施形態に関する。本実施形態のフロー９００は、処理８０４、８１０および８１６が特定の言語のソースコードを生成し、処理９０４、９１０および９１６が、ソースコードを生成するのではなくて、中間データ構造の部分を生成することを除いて図８のフローと同様である。したがって、処理９０４、９１０および９１６が、データモデルでの情報に関する情報を生成する際に処理８０４、８１０および８１６と同様の処理を行う。しかし、生成された情報は包括的であり、後に異なるソースコード言語のソースコードファイルを作成するのに用いられることがある。
【誤訳訂正３３】
【訂正対象書類名】明細書
【訂正対象項目名】００９３
【訂正方法】変更
【訂正の内容】
【００９３】
データモデルに解析すべきデータ構造がもはや存在しないと判断されると、中間データ構造が完成し、フローは分岐して作成処理９２０に進む。作成処理において、中間データ構造からソースコードファイルを作成する。データ構造はソースコードファイルの包括的な記述であるので、処理９２０において中間データ構造を包括的な記述から特定の言語コードファイルに翻訳する。
【誤訳訂正３４】
【訂正対象書類名】明細書
【訂正対象項目名】００９４
【訂正方法】変更
【訂正の内容】
【００９４】
図１０は、ウェブページ開発者によって製作されたウェブページ資源ファイル、すなわちASP+ファイルの例である。ファイルは、ソースコードファイルを生成するための処理６００のサブジェクトである。図１０に示すASP+ページは、ライン１にディレクティブライン、ライン３から１３にサーバ側スクリプトブロックおよびライン１６から２１にサーバ側コントロール宣言ブロックを有する。ディレクティブラインは、どのようなタイプのソースコード言語を用い、それに一般的な記述を与える（そうでなければソースコードファイルのどのコードにもならない）かを判断するために処理６００において用いられる。コード宣言ブロック"<script runat=server>     </script>"内に書かれたすべてのコードは、概念的にページメンバ宣言（変数、プロパティ、メソッド）として扱われ、図１１に示すような生成ファイルの資源ファイルに直接挿入される。
【誤訳訂正３５】
【訂正対象書類名】明細書
【訂正対象項目名】００９５
【訂正方法】変更
【訂正の内容】
【００９５】
図１１は、図１０に示すASP+ファイルを用いてソースコードを作成する処理によって作成されたソースコードファイルの一例である。図１１の第１のラインは、ソースコードファイルによって作成しようとしているページクラスは、コンパイルされたとき、System.ASP.WebForms.Pageから引き継いでいることを示している。このクラスからの引継ぎは、ページクラスの多くの制御機能を提供するので重要なステップである。初期状態として、生成された資源ファイルは“System.ASP.WebForms.Page”ベースクラスのサブクラスである。任意には、開発者は、ディレクティブラインに与えられた"Inherits"属性を用いて代替クラスを特定することができる。
【誤訳訂正３６】
【訂正対象書類名】明細書
【訂正対象項目名】図面の簡単な説明
【訂正方法】変更
【訂正の内容】
【図面の簡単な説明】
【図１】  本発明のある実施形態におけるクライアントに表示するウェブページコンテンツを動的に生成するウェブサーバを示す。
【図２】  本発明のある実施形態におけるサーバ側制御オブジェクトを用いてクライアント側ユーザインタフェース要素の処理およびレンダリングのための処理のフローチャートを示す。
【図３】  本発明のある実施形態で用いるウェブサーバのモジュールの一例を示す。
【図４】  本発明のある実施形態における動的コンテンツファイル（例えば、ASP+ページ）の一例を示す。
【図５】  本発明のある実施形態を実行するのに有用なシステムの一例を示す。
【図６】  本発明のある実施形態におけるページオブジェクトの処理を表すプロセスフローチャートを示す。
【図７】  データモデルを作成するためのサーバ側アプリケーションの構文解析を表すプロセスフローチャートを示す。
【図８】  ソースコードファイルを作成するためのデータモデルのトラバースを表すプロセスフローチャートを示す。
【図９】  本発明の別の実施形態におけるソースコードファイルを作成するためのデータモデルのトラバースを表すプロセスフローチャートを示す。
【図１０】  本発明により構文解析され得るASP+ページの一例を示す。
【図１１】  図１０に示す初期ASP+ファイルで本発明を用いて作成されたソースコードファイルの一例を示す。
【符号の説明】
１００  クライアント
１０２  ブラウザ
１０４  ウェブページ
１０６  ユーザ名
１０８  追加
１１０  削除
１１２  HTTPレスポンス
１１４  HTTPリクエスト
１１６、３００  ウェブサーバ
１１８、３０４  HTTPパイプライン
１２０  ハンドラ
１２２  静的コンテンツ資源
１２４  動的コンテンツ資源
１２６  サーバ側制御クラスライブラリ
１２８  クライアント側制御クラスライブラリ
１３０、３３０  非UIサーバコンポーネント
３０８  ページファクトリ
３１０  ASP+リソース
３１２  制御クラスライブラリ
３１４  ページオブジェクト
３１８  テキストボックスオブジェクト
３２０、３２２  ボタンオブジェクト
５００  コンピュータ
５０２  ＣＰＵ
５０４  メモリ
５０８  ＲＯＭ
５１０  ＲＡＭ
５１２  ハードディスクドライブ
５１４  磁気ディスクドライブ
５１６  着脱可能記憶媒体
５１８  光ディスクドライブ
５１９  光ディスク
５２０、５２２、５２４  Ｉ／Ｆ
５２６  オペレーティングシステム
５２８  アプリケーションプログラム
５３０  プログラムモジュール
５３２  プログラムデータ
５３４  キーボード
５３６  マウス
５４０  シリアルポートインタフェース
５４２  モニタ
５４４  ビデオアダプタ
５４６  リモートコンピュータ
５４８  ＬＡＮ
５５０  ＷＡＮ
５５２  ネットワークアダプタ
５５４  モデム