###### 3.1.5.1.14 subjectdef

The <subjectdef> element defines a subject (also known as a controlled value) within a scheme. To make the subject easy to identify, a <subjectdef> may use a keys attribute to assign a key to the subject. A subject with a key can be identified elsewhere with a keyref. The <subjectdef> may use a navtitle element or attribute to supply a label for the subject. The <subjectdef> may also refer to a topic that captures the consensus definition for the subject.

As with normal <topicref> processing, when the <subjectdef> element specifies a navtitle and refers to a topic, processors should use the actual topic title in place of the navtitle. When the navtitle is preferred as a subject label, the <subjectdef> element must have the locktitle attribute set to "yes".

###### Contains

Doctype | Content model
subjectScheme | ( (topicmeta) (optional) then (data or data-about or hasInstance or hasKind or hasNarrower or hasPart or hasRelated or subjectdef or subjectHead or topicref or (anchorref or keydef or mapref or topicgroup or topichead or topicset or topicsetref) ) (any number) )

###### Contained by

Doctype | Content model
subjectScheme | subjectScheme, hasNarrower, hasKind, hasPart, hasInstance, hasRelated, subjectdef, subjectHead, enumerationdef, relatedSubjects, subjectRole

###### Inheritance

- map/topicref subjectScheme/subjectdef

###### Example

    <subjectScheme>
      <!-- Pull in a scheme that defines unix OS values -->
      <schemeref href="unixOS.ditamap"/>
      <!-- Define new OS values that are merged with those in the unixOS scheme -->
      <subjectdef keys="os">
        <subjectdef keys="linux"/>
        <subjectdef keys="mswin"/>
        <subjectdef keys="zos"/>
      </subjectdef>
      <!-- Define application values -->
      <subjectdef keys="app" navtitle="Applications">
        <subjectdef keys="apacheserv" href="subject/apache.dita"/>
        <subjectdef keys="mysql"      href="subject/sql.dita"/>
      </subjectdef>

      <!-- Define an enumeration of the platform attribute, equal to
           each value in the OS subject. This makes the following values
           valid for the platform attribute: linux, mswin, zos -->
      <enumerationdef>
        <attributedef name="platform"/>
        <subjectdef keyref="os"/>
      </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:
           apacheserv, mysql -->
      <enumerationdef>
        <attributedef name="otherprops"/>
        <subjectdef keyref="app"/>
      </enumerationdef>
    </subjectScheme>

###### Attributes

