Membaca Skema Abstrak
Topik ini menyediakan contoh kode dan panduan untuk membaca dari skema abstrak, yang menyediakan subset data yang disimpan dalam atribut Objek skema dan classSchema dalam kontainer skema. Untuk mengambil data yang tidak tersedia dalam skema abstrak, baca data langsung dari kontainer skema seperti yang dijelaskan dalam Membaca atributSkema dan classSchema Objects.
Gunakan string pengikatan "LDAP://schema" untuk mengikat ke pointer IADsContainer pada skema abstrak. Gunakan pointer ini untuk menghitung entri kelas, atribut, dan sintaks dalam skema abstrak. Anda juga dapat menggunakan metode IADsContainer.GetObject untuk mengambil entri individual.
// 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")
Gunakan string pengikatan serupa, "LDAP://schema/< object>", untuk mengikat langsung ke entri kelas atau atribut dalam skema abstrak. Dalam string ini, "<objek>" adalah lDAPDisplayName dari kelas atau atribut. Untuk kelas yang mengikat antarmuka IADsClass; untuk atribut, ikat ke antarmuka 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")
Selain itu, antarmuka IAD menyediakan properti IADs.Schema. Properti ini mengembalikan ADsPath untuk kelas objek dalam format string pengikatan skema abstrak. Jika Anda memiliki penunjuk IAD ke objek, Anda dapat mengikat ke kelasnya dalam skema abstrak menggunakan ADsPath yang dikembalikan dari IADs.Schema.
Untuk kelas, tabel berikut mencantumkan properti kunci yang disediakan oleh skema abstrak.
Properti | Makna |
---|---|
IADsClass.Abstract | Menunjukkan apakah ini adalah kelas abstrak. |
IADsClass.Auxiliary | Menunjukkan apakah ini adalah kelas tambahan. |
IADsClass.AuxDerivedFrom | Array kelas tambahan yang berasal dari kelas ini. |
IADsClass.Container | Menunjukkan apakah objek kelas ini dapat berisi objek lain, yang benar jika ada kelas yang menyertakan kelas ini dalam daftar kemungkinanSuperiornya. |
IADsClass.DerivedFrom | Array kelas yang berasal dari kelas ini. |
IADsClass.MandatoryProperties | Mengambil array properti wajib yang harus diatur untuk instans kelas. Daftar yang dikembalikan mencakup semua nilai mustContain dan systemMustContain untuk kelas dan kelas tempatnya berasal, termasuk kelas superkelas dan tambahan. |
IADsClass.OID | Mengambil governsID kelas. |
IADsClass.OptionalProperties | Mengambil array properti opsional yang mungkin diatur untuk instans kelas. Daftar yang dikembalikan mencakup semua nilai mayContain dan systemMayContain untuk kelas dan kelas tempatnya berasal, termasuk kelas superkelas dan tambahan. |
IADsClass.PossibleSuperiors | Mengambil array dari nilai possibleSuperiors untuk kelas , yang menunjukkan kelas objek yang dapat berisi objek kelas ini. |
Skema abstrak disimpan di objek subSkema dalam kontainer skema. Untuk mendapatkan nama khusus objek subSchema , ikat ke rootDSE dan baca atribut subSchemaSubEntry , seperti yang dijelaskan dalam Pengikatan Tanpa Server dan RootDSE. Ketahuilah bahwa lebih efisien untuk membaca skema abstrak dengan mengikat ke "LDAP://schema", daripada dengan mengikat langsung ke objek subSkema .