<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
<meta name="Forrest-version" content="0.8-dev">
<meta name="Forrest-skin-name" content="pelt">
<title>Menus and Linking (v0.8-dev)</title>
<link type="text/css" href="../skin/basic.css" rel="stylesheet">
<link media="screen" type="text/css" href="../skin/screen.css" rel="stylesheet">
<link media="print" type="text/css" href="../skin/print.css" rel="stylesheet">
<link type="text/css" href="../skin/profile.css" rel="stylesheet">
<script src="../skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="../skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="../skin/fontsize.js" language="javascript" type="text/javascript"></script>
<link rel="shortcut icon" href="../favicon.ico">
</head>
<body onload="init()">
<script type="text/javascript">ndeSetTextSize();</script>
<div id="top">
<!--+
    |breadtrail
    +-->
<div class="breadtrail">
<a href="http://www.apache.org/">apache</a> &gt; <a href="http://forrest.apache.org/">forrest</a><script src="../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
</div>
<!--+
    |header
    +-->
<div class="header">
<!--+
    |start group logo
    +-->
<div class="grouplogo">
<a href="http://www.apache.org/"><img class="logoImage" alt="Apache" src="../images/apache-forrest.png" title="The Apache Software Foundation"></a>
</div>
<!--+
    |end group logo
    +-->
<!--+
    |start Project Logo
    +-->
<div class="projectlogo">
<a href="http://forrest.apache.org/"><img class="logoImage" alt="Forrest" src="../images/project-logo.gif" title="Apache Forrest"></a>
</div>
<!--+
    |end Project Logo
    +-->
<!--+
    |start Search
    +-->
<div class="searchbox">
<form action="http://www.google.com/search" method="get" class="roundtopsmall">
<input value="forrest.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google">&nbsp; 
                    <input name="Search" value="Search" type="submit">
</form>
</div>
<!--+
    |end search
    +-->
<!--+
    |start Tabs
    +-->
<ul id="tabs">
<li>
<a class="unselected" href="../index.html">Welcome</a>
</li>
<li>
<a class="unselected" href="../contrib.html">Developers</a>
</li>
<li class="current">
<a class="selected" href="../versions/index.html">Versioned Docs</a>
</li>
<li>
<a class="unselected" href="../pluginDocs/index.html">Plugins</a>
</li>
<li>
<a class="unselected" href="../tools/index.html">Tools</a>
</li>
</ul>
<!--+
    |end Tabs
    +-->
</div>
</div>
<div id="main">
<div id="publishedStrip">
<!--+
    |start Subtabs
    +-->
<div id="level2tabs">
<a class="unselected" href="../docs_0_70/index.html">0.70 (current)</a><a class="selected" href="../docs_0_80/index.html">0.80-dev (under development)</a><a class="unselected" href="../docs_0_60/index.html">0.60 (past)</a>
</div>
<!--+
    |end Endtabs
    +-->
<script type="text/javascript"><!--
document.write("Last Published: " + document.lastModified);
//  --></script>
</div>
<!--+
    |breadtrail
    +-->
<div class="breadtrail">

             &nbsp;
           </div>
<!--+
    |start Menu, mainarea
    +-->
<!--+
    |start Menu
    +-->
