usnistgov / metaschema-node

Node tools and libraries providing a Metaschema toolchain
Other
3 stars 1 forks source link

Basic XML entity preprocessor #23

Closed nikitawootten-nist closed 2 years ago

nikitawootten-nist commented 2 years ago

User Story:

As a metaschema-node user reading in complex metaschemas, I may need to rely on BASIC processing of XML entities to load shared resources such as constraints shared between models.

OSCAL's metaschema definitions are an example of this. oscal_implementation-common_metaschema.xml for example has the following `DOCTYPE tag:

<!DOCTYPE METASCHEMA [
      <!ENTITY allowed-values-responsible-roles-operations SYSTEM "./shared-constraints/allowed-values-responsible-roles-operations.ent">
      <!ENTITY allowed-values-responsible-roles-component-production SYSTEM "./shared-constraints/allowed-values-responsible-roles-component-production.ent">
      <!ENTITY allowed-values-property-name-asset-type-values SYSTEM "./shared-constraints/allowed-values-property-name-asset-type-values.ent">
      <!ENTITY allowed-values-component_component_property-name SYSTEM "./shared-constraints/allowed-values-component_component_property-name.ent">
      <!ENTITY allowed-values-component_component_software SYSTEM "./shared-constraints/allowed-values-component_component_software.ent">
      <!ENTITY allowed-values-component_component_service SYSTEM "./shared-constraints/allowed-values-component_component_service.ent">
      <!ENTITY allowed-values-component_inventory-item_property-name SYSTEM "./shared-constraints/allowed-values-component_inventory-item_property-name.ent">
      <!ENTITY allowed-values-component_component_link-rel SYSTEM "./shared-constraints/allowed-values-component_component_link-rel.ent">
      <!ENTITY allowed-values-component-type SYSTEM "./shared-constraints/allowed-values-component-type.ent">
]>

Goals:

Dependencies:

Acceptance Criteria

nikitawootten-nist commented 2 years ago

After discussing the pros and cons of this stopgap we have decided to avoid building this out in lieu of the upcoming metaschema constraints overhaul.