Skip to content

Commit 48a2458

Browse files
Chris Comptonaj-stein-nist
authored andcommitted
Adds a constraint and index of by-component objects to support provided-by relation in links #1022 (#1452)
* Adds a constraint and index of by-component objects to support provided-by relation in links #1022 * Fix path in by-component-export-provided-uuid index to include statement level.
1 parent 89f6831 commit 48a2458

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

src/metaschema/oscal_ssp_metaschema.xml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,11 @@
4545
<assembly ref="control-implementation" min-occurs="1"/>
4646
<assembly ref="back-matter"/>
4747
</model>
48+
<constraint>
49+
<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">
50+
<key-field target="@uuid"/>
51+
</index>
52+
</constraint>
4853
</define-assembly>
4954

5055
<!-- ######################################################### -->
@@ -672,7 +677,7 @@
672677
<p>Since multiple <code>set-parameter</code> entries can be provided, each parameter must be set only once.</p>
673678
</remarks>
674679
</is-unique>
675-
<index name="by-component-export-provided-uuid" target="implemented-requirement/by-component/export/provided">
680+
<index name="by-component-export-provided-uuid" target="implemented-requirement//by-component/export/provided">
676681
<key-field target="@uuid"/>
677682
</index>
678683
</constraint>
@@ -1042,6 +1047,13 @@
10421047
<p>Since multiple <code>set-parameter</code> entries can be provided, each parameter must be set only once.</p>
10431048
</remarks>
10441049
</is-unique>
1050+
1051+
<allowed-values target="link/@rel">
1052+
<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>
1053+
</allowed-values>
1054+
<index-has-key name="by-component-uuid" target="link[@rel='provided-by']">
1055+
<key-field target="@href" pattern="#(.*)" />
1056+
</index-has-key>
10451057
</constraint>
10461058
<remarks>
10471059
<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>

0 commit comments

Comments
 (0)