Condividi tramite


Lettura dello schema astratto

Questo argomento fornisce un esempio di codice e linee guida per la lettura dallo schema astratto, che fornisce un subset dei dati archiviati negli oggetti attributeSchema e classSchema nel contenitore dello schema. Per recuperare i dati non disponibili nello schema astratto, leggere i dati direttamente dal contenitore dello schema come descritto in Lettura dell'attributoSchema e degli oggetti classSchema.

Usare la stringa di associazione "LDAP://schema" per eseguire il binding a un puntatore IADsContainer nello schema astratto. Usare questo puntatore per enumerare le voci di classe, attributo e sintassi nello schema astratto. È anche possibile usare il metodo IADsContainer.GetObject per recuperare singole voci.

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

Usare una stringa di associazione simile, "LDAP://schema/< object>", per eseguire direttamente l'associazione a una classe o a una voce di attributo nello schema astratto. In questa stringa "<object>" è lDAPDisplayName di una classe o di un attributo. Per le classi associano all'interfaccia IADsClass; per gli attributi, eseguire l'associazione all'interfaccia 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")

Inoltre, l'interfaccia IADs fornisce la proprietà IADs.Schema. Questa proprietà restituisce ADsPath per la classe oggetto in formato stringa di associazione dello schema astratto. Se si dispone di un puntatore ID a un oggetto, è possibile eseguire il binding alla relativa classe nello schema astratto usando ADsPath restituito da IADs.Schema.

Per le classi, nella tabella seguente sono elencate le proprietà chiave fornite dallo schema astratto.

Proprietà Significato
IADsClass.Abstract Indica se si tratta di una classe astratta.
IADsClass.Auxiliary Indica se si tratta di una classe ausiliaria.
IADsClass.AuxDerivedFrom Matrice di classi ausiliarie da cui deriva questa classe.
IADsClass.Container Indica se gli oggetti di questa classe possono contenere altri oggetti, che è true se una classe include questa classe nel relativo elenco di possibiliSuperiors.
IADsClass.DerivedFrom Matrice di classi da cui deriva questa classe.
IADsClass.MandatoryProperties Recupera una matrice delle proprietà obbligatorie che devono essere impostate per un'istanza della classe . L'elenco restituito include tutti i valori mustContain e systemMustContain per la classe e le classi da cui è derivato, incluse le superclassi e le classi ausiliarie.
IADsClass.OID Recupera l'ID di governance della classe .
IADsClass.OptionalProperties Recupera una matrice delle proprietà facoltative che potrebbero essere impostate per un'istanza della classe . L'elenco restituito include tutti i valori mayContain e systemMayContain per la classe e le classi da cui è derivato, incluse le superclassi e le classi ausiliarie.
IADsClass.PossibleSuperiors Recupera una matrice dei valori possibiliSuperiors per la classe , che indica le classi oggetto che possono contenere oggetti di questa classe.

 

Lo schema astratto viene archiviato nell'oggetto subSchema nel contenitore dello schema. Per ottenere il nome distinto dell'oggetto subSchema, eseguire l'associazione a rootD edizione Standard e leggere l'attributo subSchemaSubEntry, come descritto in Binding serverless e RootD edizione Standard. Tenere presente che è più efficiente leggere lo schema astratto tramite l'associazione a "LDAP://schema", rispetto all'associazione diretta all'oggetto subSchema .