Partager via


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émas. 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émas, comme décrit dans Reading attributeSchema et classSchema Objects.

Utilisez la chaîne de liaison « LDAP://schema » pour lier un pointeur IADsContainer sur le schéma abstrait. Utilisez ce pointeur pour énumérer les entrées de classe, d’attribut et de 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, « LDAP://schema/< object> », pour lier directement une classe ou une entrée d’attribut dans le schéma abstrait. Dans cette chaîne, «< object> » est l’objet lDAPDisplayName d’une classe ou d’un attribut. Pour les classes, liez à 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é renvoie l’ADsPath pour la classe d’objet au format de chaîne de liaison de schéma abstrait. Si vous avez un pointeur IADs vers un objet, vous pouvez lier à 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 propriétés clés fournies par le schéma abstrait.

Propriété Signification
IADsClass.Abstract Indique s’il s’agit d’une classe abstraite.
IADsClass.Auxiliary 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 inclut cette classe dans sa liste de possiblesSuperiors.
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 subSchema dans le conteneur de schémas. Pour obtenir le nom unique de l’objet subSchema , liez à rootDSE et lisez l’attribut subSchemaSubEntry , comme décrit dans Liaison serverless et RootDSE. N’oubliez pas qu’il est plus efficace de lire le schéma abstrait en lisant « LDAP://schema », plutôt qu’en lisant directement à l’objet subSchema .