Reference: OASIS JIRA entry SRAMP-14
Issue-014 from the contributed issues document
Upgrade lastModified… attributes to support longer history of changes.
Both lastModifiedTimestamp and lastModifiedBy currently are required and have a default cardinality of 1.
The question is should we change these attributes in the Core Model to their own type and then have a
sequence of them in the BaseArtifactType?
Current the model support single attributes for LastModifiedTimestamp and lastModifiedBy.
<xsd:complexType abstract="true" name="BaseArtifactType">
...
<xsd:attribute name="lastModifiedTimestamp" type="xsd:dateTime" use="required" />
<xsd:attribute name="lastModifiedBy" type="xsd:string" use="required" />
...
</xsd:complexType>
Figure 1. Coremodel XSD Fragment showing the single attributes for lastModifiedTimestamp and lastModifiedBy.
I think it makes sense for the repository to store the full history (modified by whom and when), however the downside is that this list could grow very large.
I recommend to leave the lastModifiedTimestamp and lastModifiedBy attributes but to add two optional Elements modifiedTimestamp and modifiedBy containing the full history. Figure 2 shows the two added element references.
<xsd:complexType abstract="true" name="BaseArtifactType">
<xsd:sequence>
...
<xsd:element ref="tns:modifiedTimestamp" minOccurs="0" maxOccurs="unbounded" />
<xsd:element ref="tns:modifiedBy" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
...
</xsd:complexType>
<xsd:element name="modifiedTimestamp" type="xsd:dateTime" />
<xsd:element name="modifiedBy" type="xsd:string" />
Figure 2. Adding modifiedTimestamp and modifiedBy elements to BaseArtifactType.
I recommend:
Don’t change the current implementation but add two optional element references modifiedTimestamp and modifiedBy.