<div id="menu">
<div onclick="SwitchMenu('menu_selected_1.1', '../skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('../skin/images/chapter_open.gif');">0.80-dev</div>
<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;">
<div class="menuitem">
<a href="../docs_0_80/index.html">Overview</a>
</div>
<div class="menuitem">
<a href="../docs_0_80/your-project.html">Using Forrest</a>
</div>
<div onclick="SwitchMenu('menu_1.1.3', '../skin/')" id="menu_1.1.3Title" class="menutitle">How-To</div>
<div id="menu_1.1.3" class="menuitemgroup">
<div class="menuitem">
<a href="../docs_0_80/howto/index.html">Overview</a>
</div>
<div onclick="SwitchMenu('menu_1.1.3.2', '../skin/')" id="menu_1.1.3.2Title" class="menutitle">Install Forrest</div>
<div id="menu_1.1.3.2" class="menuitemgroup">
<div class="menuitem">
<a href="../docs_0_80/build.html" title="Build and install the current                     unreleased version">Building Forrest from Source</a>
</div>
</div>
<div class="menuitem">
<a href="../docs_0_80/upgrading_08.html">Upgrading to 0.8</a>
</div>
<div class="menuitem">
<a href="">Use Forrest</a>
</div>
<div onclick="SwitchMenu('menu_1.1.3.5', '../skin/')" id="menu_1.1.3.5Title" class="menutitle">Customize Forrest</div>
<div id="menu_1.1.3.5" class="menuitemgroup">
<div class="menuitem">
<a href="../docs_0_80/sitemap-explain.html">Sitemaps explained</a>
</div>
<div class="menuitem">
<a href="../docs_0_80/howto/howto-custom-html-source.html">Custom html source</a>
</div>
<div class="menuitem">
<a href="../docs_0_80/project-sitemap.html">Project sitemap</a>
</div>
<div class="menuitem">
<a href="../docs_0_80/howto/howto-editcss.html">Edit CSS (WYSIWYG)</a>
</div>
<div class="menuitem">
<a href="../docs_0_80/howto/howto-pdf-tab.html" title="Generate one pdf-document for all pages of a tab">Create tab PDF</a>
</div>
<div class="menuitem">
<a href="../docs_0_80/howto/howto-corner-images.html">CSS corner SVG</a>
</div>
</div>
<div onclick="SwitchMenu('menu_1.1.3.6', '../skin/')" id="menu_1.1.3.6Title" class="menutitle">Integrate Forrest with tools</div>
<div id="menu_1.1.3.6" class="menuitemgroup">
<div class="menuitem">
<a href="../docs_0_80/howto/howto-forrest-from-maven.html">Maven Integration</a>
</div>
<div class="menuitem">
<a href="../docs_0_80/catalog.html">Using DTD Catalogs</a>
</div>
</div>
<div onclick="SwitchMenu('menu_1.1.3.7', '../skin/')" id="menu_1.1.3.7Title" class="menutitle">Extend Forrest</div>
<div id="menu_1.1.3.7" class="menuitemgroup">
<div class="menuitem">
<a href="../docs_0_80/howto/howto-buildPlugin.html">Build a Plugin</a>
</div>
<div class="menuitem">
<a href="../docs_0_80/skin-package.html">Package new Skins</a>
</div>
</div>
<div class="menuitem">
<a href="../docs_0_80/howto/howto-asf-mirror.html">Download mirror</a>
</div>
<div onclick="SwitchMenu('menu_1.1.3.9', '../skin/')" id="menu_1.1.3.9Title" class="menutitle">Adding Documentation</div>
<div id="menu_1.1.3.9" class="menuitemgroup">
<div class="menuitem">
<a href="../howto-howto.html" title="Instructions for writing                 a new howto-document">Write a How-to</a>
</div>
<div onclick="SwitchMenu('menu_1.1.3.9.2', '../skin/')" id="menu_1.1.3.9.2Title" class="menutitle">Multipage HowTo</div>
<div id="menu_1.1.3.9.2" class="menuitemgroup">
<div class="menuitem">
<a href="../docs_0_80/howto/multi/howto-multi.html">Introduction</a>
</div>
<div class="menuitem">
<a href="../docs_0_80/howto/multi/step1.html">Step 1</a>
</div>
<div class="menuitem">
<a href="../docs_0_80/howto/multi/step2.html">Step 2</a>
</div>
<div class="menuitem">
<a href="../docs_0_80/howto/multi/step3.html">Step 3</a>
</div>
</div>
</div>
</div>
<div class="menuitem">
<a href="../docs_0_80/faq.html">FAQs</a>
</div>
<div onclick="SwitchMenu('menu_selected_1.1.5', '../skin/')" id="menu_selected_1.1.5Title" class="menutitle" style="background-image: url('../skin/images/chapter_open.gif');">Background</div>
<div id="menu_selected_1.1.5" class="selectedmenuitemgroup" style="display: block;">
<div class="menupage">
<div class="menupagetitle">Menus and Linking</div>
</div>
<div class="menuitem">
<a href="../docs_0_80/searching.html">Search Options in Forrest</a>
</div>
<div class="menuitem">
<a href="../docs_0_80/locationmap.html">Locationmap</a>
</div>
<div class="menuitem">
<a href="../docs_0_80/sitemap-ref.html">Sitemap Reference</a>
</div>
<div class="menuitem">
<a href="../docs_0_80/skins.html" title="About default skins, their naming and features">Skins</a>
</div>
<div class="menuitem">
<a href="../docs_0_80/status-themes.html">Dispatcher versus Skins</a>
</div>
<div class="menuitem">
<a href="../docs_0_80/cap.html">Sourcetype Action</a>
</div>
<div class="menuitem">
<a href="../docs_0_80/validation.html">XML validation and entity resolution</a>
</div>
</div>
<div class="menuitem">
<a href="../docs_0_80/changes.html">Changes</a>
</div>
<div class="menuitem">
<a href="../docs_0_80/glossary.html">Glossary</a>
</div>
<div onclick="SwitchMenu('menu_1.1.8', '../skin/')" id="menu_1.1.8Title" class="menutitle">Reference docs</div>
<div id="menu_1.1.8" class="menuitemgroup">
<div onclick="SwitchMenu('menu_1.1.8.1', '../skin/')" id="menu_1.1.8.1Title" class="menutitle">DTD documentation</div>
<div id="menu_1.1.8.1" class="menuitemgroup">
<div class="menuitem">
<a href="../dtdx/dtd-docs.html">Overview</a>
</div>
<div class="menuitem">
<a href="../dtdx/document-v20.dtdx.html">document-v20</a>
</div>
<div class="menuitem">
<a href="../dtdx/howto-v20.dtdx.html">howto-v20</a>
</div>
<div class="menuitem">
<a href="../dtdx/faq-v20.dtdx.html">faq-v20</a>
</div>
<div class="menuitem">
<a href="../dtdx/document-v13.dtdx.html">document-v13</a>
</div>
<div class="menuitem">
<a href="../dtdx/howto-v13.dtdx.html">howto-v13</a>
</div>
<div class="menuitem">
<a href="../dtdx/faq-v13.dtdx.html">faq-v13</a>
</div>
</div>
<div onclick="SwitchMenu('menu_1.1.8.2', '../skin/')" id="menu_1.1.8.2Title" class="menutitle">Doc samples</div>
<div id="menu_1.1.8.2" class="menuitemgroup">
<div class="menuitem">
<a href="../dtdx/document-v13.html">document-v13</a>
</div>
<div class="menuitem">
<a href="../dtdx/document-v20.html">document-v20</a>
</div>
</div>
</div>
<div onclick="SwitchMenu('menu_1.1.9', '../skin/')" id="menu_1.1.9Title" class="menutitle">Older Docs</div>
<div id="menu_1.1.9" class="menuitemgroup">
<div class="menuitem">
<a href="../docs_0_80/primer.html">Forrest Primer</a>
</div>
<div class="menuitem">
<a href="../docs_0_80/libre-intro.html">Libre</a>
</div>
<div class="menuitem">
<a href="../docs_0_80/dreams.html">Dream list</a>
</div>
<div class="menuitem">
<a href="../docs_0_80/howto/cvs-ssh/howto-cvs-ssh.html">CVS over SSH</a>
</div>
</div>
</div>
<div id="credit">
<hr>
        This is documentation for development version v0.8
       (<a href="http://forrest.apache.org/versions/">More</a>)</div>
