RelationshipConstraint Complex Type 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"
                 />
                <xs:element name="RelationshipConstraint"
                    type="RelationshipConstraint"
                 />
                <xs:element name="ObjectConstraint"
                    type="ObjectConstraint"
                 />
                <xs:element name="ConstraintGroup"
                    type="ConstraintGroup"
                 />
                <xs:element name="RelationshipConstraintGroup"
                    type="RelationshipConstraintGroup"
                 />
                <xs:element name="ObjectConstraintGroup"
                    type="ObjectConstraintGroup"
                 />
            </xs:choice>
            <xs:attribute name="RelationshipDefinition"
                type="QualifiedName"
                use="required"
             />
            <xs:attribute name="TargetRole"
                type="RolesList"
                use="required"
             />
            <xs:attribute name="TargetObjectDefinition"
                type="QualifiedName"
                use="optional"
             />
            <xs:attribute name="MinOccurs"
                type="MinOccurs"
                use="optional"
             />
            <xs:attribute name="MaxOccurs"
                type="MaxOccurs"
                use="optional"
             />
            <xs:attribute name="DelegationAware"
                type="boolean"
                use="optional"
             />
        </xs:extension>
    </xs:complexContent>
</xs:complexType>

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: 9/5/2007