抽象スキーマの読み取り
このトピックでは、抽象スキーマから読み取るためのコード例とガイドラインを示します。このコードは、スキーマ コンテナー内の attributeSchema オブジェクトと classSchema オブジェクトに格納されているデータのサブセットを提供します。 抽象スキーマで使用できないデータを取得するには、「attributeSchema オブジェクトと classSchema オブジェクトの読み取り」の説明に 従って、スキーマ コンテナーから直接データを読み取ります。
"LDAP://schema" バインド文字列を使用して、抽象スキーマの IADsContainer ポインターにバインドします。 抽象スキーマのクラス、属性、および構文エントリを列挙するには、このポインターを使用します。 IADsContainer.GetObject メソッドを使用して、個々のエントリを取得することもできます。
// Bind to the abstract schema.
IADsContainer *pAbsSchema = NULL;
hr = ADsGetObject(L"LDAP://schema",
IID_IADsContainer,
(void**)&pAbsSchema);
' Bind to the abstract schema.
Dim adschema As IADsContainer
Set adschema = GetObject("LDAP://schema")
抽象スキーマのクラスまたは属性エントリに直接バインドするには、同様のバインド文字列 "LDAP://schema/< object>" を使用します。 この文字列では、"<object>" は クラスまたは属性の lDAPDisplayName です 。 クラスが IADsClass インターフェイスにバインドされる場合は、属性の場合は IADsProperty インターフェイスにバインドします。
// Bind to the user class entry in the abstract schema.
IADsClass *pClass;
hr = ADsGetObject(L"LDAP://schema/user",
IID_IADsClass,
(void**)&pClass);
Bind to the user class entry in the abstract schema.
Dim userclass As IADsClass
Set userclass = GetObject("LDAP://schema/user")
さらに、IADs インターフェイスには IADs.Schema プロパティが用意されています。 このプロパティは、抽象スキーマ バインディング文字列形式でオブジェクト クラスの ADsPath を返します。 オブジェクトへの IADs ポインターがある場合は、IADs.Schema から返された ADsPath を使用して、抽象スキーマ内のクラスにバインドできます。
クラスの場合、次の表に、抽象スキーマによって提供される主要なプロパティを示します。
プロパティ | 意味 |
---|---|
IADsClass.Abstract | これが抽象クラスかどうかを示します。 |
IADsClass.Auxiliary | これが補助クラスであるかどうかを示します。 |
IADsClass.AuxDerivedFrom | このクラスの派生元となる補助クラスの配列。 |
IADsClass.Container | このクラスのオブジェクトに他のオブジェクトを含めることができるかどうかを示します。これは、いずれかのクラスがこのクラスを possibleSuperiors の一覧に含める場合は true です。 |
IADsClass.DerivedFrom | このクラスの派生クラスの配列。 |
IADsClass.MandatoryProperties | クラスのインスタンスに設定する必要がある必須プロパティの配列を取得します。 返されるリストには、 クラスのすべての mustContain 値と systemMustContain 値と、そのクラスの派生元クラス (スーパークラスや補助クラスを含む) が含まれます。 |
IADsClass.OID | クラスの governsID を取得します。 |
IADsClass.OptionalProperties | クラスのインスタンスに設定できるオプションのプロパティの配列を取得します。 返されるリストには、 クラスのすべての mayContain 値と systemMayContain 値と、それが派生するクラス (スーパークラスや補助クラスを含む) が含まれます。 |
IADsClass.PossibleSuperiors | このクラスのオブジェクトを 含むことができるオブジェクト クラスを示す、クラスの possibleSuperiors 値の配列を取得します。 |
抽象スキーマは、スキーマ コンテナーの subSchema オブジェクトに格納されます。 subSchema オブジェクトの識別名を取得するには、rootD にバインドしStandard Editionサーバーレス バインドと RootD の説明に従って subSchemaSubEntry 属性を読み取Standard Edition。 subSchema オブジェクトに直接バインドするよりも、"LDAP://schema" にバインドして抽象スキーマを読み取る方が効率的であることに注意してください。