<div id="roundbottom">
<img style="display: none" class="corner" height="15" width="15" alt="" src="../skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
<!--+
  |alternative credits
  +-->
<div id="credit2">
<a href="http://apachecon.com/2007/EU/"><img border="0" title="ApacheCon Europe 2007" alt="ApacheCon Europe 2007 - logo" src="http://apache.org/ads/ApacheCon/2007-europe-125x125.png" style="width: 125px;height: 125px;"></a><a href="http://people.apache.org/calendar.html#200711"><img border="0" title="ApacheCon US 2007" alt="ApacheCon US 2007 - logo" src="http://apache.org/ads/ApacheCon/2007-usa-125x125.png" style="width: 125px;height: 125px;"></a>
</div>
</div>
<!--+
    |end Menu
    +-->
<!--+
    |start content
    +-->
<div id="content">
<div title="Portable Document Format" class="pdflink">
<a class="dida" href="linking.pdf"><img alt="PDF -icon" src="../skin/images/pdfdoc.gif" class="skin"><br>
        PDF</a>
</div>
<div class="trail">Font size: 
	          &nbsp;<input value="Reset" class="resetfont" title="Reset text" onclick="ndeSetTextSize('reset'); return false;" type="button">      
	          &nbsp;<input value="-a" class="smallerfont" title="Shrink text" onclick="ndeSetTextSize('decr'); return false;" type="button">
	          &nbsp;<input value="+a" class="biggerfont" title="Enlarge text" onclick="ndeSetTextSize('incr'); return false;" type="button">
</div>
<h1>Menus and Linking</h1>
<div id="motd-area">
        This is documentation for development version v0.8
       (<a href="http://forrest.apache.org/versions/">More</a>)</div>
<div id="minitoc-area">
<ul class="minitoc">
<li>
<a href="#intro">Introduction</a>
</li>
<li>
<a href="#site">site.xml</a>
</li>
<li>
<a href="#menu_generation">Generating Menus</a>
<ul class="minitoc">
<li>
<a href="#tabs-external">Tabs for External Resources</a>
</li>
<li>
<a href="#selecting-entries">Selecting menu entries</a>
</li>
<li>
<a href="#other-menu-selection">Alternative menu selection mechanisms.</a>
<ul class="minitoc">
<li>
<a href="#dir-menu-selection">Directory-based selection</a>
</li>
<li>
<a href="#book-menu-selection">Specifying menus with book.xml</a>
</li>
</ul>
</li>
<li>
<a href="#tab-selection">Selecting the current tab</a>
</li>
<li>
<a href="#tab-site">Configuring the interaction between tabs.xml and site.xml</a>
</li>
</ul>
</li>
<li>
<a href="#toc-generation">Table of Contents Generation</a>
</li>
<li>
<a href="#linking">Linking systems</a>
<ul class="minitoc">
<li>
<a href="#direct-linking">Direct linking</a>
</li>
<li>
<a href="#indirect-linking">Indirect linking</a>
<ul class="minitoc">
<li>
<a href="#resolve-site-uris">Resolving site: URIs</a>
</li>
<li>
<a href="#resolve-ext-uris">ext: URIs: linking to external URLs</a>
</li>
<li>
<a href="#source-uris">Theory: source URIs</a>
</li>
<li>
<a href="#future-schemes">Future schemes</a>
</li>
</ul>
</li>
</ul>
</li>
<li>
<a href="#concept">Concept</a>
</li>
<li>
<a href="#implementation">Implementation</a>
</li>
</ul>
</div>
    
<a name="N1000D"></a><a name="intro"></a>
<h2 class="underlined_10">Introduction</h2>
<div class="section">
<p>
        This document describes Forrest's internal URI space; how it is managed
        with the "<span class="codefrag">site.xml</span>" configuration file, how menus are generated, and how
        various link schemes (site: and ext:) operate. An overview of the
        implementation is also provided.
      </p>
<p>
        While reading this document, bear in mind that the Cocoon
        <a href="../docs_0_80/sitemap-ref.html">Sitemap</a> is handling the processing.
        The sitemaps are resolving the site: URIs and then matching them to
        determine how to process each. In general, you can use the power of the
        Cocoon Sitemap to handle certain difficult linking and menu situations
        (for example see this <a href="../docs_0_80/faq.html#tab-index">FAQ</a>).
      </p>
</div>
    
<a name="N10025"></a><a name="site"></a>
<h2 class="underlined_10">site.xml</h2>
<div class="section">
<p>
        The "<span class="codefrag">site.xml</span>" configuration file is what we would call a "site map" if
        Cocoon hadn't already claimed that term. The "<span class="codefrag">site.xml</span>" is a loosely
        structured XML file, acting as a map of the site's contents. It provides
        a unique identifier (an XPath address) for "nodes" of information in the
        website. A "node" of site information can be:
      </p>
<ul>
        
<li>A category of information, like "the user guide". A category may
          correspond to a directory, but that is not required.</li>
        
<li>A specific page, e.g. "the FAQ page"</li>
        
<li>A specific section in a page, e.g. the "general" section of the FAQ
          page (identified by <span class="codefrag">id="general"</span> attribute)</li>
      
</ul>
<p>
        In addition to providing fine-grained addressing of site info, the <span class="codefrag">site.xml</span>
        allows <em>metadata</em> to be associated with each node, using
        attributes or child elements. Most commonly, a <span class="codefrag">label</span>
        attribute is used to provide a text description of the node.
      </p>
