Lecture du schéma abstrait

Cette rubrique fournit un exemple de code et des instructions pour la lecture à partir du schéma abstrait, qui fournit un sous-ensemble des données stockées dans les objets attributeSchema et classSchema dans le conteneur de schéma. Pour récupérer des données qui ne sont pas disponibles dans le schéma abstrait, lisez les données directement à partir du conteneur de schéma, comme décrit dans lecture des objets AttributeSchema et classSchema.

Utilisez la chaîne de liaison « LDAP://schema » pour établir une liaison à un pointeur IADsContainer sur le schéma abstrait. Utilisez ce pointeur pour énumérer les entrées de la classe, de l’attribut et de la syntaxe dans le schéma abstrait. Vous pouvez également utiliser la méthode IADsContainer. GetObject pour récupérer des entrées individuelles.

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

Utilisez une chaîne de liaison similaire, « < objet LDAP://Schema/ > », pour effectuer une liaison directe à une entrée de classe ou d’attribut dans le schéma abstrait. Dans cette chaîne, « < Object > » est le lDAPDisplayName d’une classe ou d’un attribut. Pour les classes liées à l’interface IADsClass ; pour les attributs, liez à l’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")

En outre, l’interface IADs fournit la propriété IADs. Schema . Cette propriété retourne l’ADsPath de la classe d’objet dans le format de chaîne de liaison de schéma abstrait. Si vous avez un pointeur IADs vers un objet, vous pouvez effectuer une liaison à sa classe dans le schéma abstrait à l’aide de l’ADsPath retourné par IADs. Schema.

Pour les classes, le tableau suivant répertorie les principales propriétés fournies par le schéma abstrait.

Propriété Signification
IADsClass. Abstract Indique s’il s’agit d’une classe abstraite.
IADsClass. auxiliaire Indique s’il s’agit d’une classe auxiliaire.
IADsClass.AuxDerivedFrom Tableau de classes auxiliaires dont cette classe dérive.
IADsClass. Container Indique si les objets de cette classe peuvent contenir d’autres objets, ce qui est vrai si une classe comprend cette classe dans sa liste de possibleSuperiors.
IADsClass.DerivedFrom Tableau de classes dont cette classe est dérivée.
IADsClass.MandatoryProperties Récupère un tableau des propriétés obligatoires qui doivent être définies pour une instance de la classe. La liste retournée inclut toutes les valeurs mustContain et systemMustContain pour la classe et les classes dont elle est dérivée, y compris les superclasses et les classes auxiliaires.
IADsClass. OID Récupère le governsID de la classe.
IADsClass. (OptionalProperties) Récupère un tableau des propriétés facultatives qui peuvent être définies pour une instance de la classe. La liste retournée inclut toutes les valeurs mayContain et systemMayContain pour la classe et les classes dont elle est dérivée, y compris les superclasses et les classes auxiliaires.
IADsClass.PossibleSuperiors Récupère un tableau des valeurs possibleSuperiors pour la classe, qui indique les classes d’objets qui peuvent contenir des objets de cette classe.

Le schéma abstrait est stocké dans l’objet de sous- schéma dans le conteneur de schéma. Pour obtenir le nom unique de l’objet de sous- schéma , liez-le à RootDSE et lisez l’attribut subSchemaSubEntry , comme décrit dans liaison sans serveur et RootDSE. N’oubliez pas qu’il est plus efficace de lire le schéma abstrait en liant « LDAP://schema » que par la liaison directe à l’objet de sous- schéma .