Class Catalog

  • All Implemented Interfaces:
    ICatalog, IControlContainer, IGroupContainer, IOscalInstance

    @MetaschemaAssembly(formalName="Catalog",
                        description="A structured, [organized collection](https://pages.nist.gov/OSCAL/concepts/terminology/#catalog) of control information.",
                        name="catalog",
                        metaschema=OscalCatalogMetaschema.class,
                        rootName="catalog",
                        remarks="Catalogs may use one or more `group` objects to subdivide the control contents of a catalog.")
    @AllowedValues(level=ERROR,target="metadata/prop[has-oscal-namespace(\'http://csrc.nist.gov/ns/oscal\')]/@name",values={@AllowedValue(value="resolution-tool",description="The tool used to produce a resolved profile."),@AllowedValue(value="source-profile-uuid",description="The document-level `uuid` of the source profile from which the catalog was produced by [profile resolution](https://pages.nist.gov/OSCAL/concepts/processing/profile-resolution/).")}) @AllowedValues(level=ERROR,target="metadata/link/@rel",allowOthers=true,values={@AllowedValue(value="source-profile",description="The profile from which the catalog was produced by [profile resolution](https://pages.nist.gov/OSCAL/concepts/processing/profile-resolution/)."),@AllowedValue(value="source-profile-uuid",description="The document-level `uuid` of the profile from which the catalog was produced by [profile resolution](https://pages.nist.gov/OSCAL/concepts/processing/profile-resolution/).")})
    @Index(level=ERROR,target="//part",name="catalog-parts",keyFields=@KeyField(target="@id")) @Index(level=ERROR,target="//prop",name="catalog-props",keyFields=@KeyField(target="@uuid")) @Index(level=ERROR,target="//(control|group|part)",name="catalog-groups-controls-parts",keyFields=@KeyField(target="@id")) @Index(level=ERROR,target="//control",name="catalog-controls",keyFields=@KeyField(target="@id")) @Index(level=ERROR,target="//param",name="catalog-params",keyFields=@KeyField(target="@id")) @Index(level=ERROR,target="//group",name="catalog-groups",keyFields=@KeyField(target="@id"))
    public class Catalog
    extends AbstractCatalog
    A structured, organized collection of control information.