### Configuration model attributes

Configuration models are described in `feature-pack.xml` file using `config` elements. `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 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>
----

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

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

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

In the example above config named *config1* and config *model1:config1* 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.

