RelationshipConstraint Complex Type Complex Type
RelationshipConstraint Complex Type
Defines the elements that constrain the relationships in which an object can participate.
A relationship constraint identifies the relationship definition, optionally the object definition of the instance at the other end of the relationship, and the cardinality of the relationship. The constraint is given a name so that it can be identified in error messages. The body of the relationship constraint contains nested constraints that further refine this constraint.
<xs:complexType name="RelationshipConstraint"> <xs:complexContent> <xs:extension base="StructuralConstraint" > <xs:choice minOccurs="0" maxOccurs="unbounded" > <xs:element name="Constraint" type="ConstraintMember" />
- Constraint
Constraints on the values of settings within the relationship or on objects at the other end of the relationship.
<xs:element name="RelationshipConstraint" type="RelationshipConstraint" />
- RelationshipConstraint
Defines a relationship constraint that will be evaluated in the context of the target object instance.
<xs:element name="ObjectConstraint" type="ObjectConstraint" />
- ObjectConstraint
Defines an object constraint that is evaluated in the context of the matched relationship instance.
<xs:element name="ConstraintGroup" type="ConstraintGroup" />
- ConstraintGroup
Defines a nested ConstraintGroup.
<xs:element name="RelationshipConstraintGroup" type="RelationshipConstraintGroup" />
- RelationshipConstraintGroup
Defines a nested RelationshipConstraintGroup.
<xs:element name="ObjectConstraintGroup" type="ObjectConstraintGroup" />
- ObjectConstraintGroup
Defines a nested ObjectConstraintGroup.
</xs:choice> <xs:attribute name="RelationshipDefinition" type="QualifiedName" use="required" />
- RelationshipDefinition
Defines the relationships that will be matched.
<xs:attribute name="TargetRole" type="RolesList" use="required" />
- TargetRole
The direction of the relationship using the name of the role in which the object at the other end of the relationship participates.
<xs:attribute name="TargetObjectDefinition" type="QualifiedName" use="optional" />
- TargetObjectDefinition
Optional name of the definition for the object on the other side of the relationship.
<xs:attribute name="MinOccurs" type="MinOccurs" use="optional" />
- MinOccurs
Minimum number of relationship instances that this constraint can match.
<xs:attribute name="MaxOccurs" type="MaxOccurs" use="optional" />
- MaxOccurs
Maximum number of relationship instances that this constraint can match.
<xs:attribute name="DelegationAware" type="boolean" use="optional" />
- DelegationAware
true if the constraint will see delegation relationships. false if delegation relationships will be rolled up and only the results of this rollup will be exposed to the constraint. The default is false.
</xs:extension> </xs:complexContent> </xs:complexType>
- RelationshipConstraint
Child Elements
Element | Type | Description |
---|---|---|
Constraint | ConstraintMember | Constraints on the values of settings within the relationship or on objects at the other end of the relationship. |
ConstraintGroup | ConstraintGroup | Defines a nested ConstraintGroup. |
ObjectConstraint | ObjectConstraint | Defines an object constraint that is evaluated in the context of the matched relationship instance. |
ObjectConstraintGroup | ObjectConstraintGroup | Defines a nested ObjectConstraintGroup. |
RelationshipConstraint | RelationshipConstraint | Defines a relationship constraint that will be evaluated in the context of the target object instance. |
RelationshipConstraintGroup | RelationshipConstraintGroup | Defines a nested RelationshipConstraintGroup. |
Attributes
Name | Type | Description |
---|---|---|
DelegationAware | boolean | true if the constraint will see delegation relationships. false if delegation relationships will be rolled up and only the results of this rollup will be exposed to the constraint. The default is false. |
MaxOccurs | MaxOccurs | Maximum number of relationship instances that this constraint can match. |
MinOccurs | MinOccurs | Minimum number of relationship instances that this constraint can match. |
RelationshipDefinition | QualifiedName | Defines the relationships that will be matched. |
TargetObjectDefinition | QualifiedName | Optional name of the definition for the object on the other side of the relationship. |
TargetRole | RolesList | The direction of the relationship using the name of the role in which the object at the other end of the relationship participates. |
Remarks
There are two possibilities for the role you select in any given constraint, depending on the relationship.
- If the relationship (the RelationshipDefinition attribute on the <RelationshipConstraint> element) is a HostingDefinition, the target role can only be either Host or Guest.
- If the relationship is a ContainmentDefinition, the target role can only be either Parent or Member.
- If the relationship is a DelegationDefinition, the target rolse can only be either Proxy or Delegate.
- If the relationship is a CommunicationDefinition, the target role can only be either Client or Server.
- If the relationship is a ReferenceDefinition, the target role can be either Source or Dependent.
See Also
SystemDefinitionModel Schema Complex Types
Send comments about this topic to Microsoft
Build date: 10/2/2007