This scenario demonstrates how a processor evaluates attribute values when it performs
conditional processing for an attribute that is bound to a set of controlled values.

A company defines a subject category for "Operating system", with a key set to "os". There are
sub-categories for Linux, Windows, and z/OS, as well as specific Linux variants: Red Hat Linux
and SuSE Linux. The company then binds the values that are enumerated in the "Operating system"
category to the @platform attribute.

The enumeration limits valid values for the @platform attribute to the
following: "linux", "redhat", "suse", "windows", and "zos". If any other values are encountered,
processors validating against the scheme should issue a warning.

The following table illustrates how filtering and flagging operate when the above map is
processed by a processor. The first two columns provide the values specified in the DITAVAL
file; the third and fourth columns indicate the results of the filtering or flagging
operation

att="platform" val="linux"

att="platform" val="redhat"

How platform="redhat" is evaluated

How platform="linux" is evaluated

action="exclude"

action="exclude"

Excluded.

Excluded.

action="include" or action="flag"

Excluded. This is an error condition, because if all "linux" content
is excluded, "redhat" also is excluded. Applications can
recover by generating an error message.

Excluded.

Unspecified

Excluded, because "redhat" is a kind of "linux", and "linux" is
excluded.

Excluded.

action="include"

action="exclude"

Excluded, because all "redhat" content is excluded.

Included.

action="include"

Included.

Included.

action="flag"

Included and flagged with the "redhat" flag.

Included.

Unspecified

Included, because all "linux" content is included.

Included.

action="flag"

action="exclude"

Excluded, because all "redhat" content is excluded.

Included and flagged with the "linux" flag.

action="include"

Included and flagged with the "linux" flag, because "linux" is flagged
and "redhat" is a type of "linux".

Included and flagged with the "linux" flag.

action="flag"

Included and flagged with the "redhat" flag, because a flag is
available that is specifically for "redhat".

Included and flagged with the "linux" flag.

Unspecified

Included and flagged with the "linux" flag, because "linux" is flagged
and "redhat" is a type of linux

Included and flagged with the "linux" flag.

Unspecified

action="exclude"

Excluded, because all "redhat" content is excluded

If the default for @platform values is "include",
this is included. If the default for @platform values is "exclude", this is
excluded.

action="include"

Included.

Included, because all "redhat" content is included, and general
Linux content also applies to RedHat

action="flag"

Included and flagged with the "redhat" flag.

Included, because all "redhat" content is included, and general
Linux content also applies to RedHat

Unspecified

If the default for @platform values is "include", this
is included. If the default for @platform values is "exclude", this is
excluded.

If the default for @platform values is "include",
this is included. If the default for @platform values is "exclude", this is
excluded.