<p>
        There are currently two applications of <span class="codefrag">site.xml</span>
      
</p>
<dl>
        
<dt>
<a href="#menu_generation">Menu generation</a>
</dt>
        
<dd>
<span class="codefrag">site.xml</span> is used to generate the menus for the HTML website.</dd>
        
<dt>
<a href="#indirect-linking">Indirect linking</a>
</dt>
        
<dd>
<span class="codefrag">site.xml</span> provides a basic aliasing mechanism for linking, e.g. one
          can write &lt;link href="site:changes"&gt; from anywhere in the site, and
          link to the "changes" information node (translated to changes.html).
          More on this below.</dd>
      
</dl>
<p>
        Here is a sample <span class="codefrag">site.xml</span> ...
      </p>
<pre class="code">

&lt;?xml version="1.0"?&gt;
&lt;site label="Forrest" href="" tab="home"
  xmlns="http://apache.org/forrest/linkmap/1.0"&gt;

  &lt;about label="About"&gt;
    &lt;index label="Index" href="index.html"/&gt;
    &lt;license label="License" href="license.html"/&gt;
    &lt;your-project label="Using Forrest" href="your-project.html"&gt;
      &lt;new_content_type href="#adding_new_content_type"/&gt;
    &lt;/your-project&gt;
    &lt;linking label="Linking" href="linking.html"/&gt;
    &lt;changes label="Changes" href="changes.html"/&gt;
    &lt;todo label="Todo" href="todo.html"/&gt;
    &lt;live-sites label="Live sites" href="live-sites.html"/&gt;
  &lt;/about&gt;

  &lt;community label="Community" href="community/" tab="community"&gt;
    &lt;index label="About" href="index.html"/&gt;
    &lt;howto-samples label="How-To Samples" href="howto/" tab="howto"&gt;
      &lt;overview label="Overview" href="index.html"/&gt;
      &lt;single-page label="Single Page" href="v10/howto-v10.html"/&gt;
      &lt;multi-page label="Multi-Page" href="multi/"&gt;
        &lt;intro label="Intro" href="howto-multi.html"/&gt;
        &lt;step1 label="Step 1" href="step1.html"/&gt;
        &lt;step2 label="Step 2" href="step2.html"/&gt;
      &lt;/multi-page&gt;
    &lt;/howto-samples&gt;
  &lt;/community&gt;

  &lt;references label="References"&gt;
    &lt;gump label="Apache Gump" href="http://gump.apache.org/"/&gt;
    &lt;cocoon label="Apache Cocoon" href="http://cocoon.apache.org/"/&gt;
  &lt;/references&gt;

  &lt;external-refs&gt;
    &lt;mail-archive href="http://marc.theaimsgroup.com"/&gt;
    &lt;xml.apache.org href="http://xml.apache.org/"&gt;
      &lt;commons href="commons/"&gt;
        &lt;resolver href="components/resolver/"/&gt;
      &lt;/commons&gt;
      &lt;fop href="fop/"/&gt;
      &lt;batik href="batik/"/&gt;
    &lt;/xml.apache.org&gt;

    &lt;mail&gt;
      &lt;semantic-linking href="http://marc.theaimsgroup.com/?l=forrest-dev
        &amp;amp;m=103097808318773&amp;amp;w=2"/&gt;
    &lt;/mail&gt;
    &lt;cool-uris href="www.w3.org/Provider/Style/URI.html"/&gt;
    &lt;uri-rfc href="http://zvon.org/tmRFC/RFC2396/Output/index.html"/&gt;

  &lt;/external-refs&gt;
&lt;/site&gt;
        
      </pre>
<p>
        As you can see, things are quite free-form. The rules are as follows:
      </p>
<ul>
        
<li>The root element must be "site", and normal content should be in the
          namespace <span class="codefrag">http://apache.org/forrest/linkmap/1.0</span> (Feel
          free to mix in your own content (RDF, dublin core, etc) under new
          namespaces)</li>
        
<li>Element names are used as identifiers.  The "<span class="codefrag">foo</span>" in
          "<span class="codefrag">site:foo</span>" must therefore be a valid NMTOKEN.</li>
        
<li>Elements with <span class="codefrag">href</span> attributes can be used as identifiers
          in "<span class="codefrag">site:</span>" URIs</li>
        
<li>Relative href attribute contents are "accumulated" by prepending hrefs
          from ancestor nodes</li>
        
<li>Elements without <span class="codefrag">label</span> attributes (and their children)
          are not displayed in the menu.</li>
        
<li>Elements below <span class="codefrag">external-refs</span> are mapped to the
          "<span class="codefrag">ext:</span>" scheme.  So "<span class="codefrag">ext:commons/resolver/</span>" becomes
          "<span class="codefrag">http://xml.apache.org/commons/resolver/</span>"</li>
      
</ul>
<p>
        See another <a href="../docs_0_80/faq.html#site-xml">explained example</a>.
        Also remember to look at the comprehensive example with Forrest's own
        documentation.
      </p>
</div>
    
<a name="N100B4"></a><a name="menu_generation"></a>
<h2 class="underlined_10">Generating Menus</h2>
<div class="section">
<p>
        Two files are used to define a site's tabs and menu (<span class="codefrag">site.xml</span> and
        <span class="codefrag">tabs.xml</span>). Both files are located in
        <span class="codefrag">src/documentation/content/xdocs/</span>
      
</p>
<p>
        Assume that our <span class="codefrag">tabs.xml</span> looks like this:
      </p>
<pre class="code">

