Conditional processing attributes
Metadata attributes typically are used for the following purposes:
- Filtering content based on the attribute values, for example, to suppress or publish profiled content
 - Flagging content based on the attribute values, for example, to highlight specific content on output
 - Performing custom processing, for example, to extract business-critical data and store it in a database
 
Typically @audience, @platform, @product, @otherprops, @props, @deliveryTarget, and specializations of the @props attributes are used for filtering; the same attributes plus the @rev attribute are used for flagging. The @status and @importance attributes, as well as custom attributes specialized from @base, are used for application-specific behavior, such as identifying metadata to aid in search and retrieval.
Filtering and flagging attributes
The following conditional-processing attributes are available on most elements:
- @product
 - The product that is the subject of the discussion.
 - @platform
 - The platform on which the product is deployed.
 - @audience
 - The intended audience of the content.
 - @deliveryTarget
 - The intended delivery target of the content, for example
                  "html", "pdf", or "epub". This attribute is a replacement for the now deprecated
                  @print attribute.
                  
The @deliveryTarget attribute is specialized from the @props attribute. It is defined in the deliveryTargetAttDomain, which is integrated into all OASIS-provided document-type shells. If this domain is not integrated into a given document-type shell, the @deliveryTarget attribute will not be available.
 - @rev
 - The revision or draft number of the current document. (This is used only for flagging.)
 - @otherprops
 - Other properties that do not require semantic identification.
 - @props
 - A generic conditional processing attribute that can be specialized to create new semantic conditional-processing attributes.
 
Other metadata attributes
Other attributes are still considered metadata on an element, but they are not designed for filtering or flagging.
- @importance
 - The degree of priority of the content. This attribute takes a single value from an enumeration.
 - @status
 - The current state of the content. This attribute takes a single value from an enumeration.
 - @base
 - A generic attribute that has no specific purpose, but is intended to act as the basis for specialized attributes that have a simple value syntax like the conditional processing attributes (one or more alphanumeric values separated by whitespace or parenthesized groups of values).
 - @outputclass
 - Provides a label on one or more element instances, typically to specify a role or
                  other semantic distinction. As the @outputclass attribute does not
                  provide a formal type declaration or the structural consistency of specialization,
                  it should be used sparingly, usually only as a temporary measure while a
                  specialization is developed. For example, <uicontrol>
                  elements that define button labels could be distinguished by adding an
                  @outputclass attribute:
                  
<uicontrol outputclass="button">Cancel</uicontrol>
The value of the @outputclass attribute can be used to trigger XSLT or CSS rules, while providing a mapping to be used for future migration to a more specialized set of user interface elements.