Share via


ObjectDefinition complex type [SDM]

 
Platform SDK: System Definition Model Overview

ObjectDefinition Complex Type

Note: This documentation is preliminary and is subject to change.

Defines the elements that contain the base information to define the object which abstract and concrete object definitions extend.

<xs:complexType name="ObjectDefinition">
    <xs:complexContent>
        <xs:extension
            base="Definition"
        >
            <xs:choice
                minOccurs="0"
                maxOccurs="unbounded"
            >
                <xs:element name="Flow"
                    type="FlowMember"
                    minOccurs="0"
                    maxOccurs="unbounded"
                 />
Flow
A flow member declaration.
<xs:element name="RelationshipConstraintGroup" type="RelationshipConstraintGroup" />
RelationshipConstraintGroup
A group of constraints on the relationships in which instances of this object definition can participate.
<xs:element name="RelationshipConstraint" type="RelationshipConstraint" />
RelationshipConstraint
Constraints on the relationships in which instances of this object definition can participate.
<xs:element name="Constraint" type="ConstraintMember" />
Constraint
A constraint member declaration.
<xs:element name="ConstraintGroup" type="ConstraintGroup" />
ConstraintGroup
A group of constraints on the relationships in which instances of this object definition can participate.
<xs:element name="EndpointDefinition" type="EndpointDefinition" />
EndpointDefinition
A nested endpoint definition. This definition can be used by members within the scope of the outer system definition.
<xs:element name="SystemDefinition" type="SystemDefinition" />
SystemDefinition
A nested system definition. This definition can be used by members within the scope of the outer system definition.
<xs:element name="ResourceDefinition" type="ResourceDefinition" />
ResourceDefinition
A nested resource definition. This definition can be used by members within the scope of the outer system definition.
<xs:element name="CommunicationDefinition" type="CommunicationDefinition" />
CommunicationDefinition
A nested communication definition. This definition can be used by members within the scope of the outer system definition.
<xs:element name="ContainmentDefinition" type="ContainmentDefinition" />
ContainmentDefinition
A nested containment definition. This definition can be used by members within the scope of the outer system definition.
<xs:element name="DelegationDefinition" type="DelegationDefinition" />
DelegationDefinition
A nested delegation definition. This definition can be used by members within the scope of the outer system definition.
<xs:element name="ReferenceDefinition" type="ReferenceDefinition" />
ReferenceDefinition
A nested reference definition. This definition can be used by members within the scope of the outer system definition.
<xs:element name="HostingDefinition" type="HostingDefinition" />
HostingDefinition
A nested hosting definition. This definition can be used by members within the scope of the outer system definition.
<xs:element name="Endpoint" type="EndpointMember" />
Endpoint
An endpoint member declaration that references an endpoint definition.
<xs:element name="Subsystem" type="SystemMember" />
Subsystem
A subsystem member declaration that references a system definition.
<xs:element name="Resource" type="ResourceMember" />
Resource
A resource member declaration that references a resource definition.
<xs:element name="Hosting" type="HostingMember" />
Hosting
A hosting relationship member declaration.
<xs:element name="Containment" type="ContainmentMember" />
Containment
A containment relationship member declaration.
<xs:element name="Connection" type="CommunicationMember" />
Connection
A connection relationship member declaration.
<xs:element name="Delegation" type="DelegationMember" />
Delegation
A delegation relationship member declaration.
<xs:element name="Reference" type="ReferenceMember" />
Reference
A reference relationship member declaration.
</xs:choice> <xs:attribute name="Layer" type="string" use="optional" />
Layer
The layer at which this abstract object definition can be used. If it is not provided, the abstract object definition can be used at any layer.
<xs:attribute name="Extends" type="QualifiedName" use="optional" />
Extends
Base object definition from which this object definition derives.
<xs:attribute name="Abstract" type="boolean" use="optional" />
Abstract
true if this object can be instantiated; otherwise false. If it is marked as abstract, then the definition must be extended to complete the missing elements. The default is false.
</xs:extension> </xs:complexContent> </xs:complexType>
ObjectDefinition
Defines the elements that contain the base information to define the object which abstract and concrete object definitions extend.

Child Elements

Element Type Description
CommunicationDefinition CommunicationDefinition A nested communication definition. This definition can be used by members within the scope of the outer system definition.
Connection CommunicationMember A connection relationship member declaration.
Constraint ConstraintMember A constraint member declaration.
ConstraintGroup ConstraintGroup A group of constraints on the relationships in which instances of this object definition can participate.
Containment ContainmentMember A containment relationship member declaration.
ContainmentDefinition ContainmentDefinition A nested containment definition. This definition can be used by members within the scope of the outer system definition.
Delegation DelegationMember A delegation relationship member declaration.
DelegationDefinition DelegationDefinition A nested delegation definition. This definition can be used by members within the scope of the outer system definition.
Endpoint EndpointMember An endpoint member declaration that references an endpoint definition.
EndpointDefinition EndpointDefinition A nested endpoint definition. This definition can be used by members within the scope of the outer system definition.
Flow FlowMember A flow member declaration.
Hosting HostingMember A hosting relationship member declaration.
HostingDefinition HostingDefinition A nested hosting definition. This definition can be used by members within the scope of the outer system definition.
Reference ReferenceMember A reference relationship member declaration.
ReferenceDefinition ReferenceDefinition A nested reference definition. This definition can be used by members within the scope of the outer system definition.
RelationshipConstraint RelationshipConstraint Constraints on the relationships in which instances of this object definition can participate.
RelationshipConstraintGroup RelationshipConstraintGroup A group of constraints on the relationships in which instances of this object definition can participate.
Resource ResourceMember A resource member declaration that references a resource definition.
ResourceDefinition ResourceDefinition A nested resource definition. This definition can be used by members within the scope of the outer system definition.
Subsystem SystemMember A subsystem member declaration that references a system definition.
SystemDefinition SystemDefinition A nested system definition. This definition can be used by members within the scope of the outer system definition.

Attributes

Name Type Description
Abstract boolean true if this object can be instantiated; otherwise false. If it is marked as abstract, then the definition must be extended to complete the missing elements. The default is false.
Extends QualifiedName Base object definition from which this object definition derives.
Layer string The layer at which this abstract object definition can be used. If it is not provided, the abstract object definition can be used at any layer.

Remarks

If the Abstract attribute is marked False, the object is concrete. The Visual Studio 2005 design surface uses abstract object definitions. The object definitions output by an SDM project from Visual Studio 2005 are concrete. Therefore, an SDM SDK user who is creating SDM object models never needs to create a concrete object definition directly for an object definition that will be used in Visual Studio 2005.

Abstract object definitions extend SDM objects by adding simple inheritance. The Extends attribute is used to identify a base object definition for an abstract object definition. The abstract object definition then inherits the settings and relationship constraints from that base object definition. Through inheritance, the object definition can extend the settings and constraints of the abstract object definition by adding new settings and constraints.

Object definitions can also contain declarations of nested definitions. These definitions can be used for members within the scope of the containing definitions and referenced in constraints outside the scope of the definition.

Note  Objects that are marked as abstract cannot contain object or relationship members.

See Also

SystemDefinitionModel Schema Complex Types

  
  Last updated: June 2005  |  What did you think of this topic?  |  Order a Platform SDK CD
  © Microsoft Corporation. All rights reserved. Terms of use.