抽象架构
架构容器包含所有 classSchema 和 attributeSchema 对象,这些对象定义目录林中可以存在的类和属性。 架构容器还包含名为“聚合”类的对象 subSchema。 此 subSchema 对象称为抽象架构。
抽象架构包含存储在 classSchema 和 attributeSchema 对象中的数据子集。 其用途是提供一种简单高效的机制,用于检索类和属性定义的常用元素。 例如, 若要检索对象类的可选属性和必需属性,请绑定到多个对象以收集 mayContain、mustContain、systemMayContain,以及 systemMustContain 类及其所有超级类中的值以及类及其超级类的任何辅助类。 抽象架构方便地在单个对象中收集所有这些数据。
与 Active Directory 域服务中的任何对象一样,可以绑定到 subSchema 对象并读取其属性,分析字符串值以检索所需的数据。 但是,ADSI 提供了一组接口,以便更轻松地读取抽象架构。 有关详细信息,请参阅 读取抽象架构。
下表列出了 subSchema 对象的关键属性。
属性 | 描述 |
---|---|
attributeTypes | 一个多值属性,其中包含表示架构中每个属性的字符串。 每个值都包含 attributeID、lDAPDisplayName、attributeSyntax、rangeLower、rangeUpper,以及指示属性是否可以具有多个值的项。 |
extendedAttributeInfo | 一个多值属性,其中包含表示每个属性的其他数据的字符串。 每个值都包含 attributeID、lDAPDisplayName、schemaIDGUID和 attributeSecurityGUID。 |
extendedClassInfo | 一个多值属性,其中包含表示每个类的其他数据的字符串。 每个值都包含 governsID、lDAPDisplayName,以及类 schemaIDGUID。 |
objectClasses | 一个多值属性,其中包含表示架构中每个类的字符串。 每个值都包含 governsID、lDAPDisplayName、mustContain、mayContain等。 |