다음을 통해 공유


추상 스키마 읽기

이 항목에서는 스키마 컨테이너의 attributeSchemaclassSchema 개체에 저장된 데이터의 하위 집합을 제공하는 추상 스키마에서 읽기 위한 코드 예제 및 지침을 제공합니다. 추상 스키마에서 사용할 수 없는 데이터를 검색하려면 읽기 특성Schema 및 classSchema Objects에 설명된 대로 스키마 컨테이너에서 직접 데이터를 읽습니다.

"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 클래스의 instance 대해 설정해야 하는 필수 속성의 배열을 검색합니다. 반환된 목록에는 클래스에 대한 모든 mustContainsystemMustContain 값과 슈퍼클래스 및 보조 클래스를 포함하여 클래스가 파생되는 클래스가 포함됩니다.
IADsClass.OID 클래스의 governsID를 검색합니다.
IADsClass.OptionalProperties 클래스의 instance 대해 설정할 수 있는 선택적 속성의 배열을 검색합니다. 반환된 목록에는 클래스에 대한 모든 mayContainsystemMayContain 값과 해당 클래스가 파생된 클래스(슈퍼클래스 및 보조 클래스 포함)가 포함됩니다.
IADsClass.PossibleSuperiors 이 클래스의 개체를 포함할 수 있는 개체 클래스를 나타내는 클래스에 대한 possibleSuperiors 값의 배열을 검색합니다.

 

추상 스키마는 스키마 컨테이너의 subSchema 개체에 저장됩니다. subSchema 개체의 고유 이름을 얻으려면 rootDSE에 바인딩하고 서버리스 바인딩 및 RootDSE에 설명된 대로 subSchemaSubEntry 특성을 읽습니다. subSchema 개체에 직접 바인딩하는 것보다 "LDAP://schema"에 바인딩하여 추상 스키마를 읽는 것이 더 효율적입니다.