(57)【要約】【課題】サーバ上の複数のドキュメントに対する表示フォーマッティングを自動的に生成する方法を提供すること。【解決手段】ランタイム時間中にクライアント上で複数のドキュメントを表示するために、サーバ上で前記複数のドキュメント用の表示フォーマッティング命令を自動的に生成する方法において、前記サーバが、複数のフォーマッティング制御と、それぞれが前記複数のフォーマッティング制御のうちの１つのフォーマッティング制御および前記複数のドキュメントのうちの１つのドキュメントを示す複数の参照を含む第１組のフォーマッティング命令を伴うファイルとを有する方法であって、（Ａ）前記ファイルを処理して、前記複数の参照のそれぞれを配置して、ツリーを形成するステップと、（Ｂ）前記複数の参照のうちの１つの参照に従って前記複数のフォーマッティング制御のうちの１つのフォーマッティング制御を実行して、前記複数の参照のうちの前記１つの参照で示される前記ドキュメントに基づいて、第２組のフォーマッティング命令を作成するステップと、（Ｃ）前記第２組のフォーマッティング命令を出力ファイルに組み込むステップと、（Ｄ）前記ツリー中の前記複数の参照のそれぞれに対して、ステップ（Ｂ）および（Ｃ）を反復するステップとを含み、前記複数の参照で示される前記複数のフォーマッティング制御のそれぞれが前記ランタイム時間の前に実行される方法。
2005506608.tif 000002
【特許請求の範囲】
【請求項１】
ランタイム時間中にクライアント上で複数のドキュメントを表示するために、サーバ上で前記複数のドキュメント用の表示フォーマッティング命令を自動的に生成する方法において、前記サーバが、複数のフォーマッティング制御と、それぞれが前記複数のフォーマッティング制御のうちの１つのフォーマッティング制御および前記複数のドキュメントのうちの１つのドキュメントを示す複数の参照を含む第１組のフォーマッティング命令を伴うファイルとを有する方法であって、
（Ａ）前記ファイルを処理して、前記複数の参照のそれぞれを配置して、ツリーを形成するステップと、
（Ｂ）前記複数の参照のうちの１つの参照に従って前記複数のフォーマッティング制御のうちの１つのフォーマッティング制御を実行して、前記複数の参照のうちの前記１つの参照で示される前記ドキュメントに基づいて、第２組のフォーマッティング命令を作成するステップと、
（Ｃ）前記第２組のフォーマッティング命令を出力ファイルに組み込むステップと、
（Ｄ）前記ツリー中の前記複数の参照のそれぞれに対して、ステップ（Ｂ）および（Ｃ）を反復するステップと
を含み、前記複数の参照で示される前記複数のフォーマッティング制御のそれぞれが前記ランタイム時間の前に実行される方法。
【請求項２】
前記複数のフォーマッティング制御が、前記ツリー中のそれらの深さに従って、深さ優先の順序で実行される、請求項１に記載の方法。
【請求項３】
前記第１組のフォーマッティング命令と前記第２組のフォーマッティング命令が、両方ともマークアップ言語による、請求項１ないし２のいずれかに記載の方法。
【請求項４】
前記ツリー中の前記複数の参照のそれぞれを実行後、前記第１組のフォーマッティング命令から前記複数の参照を取り除くステップをさらに含む、請求項１ないし３のいずれかに記載の方法。
【請求項５】
フォーマッティング命令が自動生成タイプまたはユーザ生成タイプのものであり、前記第１組のフォーマッティング命令が、それらの命令中で示される前記自動生成タイプおよびユーザ生成タイプを有し、ステップ（Ｃ）が、
（Ｉ）前記第２組のフォーマッティング命令のうちの自動的に生成されたフォーマッティング命令を前記自動生成タイプと指定するステップと、
（ＩＩ）前記第２組のフォーマッティング命令のうちのユーザによって生成されたフォーマッティング命令を前記ユーザ生成タイプと指定するステップと、
（ＩＩＩ）自動的に生成されたフォーマッティング命令およびユーザによって生成された命令を、フォーマッティング命令のタイプおよび前記第１組のフォーマッティング命令に従って前記ファイル中に挿入するステップと
を含む、請求項１ないし４のいずれかに記載の方法。
【請求項６】
ステップ（ＩＩＩ）が、
（ａ）前記第１組のフォーマッティング命令の一部分が、前記第２組のフォーマッティング命令の一部分に対応するかどうかを判定するステップと、
（ｂ）前記第１組のフォーマッティング命令に対応しない前記第２組のフォーマッティング命令のすべての部分を挿入するステップと、
（ｃ）前記第１組のフォーマッティング命令の一部分に対応する前記第２組のフォーマッティング命令の部分が前記自動生成タイプのものである場合、前記第１組のフォーマッティング命令の前記対応する部分を前記第２組のフォーマッティング命令の対応する部分で置き換えるステップと、
（ｄ）前記第１組のフォーマッティング命令の一部分に対応する前記第２組のフォーマッティング命令の部分が前記ユーザ生成タイプのものである場合、前記第１組の命令の前記対応する部分を前記第２組のフォーマッティング命令の対応する部分のフォーマットに従って再フォーマッティングするステップと
を含む請求項５に記載の方法。
【請求項７】
ステップ（ｄ）が、
（ｉ）前記ユーザ生成タイプの前記第１組のフォーマッティング命令中の対応する部分と、前記ユーザ生成タイプの前記第２組の命令中の対応する部分の間の対応関係を作成するステップと、
（ｉｉ）前記対応するユーザ生成タイプの第１組のフォーマッティング命令の順序を、前記対応するユーザ生成タイプの第２組のフォーマッティング命令の順序に対応させるステップと
を含む、請求項６に記載の方法。
【請求項８】
前記ファイルが複数のファイルのうちの１つであり、さらに
（Ｅ）ステップ（Ａ）以前に、前記複数のファイルのうちの１つのファイルの変化を検出するステップと、
（Ｆ）前記複数のファイルのそれぞれについてステップ（Ａ）ないし（Ｄ）を反復するステップと
を含む、請求項１ないし７のいずれかに記載の方法。
【請求項９】
請求項１ないし８のいずれかに記載の方法を実行するサーバ・コンピュータ・システム。
【請求項１０】
コンピュータ読取り可能な記憶媒体上に記憶され、コンピュータ・システム上で実行されるとき、請求項１ないし８のいずれかに記載の方法を実行するよう前記コンピュータ・システムに命令するコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ウェブ・ページのオーサリング支援用のツールを対象としており、詳細には、ウェブ・ページのための表示フォーマッティング・コードを自動的に生成するためのツールを対象とする。
【背景技術】
【０００２】
World Wide Web（ＷＷＷ）の普及につれて、ウェブ・ページの迅速な設計および生成が必要になっている。ウェブ・ページは、速やかに作成する必要があるとはいえ、複雑さと柔軟さを保つ必要がある。入力パラメータに基づいてHypertext Markup Language（ＨＴＭＬ）などのマークアップ・コードを自動的に生成することによってウェブ・ページの作成を支援するウェブ・ページ・オーサリング用のツールがいくつかある。マークアップ・コードは、コードによって識別されるデータをどのようにして提示し、表示するかという指示を伝える。これらのツールにより、ページ全体を再作成する必要なしにウェブ・ページのコンテンツを変更することが可能になる。この変更はしばしば、ウェブ・ページとは別に変化するコンテンツを記憶し、マークアップ・コード中に変化するコンテンツの位置を指すタグを含めることによって実現される。次いで、別々に記憶された変化するコンテンツに対して作成され、組み込まれたタグおよびマークアップによって指定された制御に従って、ウェブ・ページを処理することができる。
【０００３】
Microsoft社は、マークアップ・コード・ファイル中に挿入することができ、ランタイム（run-time）以前のページの設計時に処理することができるＡｃｔｉｖｅＸ  DesignTime Controls（ＤＴＣs）を提供している。これについては、米国特許第６，０２５，１１９号を参照されたい。しかしながら、ＤＴＣ処理は、マークアップ・コード・ファイルがその中で作成され、しばしばオーサリング・クライアント上に配置されるエディタに限定される。クライアント上の指定されたエディタ中で処理を行う必要がないようにオーサリングを処理から切り離すことによって、多くの操作をより効率的に実施することができる。
【０００４】
ＤＴＣは、マークアップ・コード・コメントに基づいており、このマークアップ・コード・コメントは、制御を囲むために使用される。残念ながら、マークアップ・コード・コメントは、互いにネストすることができず、そのため、ページ・レイアウトの作成におけるＤＴＣの使用が制限される。すなわち、ＤＴＣを使用し、そのＤＴＣ中に他のＤＴＣを埋め込むことによってページ・レイアウトを制御することはできない。ページ・レイアウト機能を提供するためには、別のツールをＤＴＣと組み合わせて使用しなければならない。
【０００５】
ＤＴＣには、その利用がMicrosoftプラットフォームだけに限定されるという欠点がある。一方、ＪＳＰ（Java（Ｒ）ServerPage）のｔａｇｌｉｂは、同様な機能を提供するが、Ｊａｖａ（Ｒ）言語に基づいており、プラットフォーム特有ではない。しかしながら、ｔａｇｌｉｂは、要求時にのみ実行され、ｔａｇｌｉｂプロセッサがウェブ・アプリケーション・サーバの一部であることが必要となる。さらに、ｔａｇｌｉｂは、動的なコンテンツを生成するので、サーバの処理の負荷が増大する。
【特許文献１】
米国特許第６，０２５，１１９号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、コードのライフサイクルの様々な段階において、ウェブ・ページの表示フォーマッティング・コードを生成することを可能とし、ウェブ・ページ・レイアウトに使用することができる、ウェブ・ページのオーサリング支援の方法を提供する。
【課題を解決するための手段】
【０００７】
本発明は、請求項１で請求される、サーバ上の複数のドキュメントに対する表示フォーマッティングを自動的に生成する方法を提供する。本発明は、請求項９の対応するサーバ・システムおよび請求項１０のコンピュータ・プログラム製品を提供する。
【０００８】
本発明は、ウェブ・ページのコンテンツ・ソースをウェブ・ページから切り離すことを可能とし、ソースの変更に応答して、ウェブ・ページの速やかで自動的な更新を実現する。本発明の制御は、互いに埋め込むことができ、これによって、複雑なウェブ・ページを容易に作成することが可能になる。
【０００９】
本発明を、図面に関連して以下に説明する。
【発明を実施するための最良の形態】
【００１０】
図１およびそれに関連した説明は、本発明を実施できる適切なコンピューティング環境の一例を示すものである。本発明の実施形態は、パーソナル・コンピュータ上で実行されるコンピュータ・プログラムのコンピュータで実行可能な命令という一般的な文脈で説明するが、本発明はまた、他のプログラム・モジュールと組み合わせて実施することもできる。
【００１１】
一般に、プログラム・モジュールは、個々のタスクを実行し、個々の抽象データ型を実施するルーチン、プログラム、コンポーネント、データ構造などを含む。さらに、本発明はまた、ハンドヘルド装置、マルチプロセッサ・システム、マイクロプロセッサ・ベースもしくはプログラム可能な大衆消費電子製品、ミニコンピュータ、メインフレーム・コンピュータ、およびローカルのメモリ記憶装置にもリモートのメモリ記憶装置にもプログラム・モジュールを配置できる分散コンピューティング環境を含めて、その他のコンピュータ・システム構成を使用して実施することもできる。
【００１２】
図１を参照すると、本発明は、処理装置２１０、システム・メモリ２２０、およびシステム・メモリ２２０を含めた様々なシステム・コンポーネントを処理装置２１０に結合するシステム・バス２３０を含めて、従来技術によるパーソナル・コンピュータ２００の形式の汎用コンピューティング装置内で実装することができる。このシステム・メモリ２２０は、読出し専用メモリ（ＲＯＭ）２４０およびランダム・アクセス・メモリ（ＲＡＭ）２５０を含む。
【００１３】
（例えば、スタートアップ時に）パーソナル・コンピュータ２００内の要素間で情報を転送する助けをする基本ルーチンを含む基本入出力システム（ＢＩＯＳ）２６０が、ＲＯＭ２４０に記憶されている。パーソナル・コンピュータ２００はさらに、ハード・ディスク（図示せず）からデータを読み取り、またはそれにデータを書き込むためのハード・ディスク・ドライブ２７０、着脱可能な磁気ディスク２９０からデータを読み取り、またはそれにデータを書き込むための磁気ディスク・ドライブ２８０、およびＣＤ  ＲＯＭや他の光メディアなど着脱可能な光ディスク２９２からデータを読み取り、またはそれにデータを書き込むための光ディスク・ドライブ２９１を含み、これらはすべて、それぞれインターフェース２９２、２９３、２９４によりシステム・バス２３０に接続される。これらのドライブおよび関連するコンピュータ読取り可能な媒体は、パーソナル・コンピュータ２００用のコンピュータ読取り可能な命令、データ構造、プログラム・モジュールその他のデータの不揮発性記憶を提供する。本明細書に記載の環境の例では、ある種のディスクを使用しているが、データを記憶するための他の種類のコンピュータ読取り可能な媒体も使用できることが、当業者には理解されよう。
【００１４】
オペレーティング・システム２９５、１以上のアプリケーション・プログラム２９６、その他プログラム・モジュール２９７、およびプログラム・データ２９８を含めて、いくつかのプログラム・モジュールは、ディスク２９０、２９２、ＲＯＭ２４０、またはＲＡＭ２５０に記憶することができる。入力装置（例えば、キーボード２０１、ポインティング装置２０２、マイクロフォン、ジョイスティックなど）を介して、コマンドおよび情報をパーソナル・コンピュータ２００に入力することができる。これらの入力装置は、シリアル・ポート・インターフェース２０６、パラレル・ポート、ゲーム・ポート、またはuniversal serial bus（ＵＳＢ）を介して、処理装置２１０に接続することができる。モニタ２０７、またはその他の表示装置も、ビデオ・アダプタ２０８などのインターフェースを介して、システム・バス２３０に接続される。
【００１５】
パーソナル・コンピュータ２００は、別のパーソナル・コンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア装置、その他共通ネットワーク・ノードなど１以上のリモート・コンピュータ２０９への論理接続を使用して、ネットワーク環境中で動作することができる。図１に示す論理接続は、ローカル・エリア・ネットワーク（ＬＡＮ）２１２および広域ネットワーク（ＷＡＮ）２１３を含む。かかるネットワーキング環境は、オフィス、企業規模のコンピュータ・ネットワーク、イントラネット、およびインターネットでは一般的である。
【００１６】
ＬＡＮネットワーキング環境中で使用するとき、パーソナル・コンピュータ２００は、ネットワーク・インターフェースまたはアダプタ２１４を介して、ローカル・ネットワーク２１２に接続される。ＷＡＮネットワーキング環境で使用するとき、パーソナル・コンピュータ２００は一般に、シリアル・ポート・インターフェース２０６を介してシステム・バス２３０に接続されたモデム２１５、またはインターネットなど広域ネットワーク２１３上で通信を確立するためのその他の手段を含む。本発明の動作は、例えば一方がサーバとして、他方がクライアントとして（図４参照）機能する２台のコンピュータ２００、２０９の間で分散することができる。各コンピュータ２００、２０９（クライアントおよびサーバ）についての本発明の動作は、アプリケーション・プログラム２９６、その他のプログラム・モジュール２９７として、各コンピュータ２００、２０９のＲＡＭ２５０にあるいはディスク２７０、２８０、２９１の１つに記憶することができる。図に示したネットワーク接続は例であり、コンピュータ間で通信リンクを確立するための他の手段を使用することもできることが理解されよう。
【００１７】
図２は、コンテンツ・ソースからマークアップ・コードを自動的に生成することによって、ウェブ・オーサリングを支援する方法１０を示す流れ図である。マークアップ・コードという用語は、ウェブ・ページのフォーマッティングおよび表示で使用される任意のコードを意味し、表示フォーマッティング命令という用語と区別なく使用することができる。マークアップ・コードは、ＨＴＭＬ、Java（Ｒ） Server Page（ＪＳＰ）、Active Server Page（ＡＳＰ）、Extensible MarkupLanguage（ＸＭＬ）などのマークアップ言語によるものでよい。簡単な入力パラメータに基づいて、マークアップ・コードを自動的に生成する方法１０により、複雑なウェブ・ページを作成する。方法１０は、ウェブ・ページの基礎となるコード中のこれらのコンテンツ・ソースを参照し、表示の実行前にこのコードを処理することによって、ウェブ・ページから切り離すことのできるソースからコンテンツを組み込む方式を実現する。
【００１８】
ステップ１２で、第１組のマークアップ・コードが作成され、これがウェブ・ページの基礎として機能する。この第１組のマークアップ・コードには、ステップ１４でコード中に挿入されるweb authoring control（ＷＡＣ）タグが含まれる。ＷＡＣは、表示のためにコンテンツ・ソースをフォーマットする動作、および任意選択でフォーマット済みのコンテンツ・ソースをウェブ・ページに挿入する動作を定義する。ＷＡＣタグは、タグ中で参照されるコンテンツ・ソースをどのようにフォーマットし、第１組のコード中に挿入すべきかを指定する。タグ中で参照されるコンテンツ・ソースは、第１組のコードが属する関連するドキュメントおよびリソースを含むプロジェクトの一部をなす。ＷＡＣタグ中の入力パラメータ値を設定し、次いでプロセッサを実行することにより、ＷＡＣタグが参照するコンテンツ・ソースに対するマークアップ・コードを生成する。ＷＡＣの実行により、パラメータ化したマクロと同様な結果が生じる。
【００１９】
例えば、サイト・マップ・リソースと、このサイト・マップを読み取りナビゲーション制御を生成しそれぞれ個々のウェブ・ページに挿入するＷＡＣとを作成することにより、ナビゲーション制御をウェブ・サイトのすべてのページに追加することができる。すなわち、ナビゲーション制御コンテンツ用のＷＡＣタグをウェブ・ページに挿入することによって、ナビゲーション制御用のマークアップ・コードを自動的に生成しそのページに追加することができる。かかる結果は以前にはしばしば、マークアップ・コード中の既存のナビゲーション制御をそれぞれ個々のページに追加するためのコピーおよび貼り付け動作によって実現されていた。
【００２０】
別の例として、データベース・テーブル中の各レコード、およびこれらのレコードにリンクするインデックス・ページをウェブ・ページに表示する場合、ＷＡＣを使用して各レコードおよびインデックス・ページ用のマークアップを生成するプロセスを簡略化することができる。インデックス用とレコード用の合わせて１対のＷＡＣを使用することによって、インデックスおよびレコードをもつウェブ・ページを作成することができる。インデックスおよびレコードの表示に使用されるウェブ・ページ中に、これらのＷＡＣ用のタグを組み込むことができる。
【００２１】
ステップ１６で、ＷＡＣ入力パラメータの値をＷＡＣタグ中で設定する。第１組のマークアップ・コードの作成、ＷＡＣタグの挿入、およびパラメータ値の設定（ステップ１２ないし１６）は、すべて標準的なマークアップ・コード・エディタで実施することができる。
【００２２】
ステップ１８で、ＷＡＣタグによって参照されるコンテンツ・ソースから第２組のマークアップ・コードを生成する。ＷＡＣは、この生成プロセス、すなわち、どのようにしてコンテンツ・ソースを読み取り、マークアップ・コード中にフォーマットして入れるかを定義する。
【００２３】
ウェブ・ページ・オーサリングのライフ・サイクルは、作成、保存、編集、プレビュー、チェックイン、および発行を含めて、定義された１組のコンテキストを有する。ここで、チェックイン段階および発行段階は、多分オーサリング・サーバ上で行われる。ライフ・サイクル中のこれらの段階は、多分オーサリング・サーバ上でＷＡＣの実行を開始するトリガ・ポイントとして使用することができる。例えば、プロジェクト中の１つのドキュメントが変化し、チェックインされるとき、この変化の影響を受けるすべてのドキュメントを再処理して、これらの変化を含めることができる。これによって、静的コンテンツを使用してしかも容易に変更できるようにすることが可能となり、ＷＡＣをウェブ・ページのライフ中の任意の時点で処理することが可能になる。静的コンテンツの使用により、サーバの処理の負荷が減り、検索エンジンによってウェブ・ページにインデックス付けすることが可能になる。
【００２４】
マークアップ・コードを生成するためのＷＡＣの処理は、ウェブ・ページのライフ・サイクル中の様々な段階で行うことができる。これにより、入力パラメータ、リソース、またはコンテンツ・ソースの全体を変更するとき、それを再処理することができるので、ウェブ・ページの保守が簡単になる。ナビゲーション制御の上記の例では、サイト・マップが変化するとき、それぞれ個々のページを手作業で変更する必要なしに、ナビゲーション制御ソースを参照するＷＡＣタグを含むウェブ・ページを再処理することができる。
【００２５】
ステップ２０で、コンテンツ・ソースから生成される第２組のマークアップ・コードを、第１組のマークアップ・コード中に組み込む。任意選択で、第２組のマークアップ・コードを別の出力ファイルに組み込むこともできる。ステップ２２で、この結合された１組のマークアップ・コードが保存される。ステップ２４で検索および表示の要求を受け取ると、この結合されたマークアップ・コードを要求側に送る。
【００２６】
第１組のマークアップ・コードに組み込む前に、任意選択で第２組のマークアップ・コードを編集することができる。この時にユーザによって行われるどの変更および追加も、ユーザによって生成されたものとマークされる。
【００２７】
図３は、図２のうちのマークアップ・コード１８を生成するステップをより詳細に示す流れ図である。ＷＡＣプロセッサは、ステップ３０で第１組のマークアップ・コードを読み取り、ステップ３２でこのコード中のすべてのＷＡＣタグの位置を見つける。第１組のマークアップ・コード中のすべてのＷＡＣタグからツリー構造を形成する。ＷＡＣの位置の突き止めおよびツリー構造の形成は、既知の技術に従って実施することができる。例えば、Ｊａｖａ（Ｒ）やＸＭＬを使用して実施されるＷＡＣでは、Document Object Model（ＤＯＭ）規格に従ってツリーを形成することができる。このツリーは、処理する必要があるすべてのＷＡＣ、および第１組のコード中で発生する順序を設定する、第１組のマークアップ・コードに対するマップとして機能する。ＷＡＣタグを内蔵できる場合には、このツリーを用いると、ＷＡＣの深さ優先の順序処理が可能になり、ＷＡＣ処理の結果の相対配置が保持される。
【００２８】
ステップ３４で、具体的なＷＡＣタグに対するパラメータ入力が、ＷＡＣプロセッサに渡され、次いでステップ３６で、ＷＡＣが実行される。複数のＷＡＣが単一の第１組のコード内に見つけられると、個々のＷＡＣについてステップ３４および３６がそれぞれ反復される。すべてのＷＡＣの実行が完了すると、ステップ２０で、処理結果が第１組のコードに組み込まれる。
【００２９】
図４は、コンテンツ・ソース６８から自動的にマークアップ・コードを生成することにより、ウェブ・オーサリングを支援するシステム５０を示すシステム図である。図に示すシステム５０は、クライアント５４およびサーバ５２を使用し、ここでは、ウェブ・ページのオーサリングが、クライアント５４上で行われ、ＷＡＣの実行がサーバ５２上で行われる。
【００３０】
クライアント５４は、標準のマークアップ言語エディタ６２を含む。エディタ６２は、第１組のマークアップ・コード６４の作成に使用される。この第１組のコード６４は、ウェブ・ページの基礎となる。第１組のコード６４の内部には、第１組のコード６４の外部のコンテンツ・ソース６８を指定するＷＡＣへのタグ６６がある。コンテンツ・ソース６８および第１組のコード６４は、より大きなプロジェクトの一部とすることもできる。タグ６６中で示されるＷＡＣは、どのようにしてコンテンツ・ソース６８を処理し、また任意選択で第１組のコード６４に組み込むべきかを指定する。
【００３１】
クライアント５４は、例えば、あるプロジェクト中のリソースを制御するためのプロジェクト・マネージャや、リソースを処理するためのビルド・プロセッサなど、その他の開発ツールを含むことができる。クライアント５４は、プロジェクト・リソースのバージョンを記憶し、それらへの同時アクセスを制御するための、ソース・コード制御システムを含むこともできる。
【００３２】
サーバ５２は、コンテンツ・ソース６８および第１組のコード６４が属するプロジェクトのすべてのドキュメントを記憶するためのリポジトリを含む。このリポジトリ、すなわちウェブ・ページ記憶装置５８は、１以上のクライアント５４からプロジェクトに関連するドキュメントを受け取る。複数のクライアント５４がこのデータを共用している場合、記憶装置５８は、ドキュメントの編集能力を一時に単一のクライアント５４だけに制限するドキュメント制御メカニズムを含むことができる。第１組のコード６４などのドキュメントは、作成後、クライアント５４からの関連するドキュメント（すなわちコンテンツ・ソース６８）と共にウェブ・ページ記憶装置５８に記憶される。サーバ５２は、記憶装置５８に記憶されているウェブ・ページを閲覧することを求める要求を処理する要求発行プロセッサ６０も含む。
【００３３】
サーバ５２は、ＷＡＣ定義記憶装置７０に記憶されているＷＡＣ定義に従って、記憶装置５８内のドキュメント中のＷＡＣタグを処理するためのＷＡＣプロセッサ５６を有する。ドキュメント中のＷＡＣタグは、ＷＡＣ識別子すなわち名称に対する参照、ならびに処理を制御するためのデータをＷＡＣに供給するパラメータを含む。ＷＡＣプロセッサ５６は、プロジェクトのドキュメントを更新するとき、クライアント５４中のビルド・プロセッサから呼び出すことができる。
【００３４】
ＷＡＣ定義記憶装置７０に記憶されている各ＷＡＣ定義は、３つの構成要素、すなわち識別子７２、パラメータ７４、および制御アクション７６を有する。処理のためにサーバ５２に保存されている第１組のコード６４からＷＡＣタグを読み取るとき、ＷＡＣ識別子およびパラメータは、ＷＡＣの実行中に使用すべき別々の要素として記憶される。識別子７２は、ある種のＷＡＣに特有の一意の識別子である。パラメータ７４は、基本的なフォーマッティング情報を含み、その他のＷＡＣへの参照を含むこともできる。制御アクション７６は、パラメータ７４中で供給される情報に従って、マークアップを生成する。制御アクション７６によって生成されるマークアップは、ＷＡＣタグ６６中で参照されたドキュメント中に挿入されるキャラクタ・シーケンスである。このキャラクタ・シーケンスは、第１組のコード６４の表示に関連してどのようにコンテンツ・ソース６８を表示すべきかを示す。すなわち、制御アクション７６は、２組のコードのシームレスな表示ができるように、すなわちコンテンツ・ソース６８を第１組のコード６４に組み込むことができるようにするために、コンテンツ・ソース６８を、第１組のコード６４のマークアップ言語に、例えばＨＴＭＬに変換する。
【００３５】
制御アクション７６を用いると、パラメータ７４を設定する助けとなるインターフェースを提示することによりウェブ・オーサリングが簡単になる。クライアント側５４のエディタ６２は、例えばプロパティ・シートを介した識別子７２によるＷＡＣの参照を、任意選択のカスタム・プロパティ・エディタとともに含むことができる。制御アクション７６を使用して、リストに行番号を追加するなどの退屈な作業を自動化することができ、またユーザが複雑なＨＴＭＬまたはＪａｖａ（Ｒ）スクリプトを書き込むことができるという必要をなくすことができる。
【００３６】
図５は、図４のＷＡＣプロセッサ５６を示すシステム・アーキテクチャ図である。ＷＡＣプロセッサ５６は、処理し、第１組のコード６４を含むファイルに含めるべきドキュメントを指定するパラメータを受け入れる。ＷＡＣプロセッサ５６はまた、第１組のコード６４のライフ・サイクル段階に関するパラメータ、および出力前に第１組のコード６４を更新すべきか、それともそれからＷＡＣタグを取り除くべきかなど他の処理オプションも受け取る。
【００３７】
ＷＡＣプロセッサ５６中のドキュメント読取り機構８０は、現在のプロジェクトから第１組のコード６４を読み取る。第１組のコード６４を含むファイルを読み取ると、ドキュメント読取り機構８０は、読取りファイルをドキュメント・パーサ８２に送り、そこで、読取りファイルのコンテンツからツリー構造が形成される。
【００３８】
ドキュメント更新機構８４は、構文解析されたファイル中でＷＡＣを更新する。ドキュメント更新機構８４の実行は、入力パラメータを使用することによって抑制することができる。これは、ファイルがすでに更新を完了しているが、発行前にＷＡＣタグを取り除く必要があるときに役に立つ。ドキュメント更新機構８４は、ツリーをトラバースし、ツリー中のタグ付けされた各ＷＡＣを実行する。実行済みの各ＷＡＣは、ツリーの一部となり実行される追加のＷＡＣを含むことができるマークアップ・コードを生成する。ツリーは、ファイル中のＷＡＣの順序に相当する深さ優先の順序で一度トラバースされる。ドキュメント更新機構８４はまた、第１組のコード６４からＷＡＣタグを抽出し、各タグからのＷＡＣ識別子およびパラメータを一時的に記憶する。
【００３９】
ドキュメント更新機構８４中の制御ローダ９０が、一時的に記憶されたＷＡＣ識別子を取得する。この制御ローダ９０は、ＷＡＣ定義を使ってＷＡＣ定義記憶装置７０中を探索して、保持されているものと同じ識別子７２をもつＷＡＣ定義を見つける。一致する識別子を見つけると、制御ローダ９０は、ＷＡＣ定義のインスタンスを作成する。ＷＡＣインスタンスは、性能を改善するためにプールし再利用することができる。
【００４０】
制御実行機構９２が、保持されたパラメータを取得し、これらのパラメータを制御ローダ９０によって作成されるＷＡＣインスタンスのパラメータ７４の定義のプロパティとして設定する。次いで制御実行機構９２は、ＷＡＣインスタンスを実行し、第２組のコードなど更新済みのマークアップ・コードを作成する。ＷＡＣインスタンスは、その実行時にプロジェクト・リソースにアクセスして、ＷＡＣタグから参照される、サーバ５２上またはそれ以外の場所に記憶されているコンテンツ・ソースからコンテンツを取得する。
【００４１】
制御実行機構９２中のリソース・マネージャ９６が、実行中のＷＡＣインスタンスに、コンテンツ・ソースなどのプロジェクト・リソースへのアクセスを提供する。ＷＡＣインスタンスは、プロジェクト・リソースを作成し、読み取り、更新し、削除することができる。例えば、バナーまたはナビゲーション・バーを生成するＷＡＣは、サイト・マップ・プロジェクト・リソースにアクセスすることができる。また、データベースからページを生成するＷＡＣは、既存の１組のページを削除し、新しい１組のページを作成することもできる。
【００４２】
ドキュメント更新機構８４中のコンテンツ・マージ機構９４が、更新済みのマークアップ・コードを取得し、それをファイルにマージする。すなわち、コンテンツ・マージ機構９４は、自動的に生成されたか、それともユーザによって生成されたかというコードのタイプに従って、第２組のコードを第１組のコード６４にマージする。これらのコードのタイプは互いに区別され、それによって第２組のコードの第１組６４へのマージが容易になる。ユーザによって生成されたコードは、ユーザによって生成されたものとマークが付けられ、ユーザによって生成されていない残りのコードはどれも、自動的に生成されるものと想定される。第２組のコードは、自動的に生成されまたはユーザによって生成される、新しいマークアップ・コードから形成されるが、第１組のコード６４は以前のコードを含む。２組のコードをマージする前に、対応付けを行って、２組の一部分が相互に関連するかどうかを判定する。かかる対応する部分のどれに対しても注記が行われる。
【００４３】
（第１組のコード６４中の）自動的に生成された以前のマークアップ・コードは、ファイルから取り除かれ、第２組のコードからの自動的に生成された新しいマークアップ・コードで置き換えられる。自動的に生成され、またはユーザによって生成された、第１組のコード６４の一部分と対応しない新しいマークアップ・コードは、第１組６４中に挿入される。新しいマークアップ・コードがユーザからのマークアップを含む場合、一致するコードがあるかどうか、以前のマークアップ・コードを検査する。以前のユーザ・マークアップ・コードを対応する新しいユーザ・マークアップ・コードの上に保持することもできる。これによって、例えば、現在のプロジェクトのドキュメントの変更に応答して、オリジナル・ユーザが、保持すべきでありＷＡＣの自動的な実行中に上書きすべきではないフォーマットに変更を加えることが可能になる。あるいは、パラメータ中でそのように指定することにより、以前のユーザ・コードを対応する新しいユーザ・コードで置き換えることもできる。このユーザ・マークアップ・コードは、以前のマークアップ・コードと新しいマークアップ・コードの間の対応付けを行うためにマージ・プロセス中で使用される名称の属性を有することができる。対応する新しいユーザ・マークアップ・コードは、以前のユーザのマークアップ・コードと異なる順序となることができ、この場合、コンテンツ・マージ機構９４モジュールが、以前のユーザのマークアップ・コードを順序変更することができる。これにより、ＷＡＣが柔軟なページ・レイアウトを実施することが可能となる。例えば、ページ・レイアウトが主題およびサイドバーを定義し、サイドバーの位置がＷＡＣのパラメータによって指定されるものと想定する。その場合、位置を変更するとき、コンテンツ・マージ機構９４は、レイアウト領域を正しく順序変更する。
【００４４】
ＷＡＣプロセッサ５６中の制御ストリッパ８６が、ＷＡＣタグを第１組のコードから取り除く。ＷＡＣプロセッサ５６は、通常ＷＡＣタグを保持するが、ＷＡＣタグ中のＷＡＣプロセッサ５６への入力パラメータを指定することにより、任意選択でＷＡＣタグを取り除くことができる。第１組のコード６４からＷＡＣタグを取り除くことにより、ドキュメント・サイズを小さくすることができ、またデータベースのパスワードなど取扱いに慎重を要するパラメータ情報を取り除くこともできる。
【００４５】
ＷＡＣプロセッサ５６中のドキュメント・ライタ８８が、マージされたコードを出力ファイルに書き込む。マージ機構の出力は、オリジナル・ファイルを上書きすることができ、また異なるファイルに書き込むこともできる。マージされたコードは、制御ストリッピングが望ましいことがあるので、発行時に異なるファイルに書き込むことができる。
【００４６】
ＷＡＣ処理を１つの位置で行うこともでき、この場合、サーバ機能およびクライアント機能が１つのコンピュータ（図示せず）上に配置される。この場合、マークアップ・コード・ファイルは、コードを開発するために使用するコンピュータ上で完全に処理することができる（すなわち、ＷＡＣの実行はクライアント上で行われる）。処理後、表示要求を処理するために、第１組のコードを伴うファイルを標準のウェブ・サーバに発行することができる。コンテキスト・パラメータを入力としてＷＡＣプロセッサに送ることにより、この処理を制御することができる。このコンテキスト・パラメータは、ドキュメントのライフ・サイクル段階（すなわち、作成、保守など）を指定する。開発コンピュータ上に存在するＷＡＣプロセッサは、コードを完全に処理して、ウェブ・サーバが要求を受け取るのに応答して表示できるように準備する。
【００４７】
これまでに記載した本発明の実施形態は、オーサリングの完了時に処理されていたが、ＷＡＣはまた、ウェブ・ページを表示するための要求を受け取ったとき実行時に処理することもできる。
【００４８】
ＷＡＣを使用して、ウェブ・ページ上のコンテンツを定期的に自動的にリフレッシュすることができる。例えば、ウェブ・サイトが、毎日更新されるデータベースに記憶されている製品情報を伴う製品カタログを含む場合、ＷＡＣは、データベースの変更を反映するようにウェブ・ページを更新する際に支援することができる。ウェブ・サイトのウェブ・ページ中のＷＡＣをそのデータベースにリンクし、ＷＡＣを使用してウェブ・ページ中にデータベースの情報を抽出することができ、このウェブ・ページが次いでウェブ・サーバに発行される。データベースをそれぞれ更新するごとに、ＷＡＣプロセッサを使用して、インデックス・ページ、および製品ページのすべてをデータベースから再生成することができる。生成されたドキュメントは、さらなる動的コンテンツがウェブ・ページに含まれない場合はＨＴＭＬ形式、追加の動的コンテンツが必要な場合は例えばＪＳＰ形式とすることができる。ＷＡＣを使用してあまり変化することのない（すなわちどちらかというと静的な）コンテンツを生成することにより、必要な処理量を低減することができる。ＪＳＰをＷＡＣなしに使用する場合、データベースは、実行時に要求されるページごとにアクセスされ、そのため、性能が低下し、許容可能な性能を維持するためにより多くのコンピュータが必要になる。ＷＡＣを使用することにより、実行時処理が、しばしば変化する動的なコンテンツを生成することに限定される。
【００４９】
本発明の可能な一実施形態は、document type definition（ＤＴＤ）を使用するＷＡＣタグ、ＸＭＬファイル中で使用することができるタグを定義するルール、およびこれらのタグの有効な値を指定するものである。ＷＡＣの定義は、ＷＡＣをウェブ・ページ中に挿入するためのタグを指定するＸＭＬスキーマ、ＷＡＣを開発するためのＪａｖａ（Ｒ）ライブラリ、およびＷＡＣを含むウェブ・ページ中でコードを生成するためのＪａｖａ（Ｒ）プロセッサを使用することができる。ＸＭＬスキーマは、データの要素および属性ならびに要素間の関係を定義する、データ・モデルを表現するシステムである。識別子７２、パラメータ７４、および制御アクション７６は、要素として実装することができ、これらの要素は、開始タグおよび終了タグ、ならびにこれらのタグ間のコンテンツと称する情報を有する、ＸＭＬ構造の構造体である。
【００５０】
かかる実装形態では、パラメータ値やコンテンツ・ソース位置など、ＷＡＣの実行に関する情報は、ＷＡＣタグ中に属性として含まれる。これにより、第１のＷＡＣの実行中に埋め込まれた第２のＷＡＣを見つけ実行して、その結果を第１のＷＡＣの実行結果に含めることができるように、ＷＡＣをネストすることが可能になる。
【００５１】
ＷＡＣのＤＴＤでは、すべてのデータがＷＡＣタグのＸＭＬ属性で表されるものと指定している。ＷＡＣのＤＴＤの完全な実装を付録Ａ（wac.dtd）に示す。ウェブ・ブラウザの通常の挙動作はＨＴＭＬタグだけを示すことなので、ドキュメントが表示されるとき、すべてのＷＡＣタグは実際には非表示になる。したがって、このＸＭＬの使用により、ＨＴＭＬコメントの使用と同じ効果が実現され、複雑なウェブ・ページ・レイアウトの作成にとって望ましいことであるが、ＷＡＣをネストすることが可能になる。
【００５２】
第１組のコードのＨＴＭＬまたはＸＭＬ構文解析では、ツリーの作成により、ＷＡＣ処理の順序を制御するために使用できるDocument Object Model（ＤＯＭ）が生成される。
【００５３】
この可能な実装形態では、Ｊａｖａ（Ｒ）クラスを実装することにより、新しいＷＡＣを作成することができる。Ｊａｖａ（Ｒ）クラスは、特定のオブジェクトを定義するデータ・メンバとメソッドの集合体である。
【００５４】
かかる実装形態に基づいた例示的なＷＡＣの呼出しを以下に示す。
2005506608.tif 000003
【００５５】
タグ<wac:control>はＷＡＣタグの開始を示す。このタグは、使用するＷＡＣが、wac.samples.Includeという名称のＪａｖａ（Ｒ）クラスであることを指定する。このクラスは、ＷＡＣプロセッサ５６によって実行される。タグ<wac:parameters>は、このパラメータ・セクションの開始を示す。これは、"include"という名称のパラメータが、値"/source"を有することを指定し、この値はこのインクルードＷＡＣによって、このリソース"source"がＨＴＭＬページ中に含まれることを意味するものと解釈される。このウェブ・ページは、ＷＡＣが処理され、"source"のコンテンツに対するＨＴＭＬコードが生成されるまで、"source"のコンテンツを含まない。ウェブ・ページが処理されるとき、ＷＡＣプロセッサは、ページを読み取り、ＷＡＣをそのページに見つけ、ＷＡＣに指定されたパラメータを渡し、ＷＡＣを実行し、その出力をウェブ・ページに戻してマージする。
【００５６】
Ｊａｖａ（Ｒ）の実装では、制御要素は、名称、クラス、および使用可能値（enablementvalue）を有する。名称は、ある制御を他の制御から参照できるようにするための、その制御に対する一意的な識別子である。クラスは、制御を実装するＪａｖａ（Ｒ）クラスの名称である。使用可能値は、この制御がそのマークアップを再生成すべきかどうかを判定するために設定される。以下は、制御要素の構造の一例である。
2005506608.tif 000004
【００５７】
制御要素は、プロパティを設定するために使用されるパラメータと、生成済みのマークアップを含むマークアップ要素とを含むパラメータ要素を含む。
【００５８】
パラメータ要素は、制御プロパティを設定するために使用されるパラメータを含む。以下は、あるパラメータ要素の構造の一例である。
2005506608.tif 000005
【００５９】
パラメータ要素は、１つの制御プロパティを定義するparam要素を含む。このparam要素の構造の一例は、以下の通りである。
2005506608.tif 000006
【００６０】
このparam要素は、プロパティ名とプロパティ値を有する。このparam要素はまたプロパティ値タイプを有し、これは（ストリング番号などの）データ、ＵＲＬ参照、または別の要素とすることができる。プロパティ・タイプがＵＲＬである場合、プロパティ・タイプは、絶対的すなわち"http:"などのスキームで開始してもよいし、また相対的なものでもよい。相対的なＵＲＬは、同じプロジェクトの別のリソースを参照する。
【００６１】
パラメータ要素はまた、param array要素を含み、以下にその構造の一例の概略を示す。
2005506608.tif 000007
【００６２】
paramarray要素は、制御インデックス・プロパティを定義する。このparamarrayは、param要素と同様に、プロパティ名とプロパティ値タイプを有する。
【００６３】
paramarrayはまた、paramvalue要素を有し、その構造の一例を以下に概説する。
2005506608.tif 000008
【００６４】
このparamvalue要素は、所与のインデックスに対するインデックス付きプロパティ値を定義する。paramarray要素中のparamvalue要素の位置が、インデックスを定義する。
【００６５】
マークアップ要素は、制御要素によって生成されるマークアップを含む。このマークアップ要素は、任意の有効な非ＷＡＣマークアップ、ならびに制御およびusermarkup要素を、直接または間接に含むことができる。制御要素使用可能値を使用不能にすることにより、生成済みのマークアップをユーザが変更することができる。あるいは、生成済みのマークアップからＷＡＣタグを取り除くことができる。
【００６６】
usermarkup要素を用いると、ＷＡＣによって生成されるマークアップ中に、ユーザがマークアップを挿入することが可能になる。ＷＡＣがマークアップを再生成するとき、usermarkup要素のコンテンツは保存される。usermarkup要素は、その目的を識別する要素を識別する名称を有する。usermarkup要素は、任意の非ＷＡＣマークアップ、ならびに制御要素を含むことができる。
【００６７】
付録Ａ：ＷＡＣ．ＤＴＤの例
<!DOCTYPE eBAF-WAC-1.0 [
<!--
このＤＴＤは、ウェブ・オーサリング制御、すなわち略語で表すとＷＡＣを記述する。ＷＡＣは、ウェブ・ページをオーサリングするための生産性支援手段である。ＷＡＣを使用して、複雑なマークアップを生成するタスクを簡略化することができ、すなわち、ＷＡＣにより、マークアップが依存するリソースが変化するときのマークアップの更新など、退屈なタスクを自動化することができる。ＷＡＣは、開発時に実行される。すべてのＷＡＣタグは、ランタイム環境に展開されるとき、ドキュメントから取り除くことができる。
【００６８】
ＷＡＣは、ＨＴＭＬ、ＪＳＰ、または総称的ＸＭＬでもよいドキュメント中に含まれる。このドキュメントは、関連するドキュメントおよびリソースを含むプロジェクトの一部である。例えば、ＷＡＣを使用して、サイト・マップ・リソースからナビゲーション・バーを生成することができる。プロジェクトおよびドキュメントはＷＡＣの実行コンテキストの一部である。実行の過程で、ＷＡＣは、リソースを読み取り、既存のリソースを更新または削除し、新しいリソースを作成することができる。ドキュメント中にＷＡＣを埋め込むために使用するタグ付けスキームは、ＸＭＬ規格に準拠している。ＷＡＣタグに含まれるすべての非マークアップ・データ（すなわちメタデータ）は、ＷＡＣを含むドキュメントを通常のウェブ・ブラウザによって表示できるようにするために要素の属性として表される。対照的にＷｅｂＢｏｔおよびＤＴＣは、ネストすることができないＨＴＭＬコメント中にメタデータを記憶する。ＸＭＬ要素を使用すると、ＷＡＣをネストし、したがって構成することが可能なので、より強力となる。例えば、ページ・レイアウトＷＡＣは、ネストされたナビゲーションＷＡＣを含むことができる。
-->
<!-- The <control> Element
【００６９】
ある制御は、マークアップをパラメータから生成するＪａｖａＢｅａｎである。ある制御は、パラメータ付きのマクロに似ている。パラメータは、数字や文字列などの簡単なデータ、あるいは同じドキュメント内の他の制御、またはプロジェクト中に置かれたリソースの参照とすることができる。
【００７０】
制御は、ユーザがパラメータを設定するのを支援するユーザ・インターフェースを提示することにより、ウェブ・オーサリングを簡単にする。このユーザ・インターフェースは、ＪａｖａＢｅａｎによって定義され、任意選択のカスタム・プロパティ・エディタを伴うプロパティ・シートとすることができ、またカスタマイザとすることもできる。制御を編集のために選択するとき、エディタはプロパティ・シートまたはカスタマイザをユーザに提示する必要がある。
【００７１】
制御を使用して、リストに行番号を追加するなど退屈なタスクを自動化することができ、またユーザが複雑なＨＴＭＬタグおよびＪＳＰタグ、またはＪａｖａ（Ｒ）スクリプトレットを書き込むことができるという必要をなくすことができる。
【００７２】
<control>要素は以下の属性を有する。
名称：制御に対する一意のＩＤ、したがって、この名称を他の制御から参照することができる
クラス：制御を実施するＪａｖａ（Ｒ）クラスの名称
使用可能（enabled）：制御がマークアップを再生成すべき場合に真（true）
【００７３】
ＩＤ属性は、制御を他の制御から参照できるようにするためのＩＤである。
【００７４】
クラス属性は、制御を実施するクラスの完全に適格な名称である。ＷＡＣプロセッサがクラスを位置決めする方法は定義されていない。
【００７５】
使用可能属性により、必要なら、ユーザは制御を使用不能にすることが可能になる。例えば、ユーザは、生成済みのマークアップの一時的な変更を希望することができる。
【００７６】
<control>要素は、ＪａｖａＢｅａｎプロパティを設定するのに使用されるパラメータの<parameters>要素、および生成済みのマークアップを含む<markup>要素を含む。
-->
<!ELEMENT control (parameters,markup)>
<!ATTLIST control
id ID #REQUIRED
class CDATA #REQUIRED
enabled (true I false)"true">
<!-- The <parameters> Element
【００７７】
<parameters>要素は、制御プロパティを設定するのに使用されるパラメータを含む。制御がＪａｖａＢｅａｎであるので、このプロパティは、単一値でも、またインデックス付きのものでもよい。
【００７８】
<parameters>要素は、ゼロまたは１個以上の<param>要素または<paramarray>要素を含むことができる。
【００７９】
<param>要素は、単一値のプロパティを定義する。
<paramarray>要素は、インデックス付きのプロパティを定義する。
-->
<!ELEMENT parameters (param | paramarray)*>
<!-- The <param> Element
<param>要素は、制御プロパティを定義する。この要素は、以下の属性を含む。
名称：プロパティ名称
値（value）：プロパティ名称
値タイプ（valuetype）：プロパティ値タイプであり、これは以下のうちの１つとすることができる。
データ：値は、数字や文字列などの簡単なデータである
参照（ref）：値はＵＲＬである
オブジェクト：値はこのドキュメント中の別の要素のＩＤである
【００８０】
タイプ参照（type ref）の値はＵＲＬである。ＵＲＬは絶対的なものでも、また相対的なものでもよい。ＵＲＬが例えば「ｈｔｔｐ：」のスキームで始まる場合、ＵＲＬは絶対的である。そうでない場合には、ＵＲＬは相対的である。
【００８１】
相対的なＵＲＬは、プロジェクト中の別のリソースを参照する。ＵＲＬが「／」で始まる場合、ＵＲＬは、プロジェクト・ルートに対して相対的である。そうでない場合には、ＵＲＬは、ドキュメントに対して相対的である。参照されたリソースを移動し、または名称変更する場合、あるいはドキュメントを移動する場合に、ＷＡＣ準拠のサイト管理ツールは、この値を更新する必要がある。
【００８２】
タイプ・オブジェクトの値は、ドキュメント中における別の要素のＩＤである。参照された要素のＩＤを変更する場合、ＷＡＣ準拠のエディタは、この値を更新する必要がある。
-->
<!ELEMENT param EMPTY>
<!ATTLIST param
name CDATA #REQUIRED
value CDATA #REQUIRED
valuetype (data | ref | object)"data">
<!-- The <paramarray> Element
<paramarray>要素は、制御インデックス付きのプロパティを定義する。この要素は、以下の属性を含む。
名称：プロパティ名称
値タイプ（valuetype）：プロパティ値タイプ（<param>要素を参照）
【００８３】
<paramarray>要素は、ゼロまたは１個以上の<paramvalue>要素を含み、<paramvalue>要素は、インデックス付きのプロパティの値を定義する。
-->
<!ELEMENT paramarray (paramvalue)*>
<!ATTLIST paramarray
name CDATA #REQUIRED
valuetype (data | ref | object)"data">
<!-- The <paramvalue> Element
<paramvalue>要素は、所与のインデックスに対するインデックス付きプロパティの値を定義する。<paramarray>要素中の<paramvalue>要素の位置が、このインデックスを定義する。
【００８４】
<paramvalue>要素は、以下の属性を有する。
値（value）：プロパティ値
-->
<!ELEMENT paramvalue EMPTY>
<!ATTLIST paramvalue
value CDATA #REQUIRED>
<!-- The <markup> Element
<markup>要素は、制御が生成するマークアップを含む。<markup>要素は、任意の有効な非ＷＡＣマークアップを含むことができ、また<control>要素および<usermarkup>要素を直接的または間接的に含むこともできる。
【００８５】
マークアップを再生成するとき、ユーザがマークアップに対して施した変更がどれも置き換えられるので、エディタは、<usermarkup>要素中に含まれないマークアップはどれも書き込み保護されているものとして扱うべきである。ユーザ・マークアップを保持するために、ユーザ・マークアップを<usermarkup>要素中に含めなければならない。
【００８６】
ユーザが、生成済みのマークアップを変更する必要がある場合、２つの選択肢がある。
【００８７】
第１に、その制御の使用可能にされた属性を偽（false）に設定することによって、制御を使用不能にすることができる。ＷＡＣ準拠のエディタは、ユーザがすべてのまたは選択された制御を使用可能または使用不能にする方法を提供する必要がある。
【００８８】
第２に、ユーザは、生成済みのマークアップを囲むＷＡＣタグをドキュメントから取り除くことができる。ＷＡＣ準拠のエディタは、ユーザがすべてのまたは選択された制御を取り除く方法を提供する必要がある。
-->
<!ELEMENT markup ANY >
<!-- The <usermarkup> Element
<usermarkup>要素により、ＷＡＣが生成するマークアップ中に、ユーザがマークアップを挿入することが可能になる。ＷＡＣがマークアップを再生成するとき、<usermarkup>要素のコンテンツは、通常は保存される。
【００８９】
<usermarkup>要素は、以下の属性を有する。
名称：目的を識別する要素の名称
【００９０】
<usermarkup>要素のコンテンツは、通常は保持されるが、ＷＡＣがマークアップを再生成するとき、要素のコンテンツの相対的な順序が変化することもある。さらに、新しい<usermarkup>要素が生成され、既存のものが除去されることもある。ＷＡＣは、<usermarkup>要素を生成し、ＷＡＣプロセッサは、名称属性を合致させることによって、既存のコンテンツにマージされる。
【００９１】
<usermarkup>要素は、任意の非ＷＡＣマークアップを含むことができ、また<control>要素も含むことができる。
-->
<!ELEMENT usermarkup ANY >
<!ATTLIST usermarkup name CDATA"">
]>
【図面の簡単な説明】
【００９２】
【図１】本発明の実施形態によるコンピューティング環境を示す概略図である。
【図２】コンテンツ・ソースからマークアップ・コードを自動的に生成することにより、ウェブ・オーサリングを支援する方法を示す流れ図である。
【図３】図２のマークアップ・コードを生成するステップをより詳細に示す流れ図である。
【図４】コンテンツ・ソースからマークアップ・コードを自動的に生成することにより、ウェブ・オーサリングを支援するためのシステムを示すシステム図である。
【図５】図４のＷＡＣプロセッサを示すシステム・アーキテクチャ図である。
【図１】
2005506608.tif 000009
【図２】
2005506608.tif 000010
【図３】
2005506608.tif 000011
【図４】
2005506608.tif 000012
【図５】
2005506608.tif 000013
【国際公開パンフレット】
2005506608.tif 000014
2005506608.tif 000015
2005506608.tif 000016
2005506608.tif 000017
2005506608.tif 000018
2005506608.tif 000019
2005506608.tif 000020
2005506608.tif 000021
2005506608.tif 000022
2005506608.tif 000023
2005506608.tif 000024
2005506608.tif 000025
2005506608.tif 000026
2005506608.tif 000027
2005506608.tif 000028
2005506608.tif 000029
2005506608.tif 000030
2005506608.tif 000031
2005506608.tif 000032
2005506608.tif 000033
2005506608.tif 000034
2005506608.tif 000035
2005506608.tif 000036
2005506608.tif 000037
2005506608.tif 000038
2005506608.tif 000039
2005506608.tif 000040
2005506608.tif 000041
2005506608.tif 000042
【国際公開パンフレット（コレクトバージョン）】
2005506608.tif 000043
2005506608.tif 000044
【国際調査報告】
2005506608.tif 000045
2005506608.tif 000046