&lt;tabs ...&gt;
    &lt;tab id="home" label="Home" dir=""/&gt;
    &lt;tab id="community" label="Community" dir="community" indexfile="mailLists.html"/&gt;
    &lt;tab id="howto" label="How-Tos" dir="community/howto"/&gt;
&lt;/tabs&gt;
      
      </pre>
<p>
        Using the "<span class="codefrag">site.xml</span>" listed above, we would get these menus:
      </p>
<p>
        
<img alt="Menu generated from site.xml" src="images/menu.png">
        &nbsp;&nbsp;&nbsp;
        <img alt="Community menu generated from site.xml" src="images/menu2.png">
        &nbsp;&nbsp;&nbsp;
        <img alt="Howto menu generated from site.xml" src="images/menu3.png">
      </p>
<p>
        When using the "<span class="codefrag">dir</span>" attribute as above the value of the
        "<span class="codefrag">indexfile</span>" parameter is appended to the value of the
        "<span class="codefrag">dir</span>" attribute (together with a preceding '/'). For
        example, the link for the community tab above is
        <span class="codefrag">community/mailLists.html</span>. Note that
        "<span class="codefrag">indexfile</span>" defaults to "<span class="codefrag">index.html</span>" if no
        value is supplied. Therefore the link for the howto tab is
        <span class="codefrag">community/howto/index.html</span>
      
</p>
<a name="N100FD"></a><a name="tabs-external"></a>
<h3 class="underlined_5">Tabs for External Resources</h3>
<p>
          A tab can refer to an external resource by using the
          "<span class="codefrag">href</span>" attribute instead of the "<span class="codefrag">dir</span>"
          attribute. The value of "<span class="codefrag">href</span>" should be the URI of the
          resource you wish to link to. For example:
        </p>
<pre class="code">

&lt;tab id="apache" label="XML Apache" href="http://xml.apache.org/"/&gt;
        
        </pre>
<p>
          Unlike the "<span class="codefrag">dir</span>" attribute, the value of
          "<span class="codefrag">href</span>" is left unmodified by Forrest unless it is
          root-relative and obviously specifies a directory (ends in '/'). In
          which case /index.html will be added.
        </p>
<a name="N1011D"></a><a name="selecting-entries"></a>
<h3 class="underlined_5">Selecting menu entries</h3>
<p>
          Forrest decides which menu entries to display, by examining the
          "<span class="codefrag">tab</span>" attributes in the <span class="codefrag">site.xml</span> file. The children of all <span class="codefrag">site.xml</span>
          entries with a "<span class="codefrag">tab</span>" which is equal to that of the
          current page, are added to the menu, whilst the element itself forms
          the root of that part of the menu (see the "<span class="codefrag">community</span>"
          element in the example below). Child elements that have a different
          "<span class="codefrag">tab</span>" attribute value will appear in the menu for their
          parents, and will also form the root of a new menu for a tab with the
          appropriate name (see the "<span class="codefrag">howto-samples</span>" element below).
        </p>
<p>
          Consider our <span class="codefrag">site.xml</span> example:
        </p>
<pre class="code">
&lt;site label="Forrest" href="" <strong>tab="home"</strong>
  xmlns="http://apache.org/forrest/linkmap/1.0"&gt;

  &lt;about label="About"&gt;
    &lt;index label="Index" href="index.html"/&gt;
    &lt;license label="License" href="license.html"/&gt;
    &lt;your-project label="Using Forrest" href="your-project.html"&gt;
      &lt;new_content_type href="#adding_new_content_type"/&gt;
    &lt;/your-project&gt;
    &lt;linking label="Linking" href="linking.html"/&gt;
    ....
  &lt;/about&gt;

  &lt;community label="Community" href="community/" <strong>tab="community"</strong>&gt;
    &lt;index label="About" href="index.html"/&gt;
    &lt;howto-samples label="How-To Samples" href="howto/" <strong>tab="howto"</strong>&gt;
      &lt;overview label="Overview" href="index.html"/&gt;
      &lt;single-page label="Single Page" href="v10/howto-v10.html"/&gt;
      &lt;multi label="Multi-Page" href="multi/"&gt;
        &lt;intro label="Intro" href="howto-multi.html"/&gt;
        &lt;step1 label="Step 1" href="step1.html"/&gt;
      ...</pre>
<p>
          Every <span class="codefrag">site.xml</span> node can potentially have a "<span class="codefrag">tab</span>" attribute. If
          unspecified, nodes inherit the "<span class="codefrag">tab</span>" of their parent.
          Thus everything in the <strong>&lt;about&gt;</strong> section has an
          implicit <span class="codefrag">tab="home" </span>attribute.
        </p>
<div class="note">
<div class="label">Note</div>
<div class="content">
          You can see this by viewing your site's
          <a href="../abs-menulinks">abs-menulinks</a> pipeline in a
          browser.
        </div>
</div>
<p>
          Say that the user is viewing the <span class="codefrag">linking.html</span> page. The
          <strong>&lt;linking&gt;</strong> node has an implicit tab value of
          "<span class="codefrag">home</span>". Forrest will select <em>all nodes with
          tab="home"</em> and put them in the menu.
        </p>
<a name="N10177"></a><a name="other-menu-selection"></a>
<h3 class="underlined_5">Alternative menu selection mechanisms.</h3>
<p>
          The "<span class="codefrag">tab</span>" attribute-based scheme for selecting a menu's
          entries is not the only one, although it is the most flexible. Here we
          describe a few alternatives.
        </p>
<a name="N10183"></a><a name="dir-menu-selection"></a>
<h4>Directory-based selection</h4>
<p>
            In this scheme, each tab corresponds to a directory within the site.
            All content below that directory is included in the menu.
          </p>
<p>
            
