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" /><xs:element name="RelationshipConstraintGroup" type="RelationshipConstraintGroup" />
- Flow
- A flow member declaration.
<xs:element name="RelationshipConstraint" type="RelationshipConstraint" />
- RelationshipConstraintGroup
- A group of constraints on the relationships in which instances of this object definition can participate.
<xs:element name="Constraint" type="ConstraintMember" />
- RelationshipConstraint
- Constraints on the relationships in which instances of this object definition can participate.
<xs:element name="ConstraintGroup" type="ConstraintGroup" />
- Constraint
- A constraint member declaration.
<xs:element name="EndpointDefinition" type="EndpointDefinition" />
- ConstraintGroup
- A group of constraints on the relationships in which instances of this object definition can participate.
<xs:element name="SystemDefinition" type="SystemDefinition" />
- EndpointDefinition
- A nested endpoint definition. This definition can be used by members within the scope of the outer system definition.
<xs:element name="ResourceDefinition" type="ResourceDefinition" />
- SystemDefinition
- A nested system definition. This definition can be used by members within the scope of the outer system definition.
<xs:element name="CommunicationDefinition" type="CommunicationDefinition" />
- ResourceDefinition
- A nested resource definition. This definition can be used by members within the scope of the outer system definition.
<xs:element name="ContainmentDefinition" type="ContainmentDefinition" />
- CommunicationDefinition
- A nested communication definition. This definition can be used by members within the scope of the outer system definition.
<xs:element name="DelegationDefinition" type="DelegationDefinition" />
- ContainmentDefinition
- A nested containment definition. This definition can be used by members within the scope of the outer system definition.
<xs:element name="ReferenceDefinition" type="ReferenceDefinition" />
- DelegationDefinition
- A nested delegation definition. This definition can be used by members within the scope of the outer system definition.
<xs:element name="HostingDefinition" type="HostingDefinition" />
- ReferenceDefinition
- A nested reference definition. This definition can be used by members within the scope of the outer system definition.
<xs:element name="Endpoint" type="EndpointMember" />
- HostingDefinition
- A nested hosting definition. This definition can be used by members within the scope of the outer system definition.
<xs:element name="Subsystem" type="SystemMember" />
- Endpoint
- An endpoint member declaration that references an endpoint definition.
<xs:element name="Resource" type="ResourceMember" />
- Subsystem
- A subsystem member declaration that references a system definition.
<xs:element name="Hosting" type="HostingMember" />
- Resource
- A resource member declaration that references a resource definition.
<xs:element name="Containment" type="ContainmentMember" />
- Hosting
- A hosting relationship member declaration.
<xs:element name="Connection" type="CommunicationMember" />
- Containment
- A containment relationship member declaration.
<xs:element name="Delegation" type="DelegationMember" />
- Connection
- A connection relationship member declaration.
<xs:element name="Reference" type="ReferenceMember" />
- Delegation
- A delegation relationship member declaration.
</xs:choice> <xs:attribute name="Layer" type="string" use="optional" />
- Reference
- A reference relationship member declaration.
<xs:attribute name="Extends" type="QualifiedName" 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="Abstract" type="boolean" use="optional" />
- Extends
- Base object definition from which this object definition derives.
</xs:extension> </xs:complexContent> </xs:complexType>
- 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.
- 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. |