# xsl:attribute-set

The `xsl:attribute-set` element is used to declare a named collection of attributes, which will often be used together to define an output style. It is declared at the top level (subordinate to `xsl:stylesheet`).

An attribute-set contains a collection of `xsl:attribute` elements.

The attributes in an attribute-set can be used in several ways:

- They can be added to a literal result element by specifying `xsl:use-attribute-sets` in the list of attributes for the element. The value is a space-separated list of attribute-set names. Attributes specified explicitly on the literal result element, or added using `xsl:attribute`, override any that are specified in the attribute-set definition.

- They can be added to an element created using `xsl:element`, by specifying use-attribute-sets in the list of attributes for the xsl:element element. The value is a space-separated list of attribute-set names. Attributes specified explicitly on the literal result element, or added using `xsl:attribute`, override any that are specified in the attribute-set definition.

- One attribute set can be based on another by specifying `use-attribute-sets` in the list of attributes for the `xsl:attribute-set` element. Again, attributes defined explicitly in the attribute set override any that are included implicitly from another attribute set.

Attribute sets named in the `xsl:use-attribute-sets` or `use-attribute-sets` attribute are applied in the order given: if the same attribute is generated more than once, the later value always takes precedence.

Next