PropertyDefinitionControl は、指定したリポジトリー内にある指定したプロパティーのプロパティー定義を取得するために使用します。
PropertyDefinitionControl DataObject は TypeControl から拡張されるもので、SchemaService の getSchema メソッドの入力データ・オブジェクトで使用されます。
PropertyDefinitionControl DataObject の構造は、以下のものから構成されます。
- repositoryId
- Virtual member manager の構成 XML ファイル内のリポジトリーの ID を指定するために使用されます。
例えば、Virtual member manager の構成 XML ファイルに ID が LDAP1 の LDAP サーバーが構成されている場合は、PropertyDefinitionControl で repositoryId を LDAP1 に設定します。
すると、getSchema メソッドが、リポジトリー LDAP1 のプロパティー・スキーマを戻します。
PropertyDefinitionControl で repositoryId を指定しないと、Virtual member manager レベルのプロパティー・スキーマが戻されます。
- propertyNames
- 呼び出し側が定義を取得するプロパティーのリストを含みます。
プロパティー名は、名前空間の接頭部を含むことを意味する修飾プロパティー名でなければなりません。
propertyNames プロパティーが指定されていないと、指定されたエンティティーに対して定義されているプロパティーがすべて戻されます。
- entityTypeName
- エンティティー・タイプを指定します。
entityTypeName は、これがエンティティー・タイプの名前空間の接頭部を含むことを意味する修飾名でもあります。
XML スキーマ定義
次に、PropertyDefinitionControl DataObject の XML スキーマ定義を示します。
<xsd:complexType name="PropertyDefinitionControl">
<xsd:complexContent>
<xsd:extension base="TypeControl">
<xsd:sequence>
<xsd:element ref="propertyNames" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="entityTypeName" type="xsd:token"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
サンプル・データ・オブジェクト
次に、PropertyDefinitionControl DataObject のサンプルを示します。これは、リポジトリー LDAP1 がエンティティー・タイプ PersonAccount に対してサポートするプロパティーをすべて要求するために getSchema 操作で使用されるものです。
<wim:controls xsi:type="wim:PropertyDefinitionControl" repositoryId="LDAP1" entityTypeName="PersonAccount"/>