Characteristics of Declarative Components (continued)
Declarative components are composed of other components. For example, you could design a declarative component to include a facet (placeholder) for the product image component and facets for two text components to display a product description and product cost. You can also hide attributes, such as labels, of a declarative component, so that they cannot be changed by other developers who use the component.
A declarative component cannot be changed or customized at run time. It must be defined at design time, and uses the following definition files:
A JSP xml file (.jspx) that defines the rendered UI in terms of other JSF components, Facet references, and EL expressions resolved against the declarative component’s UI attributes; there is one such file for each declarative component
A declarativecomp-metadata.xml file that contains the declarative components’ file paths in the project; this file, located in the META-INF directory of the project, is shared across all declarative component definitions in an application or library