Reconciling topic and map metadata elements

The <topicmeta> element in maps contains numerous elements that can be used to declare metadata. These metadata elements have an effect on the parent <topicref> element, any child <topicref> elements, and – if a direct child of the <map> element – on the map as a whole.

For each element that can be contained in the <topicmeta> element, the following table addresses the following questions:
How does it apply to the topic?
This column describes how the metadata specified within the <topicmeta> element interacts with the metadata specified in the topic. In most cases, the properties are additive. For example, when the <audience> element is set to "user" at the map level, the value "user" is added during processing to any audience metadata that is specified within the topic.
Does it cascade to other topics in the map?
This column indicates whether the specified metadata value cascades to nested <topicref> elements. For example, when an <audience> element is set to "user" at the map level, all child <topicref> elements implicitly have an <audience> element set to "user" also. Elements that can apply only to the specific <topicref> element, such as <linktext>, do not cascade.
What is the purpose when specified on the <map> element?
The map element allows metadata to be specified for the entire map. This column describes what effect, if any, an element has when specified at this level.
Table 1. Topicmeta elements and their properties
Element How does it apply to the topic? Does it cascade to child <topicref> elements? What is the purpose when set on the <map> element?
<audience> Add to the topic Yes Specify an audience for the entire map
<author> Add to the topic Yes Specify an author for the entire map
<category> Add to the topic Yes Specify a category for the entire map
<copyright> Add to the topic Yes Specify a copyright for the entire map
<critdates> Add to the topic Yes Specify critical dates for the entire map
<data> Add to the topic No, unless specialized for a purpose that cascades No stated purpose, until the element is specialized
<data-about> Add the property to the specified target No, unless specialized for a purpose that cascades No stated purpose, until the element is specified
<foreign> Add to the topic No, unless specialized for a purpose that cascades No stated purpose, until the element is specified
<keywords> Add to the topic No No stated purpose
<linktext> Not added to the topic; applies only to links created based on this occurrence in the map No No stated purpose
<metadata> Add to the topic Yes Specify metadata for the entire map
<navtitle> Not added to the topic; applies only to navigation that is created based on this occurrence in the map. The navigation title will be used whenever the @locktitle attribute on the containing <topicref> element is set to "yes". No No stated purpose
<othermeta> Add to the topic No Define metadata for the entire map
<permissions> Add to the topic Yes Specify permissions for the entire map
<prodinfo> Add to the topic Yes Specify product info for the entire map
<publisher> Add to the topic Yes Specify a publisher for the map
<resourceid> Add to the topic No Specify a resource ID for the map
<searchtitle> Replace the one in the topic. If multiple <searchtitle> elements are specified for a single target, processors can choose to issue a warning. No No stated purpose
<shortdesc> Only added to the topic when the <topicref> element specifies a @copy-to attribute. Otherwise, it applies only to links created based on this occurrence in the map.
Note: Processors MAY or MAY NOT implement this behavior.
No Provide a description of the map
<source> Add to the topic No Specify a source for the map
<unknown> Add to the topic No, unless specialized for a purpose that cascades No stated purpose, until the element is specified
<ux-window> Not added to the topic No Definitions are global, so setting at map level is equivalent to setting anywhere else.

Example of metadata elements cascading in a DITA map

The following code sample illustrates how an information architect can apply certain metadata to all the DITA topics in a map:
<map title="DITA maps" xml:lang="en-us">
	<topicmeta>
		<author>Kristen James Eberlein</author>
		<copyright>
			<copyryear year="2009"/>
			<copyrholder>OASIS</copyrholder>
		</copyright>
	</topicmeta>
	<topicref href="dita_maps.dita" navtitle="DITA maps">
		<topicref href="definition_ditamaps.dita" navtitle="Definition of DITA maps"></topicref>
		<topicref href="purpose_ditamaps.dita" navtitle="Purpose of DITA maps"></topicref>
		<!-- ... -->
       </topicref>
</map>

The author and copyright information cascades to each of the DITA topics referenced in the DITA map. When the DITA map is processed to XHTML, for example, each XHTML file contains the metadata information.