### Configuration model attributes

Configuration models are described in the `feature-pack.xml` file under the `config` elements. A `feature-pack.xml` file may contain zero, one or more `config` elements. Each configuration may include the following *optional* attributes:

* `name` - the name of the configuration;

* `model` - the model name of the configuration.

In the XML it could look like this (the content of the `config` elements has been left out as not important in this example):
[source,xml]
----
<feature-pack xmlns="urn:jboss:galleon:feature-pack:1.0"
              groupId="org.jboss.pm.test" artifactId="fp1" version="1.0.0">
  <config>
    <!-- anonymous config -->
  </config>

  <config name="config1">
    <!-- named config -->
  </config>

  <config model="model1">
    <!-- model1 model-only config -->
  </config>

  <config model="model1" name="config1">
    <!-- named model1 config -->
  </config>

</feature-pack>
----

The `name` and `model` attributes are optional, which means it is well possible to define a configuration w/o those attributes. A feature pack may define zero, one or more anonymous configs.

The `name` and the `model` attributes serve as an identity of the config model. They are essential when customizing and merging configuration models.

If a config is associated only with the name (without the model) then only the name will be used as the identity of the config model. If a config is associated with both the name and the model then a combination of the name and the model will be used as the identity of the config model.

In the example above the named config *config1* and the named *model1:config1* config are two unrelated config models.

When a feature-pack is installed, by default all the configs defined in its `feature-pack.xml` are installed. Users may explicitly specify though which configs should the final installation include and customize those and/or provide their own custom configs.

