dmaClass_CSRelationship

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

added for the CSDocs Foundation, revision 0.02

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 Reflective
Property
OIID - Yes Yes - String Scalar    
Class Description Yes Yes Yes Yes Object Scalar Class Description n/a
This - Yes Yes Yes Object Scalar Relationship This
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 CSRoots
Tail Yes - - Yes Object Scalar DocVersion CSComponents
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 supported and it has a non-NULL DmaId value, then a specific rendition of the CSComponent participates in this CSRelationship.   The Rendition object involved is the one in the CSComponent's dmaProp_Renditions list property having the matching InstanceId property value.  If there is no such Rendition, the CSRelationship has been broken.

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 this relationship, and vice versa.

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.

Head Content Element Id {dmaProp_HeadContentElementId}

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

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 having the matching InstanceId property.  If there is no such Content Element, the CSRelationship has been broken.

If this property is supported, and it has no value (or the value is the NULL DmaId), then the participating element is not a definite content element. The participating element is determined in accordance with the rules for the Head Rendition Id property.

If this property is not supported, the participating element of the CSComponent is determined by the rules for Head Rendition Id.

Tail Rendition Id {dmaProp_TailRenditionId}

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

If this property is supported, and it has no value (or the value is the NULL DmaId), then this CSRelationship is not specific to a rendition of the CSRoot.    It must be assumed that all of the CSRoot may be impacted through this CSRelationship to the identified CSComponent, and vice versa.

If this property is not supported, the entire CSRoot is involved in this CSRelationship. There is no further CSDocs information on how much of and in what way the CSRoot is involved in the CSRelationship.

Tail Content Element Id {dmaProp_TailContentElementId}

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

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

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 is not a specific content element.  The participating element of the CSRoot is determined by the rules for Tail Rendition Id.

If this property is not supported, the participating element of the CSRoot is determined by the rules for Tail Rendition Id.

$$Author: Orcmid $
$$Date: 99-08-31 20:46 $
$$Revision: 7 $