拡張ポイント・スキーマ

「拡張」は、新規のフィーチャーをプラットフォームに追加するためにプラグインが使用する重要なメカニズムです。 「拡張」を任意に作成することはできません。「拡張」は、拡張ポイントによって定義される明確な仕様に基づいて宣言されます。 

各拡張は、拡張を行う拡張ポイントの仕様に準拠する必要があります。 各拡張ポイントでは、拡張が宣言しなければならない属性と期待値が定義されています。 この情報は、プラットフォームのプラグイン・レジストリーに保持されます。 拡張ポイントのプロバイダーはレジストリーにこれらの値を照会するため、 プラグインがこの情報を必ず提供していることが重要です。   

最も基本的なフォームでは、拡張ポイント宣言は非常に単純なものです。  拡張ポイント宣言は、拡張ポイントの ID と名前を定義します。  拡張ポイントが期待するその他の情報はすべてその拡張ポイントに固有のものであり、それについては別の資料で説明します  (プラットフォームの拡張ポイントの定義については、 「プラットフォーム拡張ポイントの解説」を 参照してください)。

参照ドキュメンテーションは役に立ちますが、プログラムとして 拡張の仕様を検査するための支援が得られるわけではありません。 このため、PDE では、自動処理に適したフォーマットで拡張ポイントを記述する拡張ポイント・スキーマが導入されています。

拡張ポイント・スキーマは、W3C 仕様で定義されている有効な XML スキーマです。 ただし、完全な XML スキーマ仕様は非常に複雑であり、ほとんどの部分はこのような特定の使用には不要です。 したがって、PDE は XML スキーマのフィーチャーのサブセットのみを使用します。  各拡張ポイント・スキーマは妥当な XML スキーマですが、PDE は使用可能なフィーチャーをすべて使用するわけではありません。

拡張ポイント・スキーマの利点

PDE の拡張ポイントの XML スキーマを使用して拡張ポイントを記述することには、以下のような多くの利点があります。

  1. 拡張ポイントの文法は、エレメント、属性、および型を形式に沿って表現することを可能にします。 ツールは、この情報を使用して、拡張の妥当性を検査したり、拡張の作成を支援することができます。
  2. XML スキーマは、Java ソース内の Javadoc に似たドキュメンテーション注釈を提供します。 このメカニズムは、有効なエレメントと属性のための短いテキストを、これらのエレメントと属性の宣言に結び付けます。 属性を除去すると、その属性のドキュメンテーションも除去されるため、 より簡単にドキュメンテーションを同期させることができます。 参照ドキュメンテーションを更新する必要はありません。
  3. 参照ドキュメンテーションを生成することができます。 PDE は、拡張ポイント・スキーマの変更を追跡し、 即座に参照ドキュメンテーションを更新するツールを提供します。
  4. 拡張ポイントに関するメタデータを追加し、スキーマを処理するツールが使用できようにできます。  PDE はこのメカニズムを使用して、エレメントと属性に関する情報を追加します。 例えば、属性が「Java」とマークされている場合、 PDE は、Java プラットフォームのフィーチャーとの対話による値の設定を支援できます。

「PDE XML スキーマ」サポートの制限

PDE は、XML スキーマの小さなサブセットを使用します。  XML スキーマの完全なフィーチャー・セットを使用しても、このような特定の場合には、機能過剰になるだけです。 このサブセットを使用すると、DTD からスキーマへの 1 対 1 のマッピングが可能になりますが、DTD の制限はありません。 以下に、PDE の拡張ポイント・スキーマの主な制限を示します。

  1. グローバルなエレメント宣言のみが許可されます。
  2. ローカルな属性宣言のみが許可されます。 グローバル属性を宣言することはできません。
  3. サポートされているコンポジターは、all、sequence、choice、group です。
  4. グローバルな型はサポートされていません。 型は宣言し、即時に使用する必要があります。
  5. 属性の型は string と boolean のみです。
  6. 属性が string 型の場合は、enumeration 制限だけがサポートされます。

これらの制限を使用して XML スキーマを作成すると、作成されたファイルは、 同じ文法を定義する同等の DTD と極めて似ていることがわかります。スキーマの利点は、 (ドキュメンテーションおよびメタデータの両方の) 注釈にあります。 さらに、XML スキーマ自体は XML で書かれているため、 非常に処理しやすく、読みやすいという利点もあります。

上記のリストは、参照のためのものです。一般に、XML スキーマの定義には、 正しいファイルの生成を支援する PDE スキーマ・エディターを使用します。