<linkpool>

A link pool is a group of links. The order that the links are rendered in the output is determined by the processor.

Rendering expectations

The order in which links in a <linkpool> element are rendered is processor-specific. A processor might sort links based on role or type. A processor might move or remove links based on the context. For example, prerequisite links might be rendered at the beginning of a Web page, or links to the next topic might be removed if the two topics are rendered on the same page in a PDF.

Processing expectations

Attributes that cascade between topic references in a map, such as the @scope and @format attributes, also cascade from this element to contained links.

Content model

( <linkpool> | <link> )*

Attributes

The following attributes are available on this element: universal attributes, @collection-type, @duplicates, @format, @otherrole, @role, @scope, and @type.

The following attributes are available on this element: universal attributes and the attributes defined below.

@collection-type (common map attributes)
Specifies how topics or links relate to each other. The processing default is unordered, although no default is specified in the OASIS-provided grammar files. The following values are valid:
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
Indicates a tight grouping in which each of the referenced topics not only relates to the current topic but also relate to each other.
@duplicates
Specifies whether duplicate links are removed from a group of links. Duplicate links are links that address the same resource using the same properties, such as link text and link role. How duplicate links are determined is processor-specific. The following values are valid:
yes
Specifies that duplicate links are retained.
no
Specifies that duplicate links are removed.
-dita-use-conref-target
See Using the -dita-use-conref-target value for more information.

The suggested processing default is yes within <linklist> elements and no for other links.

@format (link-relationship attributes)
Specifies the format of the resource that is referenced. See The format attribute for detailed information on supported values and processing implications.
@otherrole
Specifies an alternate role for a link relationship when the @role attribute is set to other.
@role
Specifies the role that a linked topic plays in relationship with the current topic.

For example, in a parent/child relationship, the role would be parent when the target is the parent of the current topic, and child when the target is the child of the current topic. This can be used to sort and classify links when rendering.

The following values are valid:

ancestor
Indicates a link to a topic above the parent topic.
child
Indicates a link to a direct child such as a directly nested or dependent topic.
cousin
Indicates a link to another topic in the same hierarchy that is not a parent, child, sibling, next, or previous.
descendant
Indicates a link to a topic below a child topic.
friend
Indicates a link to a similar topic that is not necessarily part of the same hierarchy.
next
Indicates a link to the next topic in a sequence.
other
Indicates any other kind of relationship or role. The type of role is specified as the value for the @otherrole attribute.
parent
Indicates a link to a topic that is a parent of the current topic.
previous
Indicates a link to the previous topic in a sequence.
sibling
Indicates a link between two children of the same parent topic.
-dita-use-conref-target
See Using the -dita-use-conref-target value for more information.
@scope (link-relationship attributes)
Specifies the closeness of the relationship between the current document and the referenced resource. The following values are valid: local, peer, external, and -dita-use-conref-target.

See The scope attribute for detailed information on supported values and processing implications.

@type (link-relationship attributes)
Describes the target of a reference. See The type attribute for detailed information on supported values and processing implications.

Example

This section is non-normative.

The following code sample shows how a <linkpool> element is used to group a set of conceptual information. The order in which the links are rendered in the output is processor-dependent. In this example, the @type attribute on the <linkpool> element cascades to nested <link> elements.

<related-links>
  <linkpool type="concept">
    <link href="czez.dita#czez" role="next"/>
    <link href="czunder.dita"/>
    <link format="html" href="czover.htm#sqljsupp" role="parent">
      <linktext>Overview of the CZ</linktext>
    </link>
    <link format="html" href="czesqlj.htm#sqljemb">
      <linktext>Working with CZESQLJ</linktext>
      <desc>When you work with CZESQLJ, you need to know...</desc>
    </link>
  </linkpool>
</related-links>