-
Type:
Improvement
-
Resolution: Unresolved
-
Priority:
Major
-
None
-
Affects Version/s: CSD05
-
Component/s: None
-
None
In CSD4, "properties defined by an Artifact Type are assummed to be invariant across the contexts in which corresponding artifacts are used". So, we can define a "const" attribute to mean the corresponding element MUST be invariant. For example, an ArfifactType with PropertiesDefinition which cannot be invariant can be defined as:
<ArtifactType name="RPMPackage">
<DerivedFrom typeRef="ba:OSPackage"/>
<PropertiesDefinition element="map:RPMPackageProperties" const="true"/>
</ArtifactType>
Additionally, this method can also cover the Mr. Tad Deffler [[email protected]]'s suggestion, i.e. if a ServiceTemplate (or xxxType) developer does not want others to modify his/her definition, how to guarantee this? (details can be seen in the email of Mr. Tad Deffler). So, a NodeType element can be defined as
<NodeType name="xs:NCName" targetNamespace="xs:anyURI"? abstract="yes|no"? final="yes|no"? const="yes|no"?>
A serviceTemplate element can be defined as
<ServiceTemplate id="xs:ID"
name="xs:string"?
targetNamespace="xs:anyURI"
substitutableNodeType="xs:QName"?
const="yes|no"?>
Other elements can be defined similarly.