dmaClass_CSRelationship

This is the base class for for CSDocs relationships between CSRoot DocVersions and CSComponent DocVersions.

added for the CSDocs Foundation

Class ID: dmaClass_CSRelationship
Superclass: Relationship

Interfaces

IUnknown
IdmaObject
IdmaProperties
IdmaEditProperties [Optional]
IdmaConnection [Optional]
IdmaRelationshipOrdering [Optional]

Properties

Name Impl. Required System Gen'ed Read-Only Value Required Type Cardinality Required Class
OIID - Yes Yes - String Scalar  
Class Description Yes Yes Yes Yes Object Scalar Class Description
This - Yes Yes Yes Object Scalar Relationship
Create Pending - Yes Yes Yes Boolean Scalar  
Update Pending - Yes Yes Yes Boolean Scalar  
Delete Pending - Yes Yes Yes Boolean Scalar  
Instance Id - Yes Yes - DmaId Scalar  
Head Yes - - Yes Object Scalar DocVersion
Tail Yes - - Yes Object Scalar DocVersion
Head Rendition Id - - - - DmaId Scalar  
Head Content Element Id - - - - DmaId Scalar  
Tail Rendition Id - - - - DmaId Scalar  
Tail Content Element Id - - - - DmaId Scalar  

Detailed Description

The dmaClass_CSRelationship class models the association between a root document and a component document as part of the DMA CSDocs compound/structured documents model.  The CSRelationship is directed from a CSRoot DocVersion at the Tail to a CSComponent DocVersion at the Head. 

For CSRelationship subclasses, the Head reflective property is always the dmaProp_CSRoots property (pointing backward from the CSComponent through the CSRelationship to the CSRoot).  The CSRelationship Tail reflective property is always the dmaProp_CSComponents property (pointing forward from the CSRoot through the CSRelationship to the CSComponent).

There are potentially several CSRelationship instances between the same CSRoot DocVersion and CSComponent DocVersion.  The ability to distinguish them is dependent on the existence of additional properties, including the InstanceId-matching properties and other decorations of the CSRelationship subclass.

Property Descriptions

• OIID {dmaProp_OIID}
Property Inherited from DMA

• Class Description {dmaProp_ClassDescription}
Property Inherited from DMA

• This {dmaProp_This}
Property Inherited from DMA

• Create Pending {dmaProp_CreatePending}
Property Inherited from DMA

• Update Pending {dmaProp_UpdatePending}
Property Inherited from DMA

• Delete Pending {dmaProp_DeletePending}
Property Inherited from DMA

Instance Id {dmaProp_InstanceId}
Property Inherited from DMA

[This addition is made to all well-known classes]

• Head {dmaProp_Head}
Property Inherited from Relationship

• Tail {dmaProp_Tail}
Property Inherited from Relationship

Head Rendition Id {dmaProp_HeadRenditionId}

If this property is not supported, the CSComponent is simply the DocVersion at the Head.   There is no further CSDocs information on how much of and in what way the CSComponent is employed in the compound/structured document via this CSRelationship.

If this property is supported, and it has no value (or the value is the NULL DmaId), then the employment of the CSComponent in the compound/structured document via this CSRelationship is not specific to a rendition of the CSComponent.   It must be assumed that changes anywhere in the CSComponent may impact the portion of the CSRoot that is involved in the relationship.

If this property is supported and it has a non-NULL DmaId value, then a specific rendition of the CSComponent participates in the compound/structured document via this CSRelationship.   The Rendition object involved is the one in the CSComponent's dmaProp_Renditions list property that has the matching InstanceId property value.  If there is no such Rendition, the CSRelationship has been broken.

Head Content Element Id {dmaProp_HeadContentElementId}

If this property is not supported, the participating element of the CSComponent is determined in accordance with the definition of the Head Rendition Id property.

If this property is supported, the Head Rendition Id property must also be supported.

If this property is supported, and it has no value (or the value is the NULL DmaId), then the employment of the CSComponent in the compound/structured document via this CSRelationship is not specific to a content element of a rendition of the CSComponent.

If this property is supported and it has a non-NULL DmaId value, then so does the Head Rendition Id property.  A specific content element of the CSComponent participates in the compound/structured document via this CSRelationship.   The Content Element object involved is the one in the identified rendition's dmaProp_ContentElements list property that has the matching InstanceId property.  If there is no such Content Element, the CSRelationship has been broken.

Tail Rendition Id {dmaProp_TailRenditionId}

If this property is not supported, the CSRoot is simply the DocVersion at the Tail.  There is no further CSDocs information on how much of and in what way the CSRoot is related to the CSComponent via this CSRelationship.

If this property is supported, and it has no value (or the value is the NULL DmaId), then the employment of the CSComponent in the compound/structured document via this CSRelationship is not specific to a rendition of the CSComponent.   It must be assumed that any change to the identified CSComponent can impact any and all of the CSRoot participating in this CSRelationship.

If this property is supported and it has a non-NULL DmaId value, then a specific rendition of the CSRoot participates in the CSRelationship with the identified CSComponent..   The Rendition object involved is the one in the CSRoot's dmaProp_Renditions list property that has the matching InstanceId property value.   If there is no such Rendition, the CSRelationship has been broken.

Tail Content Element Id {dmaProp_TailContentElementId}

If this property is not supported, the participating element of the CSRoot is determined in accordance with the definition of the Tail Rendition Id property.

If this property is supported, the Tail Rendition Id property must also be supported.

If this property is supported, and it has no value (or the value is the NULL DmaId), then the portion of the CSRoot involved in this CSRelationship to the identified CSComponent  is not a specific content element of a rendition of the CSComponent. 

If this property is supported and it has a non-NULL DmaId value, then so does the Tail Rendition Id property and a specific rendition content element of the CSRoot is involved in the CSRelationship to the identified CSComponent.  The Content Element object involved is the one in the identified CSRoot Rendition's dmaProp_ContentElements list property that has the matching InstanceId property.  If there is no such Content Element, the CSRelationship has been broken.

$$Author: Orcmid $
$$Date: 99-07-27 12:55 $
$$Revision: 5 $