<subjectRelTable>

The <subjectRelTable> element is a specialized relationship table which establishes relationships between the subjects in different columns of the same row. This element provides an efficient way to author non-hierarchical relationships between subjects. Tools (such as search tools) that use subject relationships to find related content might use these associative relationships in a similar way to the hierarchical relationships.

Content models

See appendix for information about this element in OASIS document type shells.

Inheritance

- map/reltable subjectScheme/subjectRelTable

Example

The subject relationship table in this example establishes relationships between operating systems and applications. Based on the <subjectRole> element, subjects in the first column are operating systems which are the environment for an application, while subjects in the second column are applications that run in that environment. For a user interested in content about the operating system, content about the applications might also be relevant.

<subjectScheme>
  <hasKind>
    <subjectdef keys="operatingSystem">
        <subjectdef keys="linuxOS"/>
        <subjectdef keys="windowsOS"/>
    </subjectdef>
    <subjectdef keys="application">
        <subjectdef keys="IDE">
            <subjectdef keys="eclipseIDE"/>
            <subjectdef keys="visualStudioIDE"/>
        </subjectdef>
        <subjectdef keys="webBrowser">
            <subjectdef keys="firefoxBrowser"/>
            <subjectdef keys="ieBrowser"/>
        </subjectdef>
    </subjectdef>
  </hasKind>
  <!-- ... -->
  <subjectRelTable>
    <subjectRelHeader>
      <subjectRole>
        <subjectdef keyref="operatingSystem">
          <hasRelated keyref="environmentFor">
            <subjectdef keyref="application"/>
          </hasRelated>
        </subjectdef>
      </subjectRole>
      <subjectRole>
        <subjectdef keyref="application"/>
      </subjectRole>
    </subjectRelHeader>
    <subjectRel>
      <subjectRole>
        <subjectdef keyref="linuxOS"/>
        <subjectdef keyref="windowsOS"/>
      </subjectRole>
      <subjectRole>
        <subjectdef keyref="eclipseIDE"/>
        <subjectdef keyref="firefoxBrowser"/>
      </subjectRole>
    </subjectRel>
    <subjectRel>
      <subjectRole>
        <subjectdef keyref="windowsOS"/>
      </subjectRole>
      <subjectRole>
        <subjectdef keyref="ieBrowser"/>
        <subjectdef keyref="visualStudioIDE"/>
      </subjectRole>
    </subjectRel>
  </subjectRelTable>
</subjectScheme>
A table view of the <subjectRelTable> might look like this; each <subjectRel> represents a single row, and each <subjectRole> represents a cell.
Table 1. <subjectRelTable> as a table
<subjectdef keyref="operatingSystem">
 <hasRelated keyref="environmentFor">
  <subjectdef keyref="application"/>
 </hasRelated>
</subjectdef>
<subjectdef keyref="application"/>
<subjectdef keyref="linuxOS"/>
<subjectdef keyref="windowsOS"/>
<subjectdef keyref="eclipseIDE"/>
<subjectdef keyref="firefoxBrowser"/>
<subjectdef keyref="windowsOS"/>
<subjectdef keyref="ieBrowser"/>
<subjectdef keyref="visualStudioIDE"/>

Attributes

The following attributes are available on this element: Universal attribute group and Attributes common to many map elements (with a narrowed definition of @toc, given below). This element also uses @type, @scope, and @format from Link relationship attribute group.

@toc
Specifies whether a topic appears in the table of contents (TOC). If the value is not specified locally, but is specified on an ancestor, the value will cascade from the closest ancestor. On this element the default value for @toc is "no". See Attributes common to many map elements for a complete definition of @toc.