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