Compartir a través de


Lectura del esquema abstracto

En este tema se proporciona un ejemplo de código y directrices para leer desde el esquema abstracto, que proporciona un subconjunto de los datos almacenados en los objetos attributeSchema y classSchema en el contenedor de esquemas. Para recuperar datos que no están disponibles en el esquema abstracto, lea los datos directamente desde el contenedor de esquemas, tal como se describe en Reading attributeSchema y classSchema Objects.

Use la cadena de enlace "LDAP://schema" para enlazar a un puntero IADsContainer en el esquema abstracto. Use este puntero para enumerar las entradas de clase, atributo y sintaxis en el esquema abstracto. También puede usar el método IADsContainer.GetObject para recuperar entradas individuales.

// 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")

Use una cadena de enlace similar, "LDAP://schema/< object>", para enlazar directamente a una entrada de clase o atributo en el esquema abstracto. En esta cadena, "<object>" es el lDAPDisplayName de una clase o atributo. Para las clases se enlazan a la interfaz IADsClass ; para los atributos, enlace a la interfaz 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")

Además, la interfaz iaDs proporciona la propiedad IADs.Schema . Esta propiedad devuelve ADsPath para la clase de objeto en formato de cadena de enlace de esquema abstracto. Si tiene un puntero de IADs a un objeto, puede enlazar a su clase en el esquema abstracto mediante ADsPath devuelto de IADs.Schema.

En el caso de las clases, en la tabla siguiente se enumeran las propiedades clave proporcionadas por el esquema abstracto.

Propiedad Significado
IADsClass.Abstract Indica si se trata de una clase abstracta.
IADsClass.Auxiliary Indica si se trata de una clase auxiliar.
IADsClass.AuxDerivedFrom Matriz de clases auxiliares de las que deriva esta clase.
IADsClass.Container Indica si los objetos de esta clase pueden contener otros objetos, que es true si alguna clase incluye esta clase en su lista de posiblesSuperiors.
IADsClass.DerivedFrom Matriz de clases de las que se deriva esta clase.
IADsClass.MandatoryProperties Recupera una matriz de las propiedades obligatorias que se deben establecer para una instancia de la clase . La lista devuelta incluye todos los valores mustContain y systemMustContain para la clase y las clases de las que se deriva, incluidas las superclases y las clases auxiliares.
IADsClass.OID Recupera el governsID de la clase .
IADsClass.OptionalProperties Recupera una matriz de las propiedades opcionales que se pueden establecer para una instancia de la clase . La lista devuelta incluye todos los valores mayContain y systemMayContain para la clase y las clases de las que se deriva, incluidas las superclases y las clases auxiliares.
IADsClass.PossibleSuperiors Recupera una matriz de los valores possibleSuperiors de la clase , que indica las clases de objeto que pueden contener objetos de esta clase.

 

El esquema abstracto se almacena en el objeto subSchema del contenedor de esquemas. Para obtener el nombre distintivo del objeto subSchema , enlace a rootDSE y lea el atributo subSchemaSubEntry , tal y como se describe en Enlace sin servidor y RootDSE. Tenga en cuenta que es más eficaz leer el esquema abstracto enlazando a "LDAP://schema", que enlazando directamente al objeto subSchema .