Compartilhar via


Lendo o esquema abstrato

Este tópico fornece um exemplo de código e diretrizes para leitura do esquema abstrato, que fornece um subconjunto dos dados armazenados nos objetos attributeSchema e classSchema no contêiner de esquema. Para recuperar dados que não estão disponíveis no esquema abstrato, leia os dados diretamente do contêiner do esquema, conforme descrito em Reading attributeSchema e classSchema Objects.

Use a cadeia de caracteres de vinculação "LDAP://schema" para vincular a um ponteiro IADsContainer no esquema abstrato. Use esse ponteiro para enumerar as entradas de classe, atributo e sintaxe no esquema abstrato. Você também pode usar o método IADsContainer.GetObject para recuperar entradas individuais.

// 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 uma cadeia de caracteres de vinculação semelhante, "LDAP://schema/< object>", para vincular diretamente a uma entrada de classe ou atributo no esquema abstrato. Nessa cadeia de caracteres, "object>"< é o lDAPDisplayName de uma classe ou atributo. Para classes vincule à interface IADsClass; para atributos, associe-se à interface 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")

Além disso, a interface IADs fornece a propriedade IADs.Schema. Essa propriedade retorna o ADsPath para a classe de objeto no formato de cadeia de caracteres de vinculação de esquema abstrato. Se você tiver um ponteiro de IADs para um objeto, poderá vincular a sua classe no esquema abstrato usando o ADsPath retornado de IADs.Schema.

Para classes, a tabela a seguir lista as propriedades de chave fornecidas pelo esquema abstrato.

Propriedade Significado
IADsClass.Abstract Indica se esta é uma classe abstrata.
IADsClass.Auxiliar Indica se esta é uma classe auxiliar.
IADsClass.AuxDerivedFrom Matriz de classes auxiliares das quais essa classe deriva.
IADsClass.Container Indica se os objetos dessa classe podem conter outros objetos, o que é verdadeiro se qualquer classe incluir essa classe em sua lista de possíveisSuperiors.
IADsClass.DerivedFrom Matriz de classes da qual essa classe é derivada.
IADsClass.MandatoryProperties Recupera uma matriz das propriedades obrigatórias que devem ser definidas para uma instância da classe. A lista retornada inclui todos os valores mustContain e systemMustContain para a classe e as classes das quais ela é derivada, incluindo superclasses e classes auxiliares.
IADsClass.OID Recupera o governsID da classe.
IADsClass.OptionalProperties Recupera uma matriz das propriedades opcionais que podem ser definidas para uma instância da classe. A lista retornada inclui todos os valores mayContain e systemMayContain para a classe e as classes das quais ela é derivada, incluindo superclasses e classes auxiliares.
IADsClass.PossibleSuperiors Recupera uma matriz dos valores possibleSuperiors para a classe, que indica as classes de objeto que podem conter objetos dessa classe.

 

O esquema abstrato é armazenado no objeto subSchema no contêiner de esquema. Para obter o nome distinto do objeto subSchema, vincule-se ao rootDSE e leia o atributo subSchemaSubEntry, conforme descrito em Serverless Binding e RootDSE. Lembre-se de que é mais eficiente ler o esquema abstrato vinculando-se a "LDAP://schema", do que vinculando-se diretamente ao objeto subSchema .