<img alt="Directory-based site menu" src="images/dir-menu.png">
            &nbsp;&nbsp;&nbsp;
            <img alt="community/ directory menu" src="images/dir-menu2.png">
            &nbsp;&nbsp;&nbsp;
            <img alt="community/howto/ directory menu" src="images/dir-menu3.png">
          </p>
<p>
            To use this scheme:
          </p>
<ul>
            
<li>Edit <span class="codefrag">forrest.properties</span> and set
              <span class="codefrag">project.menu-scheme=directories</span>
</li>
            
<li>Remove the "<span class="codefrag">id</span>" attributes from <span class="codefrag">tabs.xml</span>
              entries.</li>
          
</ul>
<a name="N101B3"></a><a name="book-menu-selection"></a>
<h4>Specifying menus with book.xml</h4>
<p>
            Historically, menus in Forrest have been generated from a
            <span class="codefrag">book.xml</span> file, one per directory. This mechanism is
            still available, and if a <span class="codefrag">book.xml</span> is found, it will be
            used in preference to the menu generated by the <span class="codefrag">site.xml</span> file. The
            <span class="codefrag">book.xml</span> files can use "<span class="codefrag">site:</span>" URIs to
            ease the maintenance burden that led to obsolescence of book.xml
            files. In general, however, we recommend that users avoid
            <span class="codefrag">book.xml</span> files.
          </p>
<a name="N101D0"></a><a name="tab-selection"></a>
<h3 class="underlined_5">Selecting the current tab</h3>
<p>
          The tab selection algorithm is quite simple: the tab with the
          "<span class="codefrag">id</span>" which matches that of the current <span class="codefrag">site.xml</span> node is
          "selected". However the interaction of <span class="codefrag">tabs.xml</span> and <span class="codefrag">site.xml</span> while powerful, can
          be complex to establish.
        </p>
<a name="N101E6"></a><a name="tab-site"></a>
<h3 class="underlined_5">Configuring the interaction between tabs.xml and site.xml</h3>
<p>
          This is a collection of tips to assist with getting your menus and
          tabs to properly display.
        </p>
<ul>
          
<li>
            See the various notes above, not repeated in this list of tips.
          </li>
          
<li>
            View your site's 
            <a href="../abs-menulinks">abs-menulinks</a> pipeline in a
            browser. This is part of the internal Cocoon machinery, but like
            other sitemap resources, it is useful to view them to assist with
            debugging.
          </li>
          
<li>
            The Forrest website also accompanies your software release
            in the <span class="codefrag">site-author</span> directory, so
            inspect its <span class="codefrag">tabs.xml</span> and <span class="codefrag">site.xml</span> to see how it is done. Also see the
            'forrest seed site' example. It is not as complex as the Forrest website.
          </li>
          
<li>
            When you are fiddling with your attributes, change one thing at a time
            and document what you have changed.</li>
          
<li>
            The value of the tab @id attribute cannot begin with a digit.
            Likewise, element names in <span class="codefrag">tabs.xml</span> and <span class="codefrag">site.xml</span> cannot begin with a digit.
          </li>
          
<li>
            Add label attributes to <span class="codefrag">site.xml</span> elements to make the menus show.
            With nested elements in <span class="codefrag">site.xml</span> if the outer element does not have a label
            attribute then the inner elements will not be displayed.
          </li>
          
<li>
            To cause tabs and menu items to be highlighted, there need to be
            corresponding elements in <span class="codefrag">site.xml</span> that have href attributes which match
            the relevant path.
            See
            <a href="http://www.mail-archive.com/user%40forrest.apache.org/msg01750.html">email explanation</a>.
          </li>
          
<li>
            When the tab points to a directory, then to make the tab highlighted
            when selected, you need an element which matches index.html within the
            group of elements that define the menus for this tab in the <span class="codefrag">site.xml</span>
            file. That element can be without a label attribute, so that it doesn't
            display as a menu item. However doing that causes that tab's menus
            to be collapsed.
          </li>
          
<li>
            Q: The tab link in my site assumes that 'index.html'
            is present in the linked-to directory. How do I fix this?
            A: In <span class="codefrag">tabs.xml</span> use @href instead of @dir attribute and omit the trailing '/'.
            Which file to serve is then a concern of the sitemap.
            See more at the <a href="../docs_0_80/faq.html#tab-index">FAQ</a>.
          </li>
        
</ul>
</div>
    
<a name="N10239"></a><a name="toc-generation"></a>
<h2 class="underlined_10">Table of Contents Generation</h2>
<div class="section">
<p>
        Each page can have an automatically generated table of contents. This is
        created from the titles of each section in your xdoc. By default only
        sections up to two levels deep are included and the table of contents is
        displayed at the top of the page. However, you can configure this
        behaviour in <span class="codefrag">src/documentation/skinconf.xml</span> using the
        "<span class="codefrag">toc</span>" element.
      </p>
<pre class="code">

&lt;toc level="2" location="page"/&gt;
      
      </pre>
<ul>
        
<li>
<strong><span class="codefrag">level</span></strong> - is the depth to which you
        want your table of contents to go. Setting it to "3" will therefore 
        include sections nested to 3 levels. Setting this to "0" will result in
        no table of contents being generated.</li>
        
<li>
<strong><span class="codefrag">location</span></strong> - indicates where you
        want the table of contents to be rendered. It can be set to one of
        three values:
          <ul>
            
<li>
<span class="codefrag">page</span> - the table of contents will be rendered
            at the top of the body of your page</li>
            
<li>
<span class="codefrag">menu</span> - the table of contents will be rendered
            in the menu to the left of the body of the page</li>
            
<li>
<span class="codefrag">menu, page</span> - table of contents will be rendered
            in both the page and the menu positions</li>
          
</ul>
</li>
      
