usnistgov / oscal-tools

Tools for the OSCAL project
https://pages.nist.gov/oscal-tools/
34 stars 17 forks source link

Parameter representation edge case, "NIST emulation" display XSLT #64

Open wendellpiez opened 1 year ago

wendellpiez commented 1 year ago

From OSCAL source, a pretty "official" rendering should look (something) like the official published PDF, when a parameter is referenced outside the control where it is defined (as happens here in SI-10(1) item a:

image

Note that in order to produce PDFs with formatting fidelity, a transformation must be able to provide the extra qualifier on the label as displayed, while the parameter itself is given only once (in the parent control, as needed).

See https://github.com/usnistgov/oscal-content/issues/113 for background.

GaryGapinski commented 1 year ago

One method would be to define a label on an insert referencing a single parameter. Some parameters have no label but instead have a selection (select). Multiple insert venues for a single parameter may have preferred prose for each venue.

Given existing OSCAL, the only way to get more than one label for a (singular) parameter is, unfortunately, to declare two parameters and define an equivalence (in all aspects other than label).

In both cases, the parameter reference has different prose values for the insertion point (and will ultimately be replaced with a chosen value or set of values). Current OSCAL allows rich text (markupLineType) for the prose (label or select/choice).

Or, direct RMF folks to lift parameters from text and declare them explicitly in the context, but not prose, of controls and control enhancements (a difference worthy of discussion). This is the same as a mandate to adopt structured representation suitable for mechanized use while affording rendition in prose (as opposed to using prose which might possibly be contorted into a form suitable for mechanized use).