Name | Description | Data Type | Default Value | Required?
navtitle | Specifies the title of the topic as it will appear in the navigation or tables of contents that are generated from the map. Beginning with DITA 1.2, the preferred way to specify the navigation title in a map is with the navtitle element, available inside the topicmeta element. | CDATA | #IMPLIED | No
href | A pointer to the resource represented by the <topicref>. See 3.4.2.1 The href attribute for detailed information on supported values and processing implications. References to DITA content cannot be below the topic level: that is, you cannot reference individual elements inside a topic. References to content other than DITA topics should use the format attribute to identify the kind of resource being referenced. | CDATA | #IMPLIED | No
keys | Introduces one or more global identifiers for a resource referenced from a map. See 3.4.2.2 The keys attribute for details on how to use the keys attribute. | NMTOKEN | #IMPLIED | No
keyref | Keyref provides a redirectable reference based on a key defined within a map. See 3.4.2.3 The keyref attribute for information on using this attribute. | CDATA | #IMPLIED | No
processing-role | Describes the processing role of the referenced topic. The processing default is "normal". normal Normal topic that is a readable part of the information. resource-only The topic is used as a resource for processing purposes, but is not a readable unit of information on its own. This topic should not be included in a rendered table of contents, and the topic should not be rendered on its own. | (normal | resource-only | -dita-use-​conref-​target) | #IMPLIED | No
query | This attribute is deprecated. It may be removed in the future. | CDATA | #IMPLIED | No
copy-to | Use the copy-to attribute on the <topicref> element to provide a different file name for a particular instance of the topic in the map (for example, to separate out the different versions of the topic, rather than combining them on output). The links and navigation associated with that instance will point to a copy of the topic with the file name you specified. Use the < linktext> and <shortdesc> in the <topicref>'s <topicmeta> to provide a unique name and short description for the new copy. | CDATA | #IMPLIED | No
collection-type | Collection types describe how links relate to each other. The processing default is "unordered", although no default is specified in the DTD or Schema. unordered Indicates that the order of the child topics is not significant. sequence Indicates that the order of the child topics is significant; output processors will typically link between them in order. choice Indicates that one of the children should be selected. family Represents a tight grouping in which each of the referenced topics not only relates to the current topic but also relate to each other. Usage of the collection-type attribute on <reltable> and <relcolspec> is currently undefined and reserved for future use. | (unordered | sequence | choice | family | -dita-use-​conref-​target) | #IMPLIED | No
type | Describes the target of a reference. See 3.4.2.8 The type attribute for detailed information on supported values and processing implications. | CDATA | #IMPLIED | No
scope | The scope attribute identifies the closeness of the relationship between the current document and the target resource. See 3.4.2.10 The scope attribute for more information on values. | (local | peer | external | -dita-use-​conref-​target) | #IMPLIED | No
locktitle | If locktitle is set to "yes", the <navtitle> element or @navtitle attribute is used if it is present. Otherwise, the navtitle is ignored and the navigation title is retrieved from the referenced file. The @navtitle attribute is deprecated in favor of the <navtitle> element. When both a <navtitle> element and a navtitle attribute are specified, the <navtitle> element should be used. yes The navtitle in the map is used. no The navtitle or title of the topic is used. This is the processing default. | (yes | no | -dita-use-​conref-​target) | #IMPLIED | No
format | The format attribute identifies the format of the resource being referenced. See 3.4.2.9 The format attribute for details on supported values. | CDATA | #IMPLIED | No
linking | Defines some specific linking characteristics of a topic's current location in the map. targetonly A topic can only be linked to and cannot link to other topics. sourceonly A topic cannot be linked to but can link to other topics. normal A topic can be linked to and can link to other topics. Use this to override the linking value of a parent topic. none A topic cannot be linked to or link to other topics. | (targetonly | sourceonly | normal | none | -dita-use-​conref-​target) | #IMPLIED | No
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. | (yes | no | -dita-use-​conref-​target) | #IMPLIED | No
univ-atts attribute group (includes select-atts, id-atts, and localization-atts groups) | A set of related attributes, described in 3.4.1.3 univ-atts attribute group |  |  |
global-atts attribute group (xtrf, xtrc) | A set of related attributes, described in 3.4.1.2 global-atts attribute group |  |  |
class, outputclass | Common attributes described in 3.4.1.9 Other common DITA attributes |  |  |

Previous Topic: 3.1.5.1.13 subjectHeadMeta

Next Topic: 3.1.5.1.15 relatedSubjects

Parent Topic: 3.1.5.1 Subject scheme maps

Sibling Topics:

3.1.5.1.1 subjectScheme

3.1.5.1.2 schemeref

3.1.5.1.3 hasInstance

3.1.5.1.4 hasKind

3.1.5.1.5 hasNarrower

3.1.5.1.6 hasPart

3.1.5.1.7 hasRelated

3.1.5.1.8 enumerationdef

3.1.5.1.9 elementdef

3.1.5.1.10 attributedef

3.1.5.1.11 defaultSubject

3.1.5.1.12 subjectHead

3.1.5.1.13 subjectHeadMeta

3.1.5.1.15 relatedSubjects

3.1.5.1.16 subjectRelTable

3.1.5.1.17 subjectRelHeader

3.1.5.1.18 subjectRel

3.1.5.1.19 subjectRole