</ul>
</div>
    
<a name="N1026D"></a><a name="linking"></a>
<h2 class="underlined_10">Linking systems</h2>
<div class="section">
<a name="N10273"></a><a name="direct-linking"></a>
<h3 class="underlined_5">Direct linking</h3>
<p>
          In earlier versions of Forrest (and in similar systems), there has
          been only one URI space: that of the generated site. If <span class="codefrag">index.xml</span> wants to
          link to <span class="codefrag">todo.xml</span> then <span class="codefrag">index.xml</span> would use
        </p>
<pre class="code">
          &lt;a href="todo.html"&gt;to-do list&lt;a&gt;
        </pre>
<p>
          The theoretical problem with this is that the content producer should
          not know or care how Forrest is going to render the source. A URI
          should only <em>identify</em> a resource, not specify it's type
          [<a href="http://marc.theaimsgroup.com/?l=forrest-dev&m=103097808318773&w=2">mail ref</a>] and
          [<a href="http://www.w3.org/Provider/Style/URI.html">cool URIs</a>]. In fact, as Forrest
          typically renders to multiple output formats (HTML and PDF), links in
          one of them (here, the PDF) are likely to break.
        </p>
<a name="N10298"></a><a name="indirect-linking"></a>
<h3 class="underlined_5">Indirect linking</h3>
<p>
          Forrest's solution is simple: instead of &lt;a href="todo.html"&gt;,
          write &lt;a href="site:todo"&gt; where:
        </p>
<dl>
          
<dt>site</dt>
          
<dd>is a URI "scheme"; a namespace that restricts
            the syntax and semantics of the rest of the URI
            [<a href="http://zvon.org/tmRFC/RFC2396/Output/index.html">rfc2396</a>].  The semantics of "site" are
            "this identifier locates something in the site's XML sources".</dd>
          
<dt>todo</dt>
          
<dd>identifies the content in <span class="codefrag">todo.xml</span> by reference to a
            "node" of content declared in <span class="codefrag">site.xml</span>
</dd>
        
</dl>
<p>
          We call this indirect, or <em>semantic</em> linking because instead of
          linking to a physical representation (todo.html), we've linked to the
          "idea" of "the todo file". It doesn't matter where it physically
          lives; that will be sorted out by Forrest.
        </p>
<a name="N102BF"></a><a name="resolve-site-uris"></a>
<h4>Resolving site: URIs</h4>
<p>
            So how does "<span class="codefrag">site:todo</span>" get resolved? A full answer is
            provided in the <a href="#implementation">implementation</a>
            section. Essentially, the "<span class="codefrag">todo</span>" part has
            "<span class="codefrag">/site//</span>" prepended, and "<span class="codefrag">/@href</span>"
            appended, to form the string "<span class="codefrag">/site//todo/@href</span>". This
            is then used as an XPath expression in <span class="codefrag">site.xml</span> to identify the string
            replacement, in this case "<span class="codefrag">todo.html</span>"
          </p>
<p>
            Thus by modifying the XPath prefix and suffix, almost any XML format
            can be accommodated.
          </p>
<div class="note">
<div class="label">Note</div>
<div class="content">
            Actually, the XPath is applied to XML generated dynamically from
            <span class="codefrag">site.xml</span>. The generated XML has each "@href" fully expanded
            ("absolutized") and dot-dots (..) added as needed ("relativized").
          </div>
</div>
<p>
            Notice that the "//" allows us any degree of specificity when
            linking. In the sample <span class="codefrag">site.xml</span> above, both
            "<span class="codefrag">site:new_content_type</span>" and
            "<span class="codefrag">site:about/your-project/new_content_type</span>" identify the
            same node. It is up to you to decide how specific to make links. One
            nice benefit of link "ambiguity" is that <span class="codefrag">site.xml</span> can be reorganized
            without breaking links. For example, "new_content_type" currently
            identifies a node in "your-project". By leaving that fact
            unspecified in "<span class="codefrag">site:new_content_type</span>" we are free to
            make "new_content_type" its own XML file, or a node in another file,
            in another category.
          </p>
<a name="N102FD"></a><a name="resolve-ext-uris"></a>
<h4>ext: URIs: linking to external URLs</h4>
<p>
            The "<span class="codefrag">ext:</span>" scheme was created partly to demonstrate the
            ease with which new schemes can be defined, and partly for practical
            use. The "<span class="codefrag">ext:</span>" URIs identify nodes in <span class="codefrag">site.xml</span> below the
            &lt;external-refs&gt; node. By convention, nodes here link to URLs
            outside the website, and are not listed in the menu generated from
            the <span class="codefrag">site.xml</span> file.
          </p>
<p>
            Here is a <span class="codefrag">site.xml</span> snippet illustrating "<span class="codefrag">external-refs</span>":
          </p>
<pre class="code">

&lt;site&gt;
  ...
  &lt;external-refs&gt;
    &lt;mail-archive href="http://marc.theaimsgroup.com"/&gt;
    &lt;xml.apache.org href="http://xml.apache.org/"&gt;
      &lt;commons href="commons/"&gt;
        &lt;resolver href="components/resolver/"/&gt;
      &lt;/commons&gt;
    &lt;/xml.apache.org&gt;
    ...
  &lt;/external-refs&gt;
&lt;/site&gt;
          </pre>
<p>
            As an example, &lt;a href="ext:commons/resolver"&gt; generates the
            link
            <a href="http://xml.apache.org/commons/components/resolver/">http://xml.apache.org/commons/components/resolver/</a>
          
</p>
<p>
            The general rules of <span class="codefrag">site.xml</span> and "<span class="codefrag">site:</span>" linking apply.
            Specifically, the "@href" aggregation makes defining large numbers
            of related URLs easy.
          </p>
