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 in it a database
Typically @audience, @platform, @product, @otherprops, @props, 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:
- The product that is the subject of the discussion.
- The platform on which the product is deployed.
- The intended audience of the content.
- The revision or draft number of the current document. (This is typically used only for flagging.)
- Other properties that do not require semantic identification.
- A generic conditional processing attribute that can be specialized to create new semantic conditional processing attributes.
In general, a conditional processing attribute provides
a list of one or more values separated with whitespace. For instance,
audience="administrator programmer" qualifies the content
as applying to administrators and programmers.
Other metadata attributes
Other attributes are still considered metadata on an element, but they are not designed for filtering or flagging.
- The degree of priority of the content. This attribute takes a single value from an enumeration.
- The current state of the content. This attribute takes a single value from an enumeration.
- 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).
- 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 may 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.