新しいエンティティー・タイプ、プロパティー・タイプ、およびコントロール・タイプを wimextension.xsd などの 拡張スキーマ XSD ファイルに追加することができます。これらの XSD ファイルは、Virtual member manager の組み込みスキーマ XSD ファイルをインポートします。その後で、Eclipse または RAD 開発環境または同様のツールを介して拡張スキーマ XSD ファイルから静的モデル・コードを生成することができます。生成されたモデル・コードは jar ファイル (例えば wimmodel.jar および wimmodelext.jar) に圧縮されて、クラス・パスの下に入れられます。
Virtual member manager が始動すると、構成マネージャーは wimconfig.xml ファイルを構成データ・グラフにロードします。 次に、スキーマ・マネージャーに構成データ・グラフが渡されます。
ローカル・サービス・プロバイダーのインスタンスが Virtual member manager のインスタンスと同じ JVM にない場合には、 ローカル・サービス・プロバイダーのインスタンスがリモートで作成されて、ローカル・サービス・プロバイダーが Virtual member manager API getEPackges を呼び出し nsURI パラメーターを null として渡すことによってすべての名前空間のスキーマを取得します。
プロファイル・マネージャーは、API 呼び出しを 受け取って、これをスキーマ・マネージャーに渡します。 ECore モデルは直列化されず、リモート・クライアントに渡すことができないので、スキーマ・マネージャーは ECore モデルをバイト配列の形式に変換して、 スキーマをローカル・サービス・プロバイダーに戻します。
ローカル・サービス・プロバイダーはスキーマをバイト配列から ECore モデルに変換して、クライアントの JVM に登録します。
クライアントとサーバーが同じ JVM にある場合は、クライアントは静的パッケージで定義されたデータ・オブジェクトをそれらの静的タイプにキャストして、静的メソッドを使用します。 例えば、PersonAccount のデータ・オブジェクトは PersonAccount オブジェクトにキャストでき、getSn のような静的メソッドは (getString(“sn”) のような静的メソッドの代わりに) 使用することができます。これらは、動的パッケージである wimxmlextension.xml で定義された データ・オブジェクト (例えば、ContactPerson) には適用されません。
クライアント とサーバーが別の JVM にある場合、クライアントの JVM では静的パッケージにアクセスできないので、データ・オブジェクトが 静的パッケージで定義されていても、静的タイプや静的メソッドを使用することはできません。