<a name="N10330"></a><a name="source-uris"></a>
<h4>Theory: source URIs</h4>
<p>
            The "<span class="codefrag">site:</span>" URIs like "<span class="codefrag">site:todo</span>" are
            examples of "<em>source</em>" URIs, in contrast to the more usual
            <span class="codefrag">foo.html</span> style URIs, which we here call
            "<em>destination</em>" URIs. This introduces an important concept:
            that the "<em>source</em>" URI space exists and is independent of
            that of the generated site. Furthermore, URIs (i.e. links) are
            first-class objects, on par with XML documents, in that just as XML
            content is transformed, so are the links. Within the source URI
            space, we can have all sorts of interesting schemes (person: mail:
            google: java: etc). These will all be translated into plain old
            "<span class="codefrag">http:</span>" or relative URIs in the destination URI space,
            just like exotic XML source formats are translated into plain old
            HTML in the output.
          </p>
<a name="N1034F"></a><a name="future-schemes"></a>
<h4>Future schemes</h4>
<p>
            So far, the "<span class="codefrag">site:</span>" and "<span class="codefrag">ext:</span>" schemes are
            defined. To give you some ideas on other things we'd like to
            implement (and wouldd welcome help to implement) here are a few
            possibilities.
          </p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
            
<tr>
              
<th colspan="1" rowspan="1">Scheme</th>
              <th colspan="1" rowspan="1">Example "From"</th>
              <th colspan="1" rowspan="1">Example "To"</th>
              <th colspan="1" rowspan="1">Description</th>
            
</tr>
            
<tr>
              
<td colspan="1" rowspan="1">java</td>
              <td colspan="1" rowspan="1">java:org.apache.proj.SomeClass</td>
              <td colspan="1" rowspan="1"><span class="codefrag">../../apidocs/org/apache/proj/SomeClass.html</span>
              </td>
              <td colspan="1" rowspan="1">
                Links to documentation for a Java class (typically generated by
                <span class="codefrag">javadoc</span>).
              </td>
            
</tr>
            
<tr>
              
<td colspan="1" rowspan="1">mail</td>
              <td colspan="1" rowspan="1">mail::&lt;Message-Id&gt;</td>
              <td colspan="1" rowspan="1"><span class="codefrag">http://marc.theaimsgroup.com?t=12345678</span>
              </td>
              <td colspan="1" rowspan="1">
                Links to an email, identified by its <span class="codefrag">Message-Id</span>
                header. Any mail archive website could be used.
              </td>
            
</tr>
            
<tr>
              
<td colspan="1" rowspan="1">search</td>
              <td colspan="1" rowspan="1">search:&lt;searchterm&gt;</td>
              <td colspan="1" rowspan="1"><span class="codefrag">http://www.google.com/search?q=searchterm</span>
              </td>
              <td colspan="1" rowspan="1">Link to set of results from a search engine</td>
            
</tr>
            
<tr>
              
<td colspan="1" rowspan="1">person</td>
              <td colspan="1" rowspan="1">person:JT, person:JT/blog etc</td>
              <td colspan="1" rowspan="1"><span class="codefrag">mailto:jefft&lt;at&gt;apache.org</span>,
                <span class="codefrag">http://www.webweavertech.com/jefft/weblog/</span>
              </td>
              <td colspan="1" rowspan="1">
                A "<span class="codefrag">person:</span>" scheme could be used, say, to insert an
                automatically obfuscated email address, or link to a URI in some
                way associated with that person.
              </td>
            
</tr>
          
</table>
<p>
            There are even more possibilities in specific environments. In an
            intranet, a "<span class="codefrag">project:XYZ</span>" scheme could identify company
            project pages. In a project like <a href="http://ant.apache.org/">Apache
            Ant</a>, each Task could be identified with
            <span class="codefrag">task:&lt;taskname&gt;</span>, e.g.
            <span class="codefrag">task:pathconvert</span>.
          </p>
</div>
    
<a name="N103FB"></a><a name="concept"></a>
<h2 class="underlined_10">Concept</h2>
<div class="section">
<p>
        The "<span class="codefrag">site:</span>" scheme and associated ideas for <span class="codefrag">site.xml</span> were
        originally described in <a href="http://marc.theaimsgroup.com/?l=forrest-dev&m=103444028129281&w=2">the 'linkmap' RT
        email</a> to the forrest-dev list (RT means 'random thought'; a
        Cocoon invention). Only section 2 has been implemented, and there is
        still significant work required to implement the full system described.
        In particular, there is much scope for automating the creation of <span class="codefrag">site.xml</span>
        (section 4). However, what is currently implemented gains most of the
        advantages of the system.
      </p>
</div>
    
<a name="N10412"></a><a name="implementation"></a>
<h2 class="underlined_10">Implementation</h2>
<div class="section">
<p>
        Full details on the implementation of
        <a href="../docs_0_80/sitemap-ref.html#linkrewriting_impl">link rewriting</a> and
        <a href="../docs_0_80/sitemap-ref.html#menu_generation_impl">menu generation</a> are
        available in the <a href="../docs_0_80/sitemap-ref.html">Sitemap Reference</a>
      
</p>
</div>
  
</div>
<!--+
    |end content
    +-->
<div class="clearboth">&nbsp;</div>
</div>
<div id="footer">
<!--+
    |start bottomstrip
    +-->
<div class="lastmodified">
<script type="text/javascript"><!--
document.write("Last Published: " + document.lastModified);
//  --></script>
</div>
<div class="copyright">
        Copyright &copy;
         2002-2007 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
</div>
<!--+
    |end bottomstrip
    +-->
</div>
</body>
</html>
