Skip to content

Commit

Permalink
Adds a constraint and index of by-component objects to support provid…
Browse files Browse the repository at this point in the history
…ed-by relation in links usnistgov#1022
  • Loading branch information
Compton-US committed Sep 9, 2022
1 parent 34103e9 commit fabb129
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions src/metaschema/oscal_ssp_metaschema.xml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,11 @@
<assembly ref="control-implementation" min-occurs="1"/>
<assembly ref="back-matter"/>
</model>
<constraint>
<index name="by-component-uuid" target="control-implementation/implemented-requirement//by-component|doc(system-implementation/leveraged-authorization/link[@rel='system-security-plan']/@href)/system-security-plan/control-implementation/implemented-requirement//by-component">
<key-field target="@uuid"/>
</index>
</constraint>
</define-assembly>

<!-- ######################################################### -->
Expand Down Expand Up @@ -1045,6 +1050,13 @@
<p>Since multiple <code>set-parameter</code> entries can be provided, each parameter must be set only once.</p>
</remarks>
</is-unique>

<allowed-values target="link/@rel">
<enum value="provided-by">A reference to the UUID of a control or statement <code>by-component</code> object that is used as evidence of implementation.</enum>
</allowed-values>
<index-has-key name="by-component-uuid" target="link[@rel='provided-by']">
<key-field target="@href" pattern="#(.*)" />
</index-has-key>
</constraint>
<remarks>
<p>Use of <code>set-parameter</code> in this context, sets the parameter for the control referenced in the containing <code>implemented-requirement</code> applied to the referenced component. If the <code>by-component</code> is used as a child of a <code>statement</code>, then the parameter value also applies only in the context of the referenced statement. If the same parameter is also set in the <code>control-implementation</code> or a specific <code>implemented-requirement</code>, then this <code>by-component/set-parameter</code> value will override the other value(s) in the context of the referenced component, control, and statement (if parent).</p>
Expand Down

0 comments on commit fabb129

Please sign in to comment.