Repository Engine Modeling Enhancements

Meta Data Services

Meta Data Services

Repository Engine Modeling Enhancements

Microsoft® SQL Server™ 2000 Meta Data Services introduces the following new repository engine features in version 3.0 of the engine. These features extend your ability to create an information model that can take advantage of new features added to this version of the repository engine.

Scripting Support

Scripting support provides the ability to validate properties and implement methods through Microsoft ActiveX® scripts. Model creators can assign scripts to methods that are defined in an information model. With scripting support, you no longer need to use aggregation to validate properties and implement methods. For more information, see Defining Script Objects.

New COM Interfaces

IClassDef2 Interface

IInterfaceMember2 Interface

IInterfaceDef2 Interface

IScriptDef Interface

Interface Implication

Interface implication enables a client to define an implication between two interfaces in an information model. Using IInterfaceDef2, you can simulate some of the functionality of multiple inheritance, which is not allowed in COM. For more information, see Interface Implication.

New COM Interfaces

IInterfaceDef2 Interface

Member Delegation

Member delegation extends the engine to support the delegation of derived members on one interface to base members on another interface. This delegation can be used to support relationship inheritance. Two interfaces support this new mapping capability: IInterfaceMember2 and IInterfaceDef2. For more information, see Member Delegation.

New COM Interfaces

IInterfaceMember2 Interface

IInterfaceDef2 Interface

Sharing Model Information

Model dependency allows model developers to define dependencies between information models to support the creation of more modular, integrated models. To support model dependency, use the new DependsOn collection of IReposTypeLib2. For more information, see Define Dependencies Between Type Libraries.

New COM Interfaces

IReposTypeLib2 Interface

Naming Semantics for Objects

Object naming semantics have been extended to support more consistent naming. In this version of repository engine, you can set the COLLECTION_OBJECTNAMING flag of CollectionDefFlag to specify an object name automatically when creating names for subsequent collections and relationships. For more information, see CollectionDefFlags Enumeration.

Parameter Support

Parameters can now be defined in models. Version 3.0 supports method parameter definitions so that model creation can include complete object descriptions. You can now use the Meta Data Services Software Development Kit (SDK) to generate fully descriptive Interface Definition Language (IDL) files from an information model. For more information, see Defining a Parameter.

New COM Interfaces

IMethodDef Interface

IParameterDef Interface

Enumeration Definition

Repository enumeration definition allows you to specify a property as an enumeration that has a fixed set of constant strings or integer values that correspond to real-world concepts. To use this feature, specify an EnumerationDef object and associated EnumerationValue objects and associate these with PropertyDef objects. For more information, see Repository Enumeration Definition.

New COM Interfaces

IEnumerationDef Interface

IEnumerationValueDef Interface

IPropertyDef2 Interface

Type Information Aliasing

Type information aliasing allows classes, interfaces, and relationships to be referred to by a second name (a synonym). You can implement type information aliasing through new interfaces.

New COM Interfaces

IReposTypeInfo Interface

IReposTypeInfo2 Interface

IInterfaceMember2 Interface

Version Labeling

Version labeling allows users to set or retrieve the version comments properties. Use IVersionAdminInfo2 to implement version labeling.

New COM Interfaces

IVersionAdminInfo2 Interface

Virtual Members

Virtual member support enables you to define nonpersistent members by setting the VIRTUAL_MEMBER flag on the InterfaceMemberFlags property. If this flag is set and the member is a property, the engine does not allocate a column for it in the interface's table. For more information, see Virtual Members and IInterfaceMember Flags Property.

See Also

Meta Data Services Overview

Repository Engine Programming Enhancements

Upgrading the Repository Engine

What's New in Meta Data Services