Schemaverwaltung
Die ADSI-Beispielanbieterkomponente definiert die Schemaklassen "Organisationseinheit" und "Benutzer" und verwaltet diese Schemaklassen auf folgende Weise.
Die Schemaklasse "Organisationseinheit" wird durch ein ADs-Containerobjekt dargestellt und kann andere "Organisationseinheiten" und "Benutzer" enthalten. Das Containerobjekt unterstützt die Schnittstellen IUnknown, IDispatch, IADsund IADsContainer. Die Schemaklasse "User" wird durch ein generisches Active Directory-Objekt dargestellt und enthält keine anderen Objekttypen. In der Beispielanbieterkomponente wird das User-Objekt als generisches Active Directory-Objekt implementiert, das die Schnittstellen IUnknown, IDispatch und IADs unterstützt. Beachten Sie, dass das User-Objekt in diesem Fall die IADsUser-Schnittstelle nicht unterstützt.
Die Beispielanbieterkomponente muss auch das ADs-Namespaceobjekt implementieren, das die Schnittstellen IUnknown, IADs, IADsContainer, IADsOpenDSObjectund IDispatch unterstützt.
Die folgende Abbildung zeigt die Details des Schemas, das die schema-Klassen der beiden Beispielanbieterkomponenten darstellt.

Beachten Sie, dass in der obigen Abbildung die Schemaklasse "Organisationseinheit" drei Eigenschaften definiert: "Beschreibung", "Mitarbeiterzahl" und "ID". Die Schemaklasse "User" definiert vier Eigenschaften: "ID", "Name", "PhoneNumber" und "Title". Die "ID"-Eigenschaft wird von beiden Schemaklassen gemeinsam verwendet. Jede Eigenschaft wird entweder durch das Syntaxobjekt "String" oder "Integer" definiert.
Hinweis
Syntaxobjekte sind in der ersten Version der Beispielanbieterkomponente nicht vorhanden. In den meisten Microsoft ADSI-Schemaimplementierungen sind die Syntaxobjekte jedoch im Schemacontainerobjekt enthalten, genau wie die Schemaklasse und die Eigenschaftenobjekte. Aus diesem Grund werden sie hier angezeigt.
Diese Anbieterkomponente ermöglicht der ADSI-Clientanwendung den Zugriff auf Schemadaten in Form von ADs-Klassenobjekten, ADs-Eigenschaftenobjekten und ADs-Syntaxobjekten innerhalb eines Schemaklassencontainerobjekts, sodass Schemadaten zur Laufzeit abgerufen werden können.
Die für die Beispielanbieterkomponente definierten ADsPaths für die Schemaklassencontainerobjekte sind "Sample://Seattle/schema" und "Sample://Toronto/schema". In diesem Beispiel sind die Inhalte der Schemas identisch.