Template::Declare::TagSet is the base class for declaring packages of Template::Delcare tags. If you need to create new tags for use in your templates, this is the base class for you! Review the source code of Template::Declare::TagSet::HTML for a useful example.

Returns true if a tag has an alternative spelling. Basically it provides a way to work around naming conflicts. For example, the tr tag in HTML conflicts with Perl's tr operator, and the template tag in XUL conflicts with the template sub exported by Template::Declare::Tags.

Specifies whether <tag></tag> can be combined into a single token, <tag />. By default, all tags can be combined into a single token; override in a subclass to change this value where appropriate. For example, Template::Declare::TagSet::HTML->can_combine_empty_tags('img') returns true since <img src="..." /> is always required for HTML pages. Template::Declare::TagSet::HTML->can_combine_empty_tags('script'), on the other hand, returns false, since some browsers can't handle a single script token.