<subjectScheme>

The <subjectScheme> element defines controlled values and taxonomic subjects.

The <subjectScheme> element is specialized from <map>. It is defined in the subject scheme module.

The following attributes are available on this element: architectural attributes, common map attributes, universal attributes, @format, @scope, and @type.

For this element, the following considerations apply:
  • The @processing-role attribute has a default value of resource-only.
  • The @toc attribute has a default value of no.

Example

The following code sample shows a subject scheme map:

<subjectScheme>
  <!-- Pull in a scheme that defines values for @deliveryTarget -->
  <schemeref href="deliveryTarget.ditamap"/>
  <!-- Define values for Windows and Linux -->
  <subjectdef keys="operating-systems">
    <subjectdef keys="windows">
      <subjectdef keys="windows-10"/>
      <subjectdef keys="windows-11"/>
    </subjectdef>
    <subjectdef keys="linux">
      <subjectdef keys="redhat"/>
      <subjectdef keys="suse"/>
    </subjectdef>
  </subjectdef>
  <!-- Define application values -->
  <subjectdef keys="applications">
    <subjectdef keys="apache-server" href="subject/apache.dita"/>
    <subjectdef keys="my-sql"      href="subject/sql.dita"/>
  </subjectdef>

  <!-- Define an enumeration of the platform attribute. This makes the
       following values valuid for platform: windows, windows-10, windows-11,
       linux, redhat, and suse. -->
  <enumerationdef>
    <attributedef name="platform"/>
    <subjectdef keyref="operating-systems"/>
  </enumerationdef>
  <!-- Define an enumeration of the otherprops attribute, equal to
       each value in the application subjects.
       This makes the following values valid for the otherprops attribute:
       apache-server, my-sql -->
  <enumerationdef>
    <attributedef name="otherprops"/>
    <subjectdef keyref="applications"/>
  </enumerationdef>
</subjectScheme>