platform-help-home/online_help2.0.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.5 - (download) (as text) (annotate)
Wed Nov 21 17:35:50 2001 UTC (8 years ago) by kkolosow
Branch: MAIN
Changes since 1.4: +107 -215 lines
correct html errors
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
                
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
                
  <meta http-equiv="Content-Language" content="en-us">
<META name="GENERATOR" content="IBM WebSphere Homepage Builder V5.0.1 for Windows">
                
  <title>Eclipse online help 2.0 changes</title>
</head>
 <body>
        
<h1> ONLINE HELP CHANGES</h1>
  <i>(First draft: Nov 13, 2001</i>)<br>
  <br>
  Early adopters of the eclipse help system version 1.0 have provided considerable
  feedback on the contribution mechanism for online help and there seems
to  be a consensus on the following as direction for further work:    
<ul>
             
  <li> documentation pluggability is great, don't drop this feature</li>
              
  <li> need a simpler mechanism to plug-in the documentation</li>
       
</ul>
    As such, the proposed changes are meant to simplify the help contributions
  mechanism, to allow for simple migration from R1.0 and not to introduce
radically new concepts.<br>
   <br>
 
<h2>CONCEPTS<br>
 </h2>
   This section describes in very general terms the basics of the  eclipse 
online documentation.<br>
 <br>
 Eclipse-based products are made up of a number of plugins, each plugin contributing 
some function, and/or documentation. Documentation consists of two parts: the actual 
HTML files that are stored inside a ZIP files and the corresponding table of contents 
(TOC) stored in XML format  in Eclipse plugins. &nbsp;Documentation 
is, thus, distributed across plugins and comes together as an integrated documentation
library at runtime.  Tables of contents across all plugins are usually integrated
by linking them to one another to form larger, more product centric view
of the documentation. Most often a plugin defines a primary table of contents
to which other plugins integrate their own table of contents contributions.
<br>
 Tables of contents are really the unit of work, the building blocks of the 
documentation navigation. Tables of contents can link any other table of contents,
and can be linked to any other table of contents that allows linking. After
all the table of contents linking has been performed some tables of contents
are said to be integrated and some not. Those that are not integrated are
discarded and the library only contains the integrated tables of contents. 
<br>
 <br>
 A table of contents is considered to be integrated if:<br>
 
<ul>
   
  <li>it is primary</li>
   
  <li>it is linked to an integrated table of contents<br>
   </li>
 
</ul>
 A plugin indicates its desired integration of a table of contents by tagging 
it as "primary" or not:<br>
 
<ul>
   
  <li>a table of contents is not tagged as primary when it is meant to be 
integrated into another table of contents</li>
   
  <li>a table of contents should be tagged as primary when it is complete
 by itself and is not related to other table of contents, or when it is meant 
to be the master toc, the skeleton to which other toc's will integrate<br>
   </li>
 
</ul>
  &nbsp;Clearly, a primary table of contents can link to other (primary or 
not) tables of contents and can link other tables of contents to it. So, tagging
a TOC primary or not only declares an integration intention, not the final
outcome.<br>
 <br>
 Finally, the set of tables of contents forming the documentation library 
is the set of all primary tables of contents that are not linked to another 
integrated table of contents. In general it is the set of all the primary 
tables of contents, but sometimes, when some primary table of contents is 
linked (directly or indirectly) into another primary table of contents then 
it is no longer presented as a top level TOC.<br>
 <br>
 
<h2>CHANGES</h2>
       
<p>At a glance, here are the main changes: </p>
     
<ul>
             
  <li>Removed
  <ul>
    <li>information sets (infosets)</li>
    <li>information views (infoviews)</li>
    <li>actions</li>
    <li>topic ids's</li>
    <li>properties files: doc.properties and context.properties</li>
  </ul>
  </li>
  <li>Unchanged:
  <ul>
    <li>html help content still goes into doc.zip
    or unpacked in the plugin 
 dir</li>
    <li>pluggability (i.e. documentation and navigation
    can stay in the same
plugins): plugins contribute documentation
    and corresponding navigation structure(s),
that will be merged at runtime into an eclipse-wide
    documentation.</li>
  </ul>
  </li>
  <li>Slightly changed
  <ul>
    <li>topics.xml files are now toc.xml files</li>
    <li>the extension point for contributing help</li>
  </ul>
  </li>
  <li>New
  <ul>
    <li>document/web centric approach to building
    tables of contents using 
 linking of smaller, distributed tables of
    contents</li>
    <li>href/URL based mechanism for naming any
    help resource, including 
 navigation</li>
  </ul>
  </li>
</ul>
   The above suggests that migrating from version 1.0 should be straightforward, 
 as the html help content (doc.zip) does not change, the topics.xml files 
 are also almost identical and the modularization of documentation across 
plugins can stay the same. There will be a separate document describing migration 
 steps, tips, and examples.    
<p>&nbsp; <br>
   &nbsp; </p>
     
<h2> SCENARIOS</h2>
    It helps to look at a few scenarios to understand how help contributions
  work.&nbsp;    
<h4> Scenario 1: very basic</h4>
    The simplest case is when there is exactly one documentation plugin that
  consists of a doc.zip and the associated table of contents. The table of 
contents should be declared primary, as it makes sense to be standalone. 
  
<p>Here are the files: </p>
     
<p>plugin.xml&nbsp;</p>
     
<div align="Right">
<div align="Right"></div>
<table border="1" cellpadding="0" width="100%">
    <caption><br>
  </caption>   <TBODY>
       <tr>
    <td width="100%" bgcolor="#c0c0c0">                      
      <div style="line-height: 100%; "><font size="-1">&lt;plugin id="MyPlugin"&gt;</font></div>
                          
      <blockquote>                            
        <div style="line-height: 100%; "><font size="-1">&lt;extension point="org.eclipse.help.toc"&gt;</font></div>
                                
        <blockquote>                                  
          <div style="line-height: 100%; "><font size="-1">&lt;toc file="toc.xml"&nbsp; 
primary="<b>true</b>" /&gt;</font></div>
    </blockquote>
                                      
          <div style="line-height: 100%; "><font size="-1">&lt;/extension&gt;</font></div>
    </blockquote>
                                      
          <div style="line-height: 100%; "><font size="-1">&lt;/plugin&gt;</font></div>
    </td>
    </tr>
                         
      </TBODY>
</table>
       </div>
    toc.xml&nbsp;                
    <div align="Right">
<div align="Right"></div>
<table border="1" cellpadding="0" width="100%">
    <caption><br>
  </caption>   <TBODY>
           <tr>
    <td width="100%" bgcolor="#c0c0c0">                                 
          <div style="line-height: 100%; "><font size="-1">&lt;toc label="My 
 Plugin Documentation"&gt;</font></div>
                                      
          <blockquote>                                        
            <div style="line-height: 100%; "><font size="-1">&lt;topic label="Compiling"&nbsp;
  href="docs/compile.html"&gt;</font></div>
                                            
            <blockquote>                                              
              <div style="line-height: 100%; "><font size="-1">&lt;topic label="Java
files" href="docs/java.html"/.&gt;</font></div>
                                                  
              <div style="line-height: 100%; "><font size="-1">&lt;topic label="C++
files" href="docs/cpp.html"/&gt;</font></div>
    </blockquote>
                                                  
              <div style="line-height: 100%; "><font size="-1">&lt;/topic&gt;</font></div>
    </blockquote>
                                                  
              <div style="line-height: 100%; "><font size="-1">&lt;/toc&gt;</font></div>
    </td>
    </tr>
                                     
          </TBODY>
</table>
           </div>
    The doc.zip file contains docs/compile.html, docs/java.html and docs/cpp.html
  (and any images used).                            
        <p>The Help library consists of the following navigation structure</p>
                             
        <center>
<center></center>
<table border="1" cellpadding="0" width="100%" bgcolor="#c0c0c0">
    <caption><br>
  </caption>   <TBODY>
               <tr>
    <td width="808" height="137"><font size="-1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  Compiling</font>                                              
              <p><font size="-1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  Java files</font> </p>
                                               
              <p><font size="-1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  C++ files</font></p>
                 </td>
    </tr>
                                     
          </TBODY>
</table>
           </center>
                                
        <h4> Scenario 2: basic</h4>
    There are a few documentation plugins, none being aware of the others 
existence  (i.e. TOC's are standalone). In this case, each table of contents&nbsp; 
is tagged as a "primary" and the library consists of the collection of &nbsp;all 
the defined TOC's.                            
        <h4> Scenario 3: top-down integration</h4>
    A common scenario is to build an eclipse-based product and have the navigation
  distributed in a number of plugins, with a master plugin providing the
navigation  skeleton. The master table of contents file&nbsp; would then
include the other tables of contents at certain point and is marked as primary.
                           
        <p>The basic markup is to add an &lt;<b>link toc="../another_pluginID/another_toc_section.xml"&gt;</b>
    at the desired point in a table of contents. This basically links (integrates)
  the "another_toc.xml" navigation. The effect of this is that the help system 
now has just one big table of contents that is made up of smaller ones. </p>
                             
        <p>Here are the files: </p>
                             
        <p>plugin.xml in PluginA and PluginB&nbsp;</p>
                             
        <div align="Right">
<div align="Right"></div>
<table border="1" cellpadding="0" width="100%">
    <caption><br>
  </caption>   <TBODY>
               <tr>
    <td bgcolor="#c0c0c0">                                              
              <div style="line-height: 100%; "><font size="-1">&lt;plugin 
 id="PluginA"&gt;</font></div>
                                                  
              <blockquote>                                              
     
                <div style="line-height: 100%; "><font size="-1">&lt;extension 
 point="org.eclipse.help.toc"&gt;</font></div>
                                                        
                <blockquote>                                            
             
                  <div style="line-height: 100%; "><font size="-1">&lt;toc 
file="toc.xml" &nbsp;type="<b>toc</b>"/&gt;</font></div>
    </blockquote>
                                                              
                  <div style="line-height: 100%; "><font size="-1">&lt;/extension&gt;</font></div>
    </blockquote>
                                                              
                  <div style="line-height: 100%; "><font size="-1">&lt;/plugin&gt;</font></div>
    </td>
     <td bgcolor="#c0c0c0">                                             
            
                  <div style="line-height: 100%; "><font size="-1">&lt;plugin 
 id="PluginB"&gt;</font></div>
                                                              
                  <blockquote>                                           
                   
                    <div style="line-height: 100%; "><font size="-1">&lt;extension 
 point="org.eclipse.help.toc"&gt;</font></div>
                                                                    
                    <blockquote>                                         
                            
                      <div style="line-height: 100%; "><font size="-1">&lt;toc 
file="toc.xml"/&gt;</font></div>
    </blockquote>
                                                                        
 
                      <div style="line-height: 100%; "><font size="-1">&lt;/extension&gt;</font></div>
    </blockquote>
                                                                        
 
                      <div style="line-height: 100%; "><font size="-1">&lt;/plugin&gt;</font></div>
    </td>
    </tr>
                                                             
                  </TBODY>
</table>
                   </div>
    toc.xml in PluginA and PluginB&nbsp;                                
                   
                <div align="Right"><br>
<div align="Right"></div>
<table border="1" cellpadding="0" width="100%">
    <caption><br>
  </caption>   <TBODY>
                       <tr>
    <td width="50%" bgcolor="#c0c0c0">                                  
                                   
                      <div style="line-height: 100%; "><font size="-1">&lt;toc 
 label="PluginA Documentation"&gt;</font></div>
                                                                        
 
                      <blockquote>                                       
                                    
                        <div style="line-height: 100%; "><font size="-1">
   &lt;topic label="Compiling"&nbsp; href="docs/compile.html"&gt;</font></div>
                                                                        
       
                        <blockquote>                                     
                                            
                          <div style="line-height: 100%; "><font size="-1">
   &lt;topic label="Java files" href="docs/java.html"/&gt;</font></div>
                                                                        
             
                          <div style="line-height: 100%; "><b><font size="-1">
   &lt;link &nbsp; toc="../PluginB/toc.xml"/&gt;</font></b></div>
                                                                        
              
                          <p style="line-height: 100%; "><font size="-1">
   &lt;topic label="C++ files" href="docs/cpp.html"/&gt;</font></p>
                             </blockquote>
                                                                        
             
                          <div style="line-height: 100%; "><font size="-1">
   &lt;/topic&gt;</font></div>
    </blockquote>
                                                                        
             
                          <div style="line-height: 100%; "><font size="-1">
   &lt;/topic&gt;</font></div>
    </td>
     <td valign="Top" width="50%" bgcolor="#c0c0c0">                    
                                                             
                          <div style="line-height: 100%; "><font size="-1">
   &lt;toc label="PluginB&nbsp; Documentation"&gt;</font></div>
                                                                        
             
                          <blockquote>                                   
                                                    
                            <div style="line-height: 100%; "><font size="-1">
   &lt;topic label="JavaScript"&nbsp; href="js.html"&gt;</font></div>
                                                                        
                   
                            <blockquote>                                
                                                             
                              <div style="line-height: 100%; "><font size="-1">
   &lt;topic label="Netscape" href="ns.html"/&gt;</font></div>
                                                                        
                         
                              <div style="line-height: 100%; "><font size="-1">
   &lt;topic label="IE" href="ie.html"/&gt;</font></div>
    </blockquote>
                                                                        
                         
                              <div style="line-height: 100%; "><font size="-1">
   &lt;/topic&gt;</font></div>
    </blockquote>
                                                                        
                         
                              <div style="line-height: 100%; "><font size="-1">
   &lt;/topic&gt;</font></div>
    </td>
    </tr>
                                                                        
            
                          </TBODY>
</table>
                           </div>
    The doc.zip file in PluginA contains docs/compile.html, docs/java.html
 and docs/cpp.html (and any images used). The doc.zip file in PluginB contais
 js.html, ns.html and ie.html (and any images used).                    
                                                       
                        <p>Help should display the following table of contents<br>
   </p>
                                                                        
    
                        <center>
<center></center>
<table border="1" cellpadding="0" width="100%" bgcolor="#c0c0c0">
    <caption><br>
  </caption>   <TBODY>
                               <tr>
    <td width="808" height="137"><font size="-1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  Compiling</font>                                                      
                                       
                              <p><font size="-1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
 Java files</font> </p>
                                                                        
                      
                              <blockquote><b><font size="-1">JavaScript</font></b>
                                                                        
                              
                                <blockquote><b><font size="-1">Netscape</font></b>
                                                                        
                                   
                                  <p><b><font size="-1">IE</font></b></p>
                                     </blockquote>
    </blockquote>
    <font size="-1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  C++ files</font></td>
    </tr>
                                                                        
                        
                              </TBODY>
</table>
                               </center>
                                                                        
                   
                            <h4> Scenario 4: basic bottom-up integration</h4>
    A typical scenario for a third party ISV is to provide tools (plugins)
 and attempt to integrate their documentation with that of the target product
 (like IBM's Websphere Studio). For that to happen, the ISV toc file must
link itself to the target toc, and the target doc must expose an anchor for
linking.                                                                
                       
                            <p>The markup for this kind of linking is simply 
specifying the link_to attribute on the &lt;toc&gt; element inside the table 
of contents file: </p>
                                                                        
                
                            <p>&lt;toc label="PluginA docs"&nbsp; <b>link_to="../PluginB/toc.xml#anchor_id"</b>
    &gt; </p>
                                                                        
                
                            <p>The net effect should be the same as if the 
 target navigation file &lt;link&gt;-ed the ISV navigation component at the 
specified anchor. </p>
                                                                        
                
                            <p> </p>
                                                                        
                
                            <p>Here are the files: </p>
                                                                        
                
                            <p>plugin.xml in PluginA and PluginB&nbsp;</p>
                                                                        
                
                            <div align="Right">
<div align="Right"></div>
<table border="1" cellpadding="0" width="100%">
    <caption><br>
  </caption>   <TBODY>
                                   <tr>
    <td bgcolor="#c0c0c0">                                              
                                                           
                                  <div style="line-height: 100%; "><font size="-1">
   &lt;plugin id="PluginA"&gt;</font></div>
                                                                        
                                     
                                  <blockquote>                          
                                                                        
            
                                    <div style="line-height: 100%; "><font size="-1">
   &lt;extension point="org.eclipse.help.toc"&gt;</font></div>
                                                                        
                                           
                                    <blockquote>                        
                                                                        
                    
                                      <div style="line-height: 100%; "><font size="-1">
   &lt;toc file="toc.xml"/&gt;</font></div>
    </blockquote>
                                                                        
                                                 
                                      <div style="line-height: 100%; "><font size="-1">
   &lt;/extension&gt;</font></div>
    </blockquote>
                                                                        
                                                 
                                      <div style="line-height: 100%; "><font size="-1">
   &lt;/plugin&gt;</font></div>
    </td>
     <td bgcolor="#c0c0c0">                                             
                                                                        
                                      <div style="line-height: 100%; "><font size="-1">
   &lt;plugin id="PluginB"&gt;</font></div>
                                                                        
                                                 
                                      <blockquote>                      
                                                                        
                            
                                        <div style="line-height: 100%; "><font size="-1">
   &lt;extension point="org.eclipse.help.toc"&gt;</font></div>
                                                                        
                                                       
                                        <blockquote>                    
                                                                        
                                    
                                          <div style="line-height: 100%; "><font size="-1">
   &lt;toc file="toc.xml"/&gt;</font></div>
    </blockquote>
                                                                        
                                                             
                                          <div style="line-height: 100%; "><font size="-1">
   &lt;/extension&gt;</font></div>
    </blockquote>
                                                                        
                                                             
                                          <div style="line-height: 100%; "><font size="-1">
   &lt;/plugin&gt;</font></div>
    </td>
    </tr>
                                                                        
                                                
                                      </TBODY>
</table>
                                       </div>
    toc.xml in PluginA and PluginB&nbsp;                                
                                                                        
      
                                    <div align="Right"><br>
<div align="Right"></div>
<table border="1" cellpadding="0" width="100%">
    <caption><br>
  </caption>   <TBODY>
                                           <tr>
    <td width="50%" bgcolor="#c0c0c0">                                  
                                                                        
                      
                                          <div style="line-height: 100%; "><font size="-1">
   &lt;toc label=" PluginA Documentation"&gt;</font></div>
                                                                        
                                                             
                                          <blockquote>                  
                                                                         
                                           
                                            <div style="line-height: 100%; "><font size="-1">
   &lt;topic label="Compiling"&nbsp; href="docs/compile.html"&gt;</font></div>
                                                                        
                                                                   
                                            <blockquote>                
                                                                        
                                                    
                                              <div style="line-height: 100%; "><font size="-1">
   &lt;topic label="Java files" href="docs/java.html"/&gt;</font></div>
                                                                        
                                                                        
                                              <div style="line-height: 100%; "><b><font size="-1">
   &lt;anchor id="other"/&gt;</font></b></div>
                                                                        
                                                                        
 
                                              <p style="line-height: 100%; "><font size="-1">
   &lt;topic label="C++ files" href="docs/cpp.html"/&gt;</font></p>
                                                 </blockquote>
                                                                        
                                                                        
                                              <div style="line-height: 100%; "><font size="-1">
   &lt;/topic&gt;</font></div>
    </blockquote>
                                                                        
                                                                        
                                              <div style="line-height: 100%; "><font size="-1">
   &lt;/topic&gt;</font></div>
    </td>
     <td valign="Top" width="50%" bgcolor="#c0c0c0">                    
                                                                        
                                               
                                              <div style="line-height: 100%; "><font size="-1">
   &lt;toc label=" PluginB&nbsp; Documentation" <b>link_to="../PluginA/toc.xml#other"</b>
    &gt;</font></div>
                                                                        
                                                                        
                                              <blockquote>              
                                                                        
                                                            
                                                <div style="line-height: 100%; "><font size="-1">
   &lt;topic label="JavaScript"&nbsp; href="js.html"&gt;</font></div>
                                                                        
                                                                        
      
                                                <blockquote>            
                                                                        
                                                                    
                                                  <div style="line-height: 100%; "><font size="-1">
   &lt;topic label="Netscape" href="ns.html"/&gt;</font></div>
                                                                        
                                                                        
            
                                                  <div style="line-height: 100%; "><font size="-1">
   &lt;topic label="IE" href="ie.html"/&gt;</font></div>
    </blockquote>
                                                                        
                                                                        
            
                                                  <div style="line-height: 100%; "><font size="-1">
   &lt;/topic&gt;</font></div>
    </blockquote>
                                                                        
                                                                        
            
                                                  <div style="line-height: 100%; "><font size="-1">
   &lt;/topic&gt;</font></div>
    </td>
    </tr>
                                                                        
                                                                        
                                              </TBODY>
</table>
                                               </div>
   The following table of contents is built:&nbsp;                      
                                                                        
                                        
                                            <center></center>
<center></center>
<table border="1" cellpadding="0" width="100%" bgcolor="#c0c0c0">
                                                <caption><br>
  </caption>
  <TBODY>
                                                  <tr>
                                                    <td width="808" height="137"><font size="-1">
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font size="-1">Compiling</font></font>
                                                                        
                              
                                                  <p><font size="-1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  Java files</font></p>
                                                                        
                              
                                                  <blockquote><b><font size="-1">
   JavaScript</font></b>                                                
                                                         
                                                    <blockquote><b><font size="-1">
   Netscape</font></b>                                                  
                                                           
                                                      <p><b><font size="-1">
   IE</font></b></p>
                                                        </blockquote>
                                                        </blockquote>
                                                                        
                                      
                                                      <blockquote><font size="-1">
   C++ files</font></blockquote>
                                                          </td>
                                                        </tr>
                                                                        
                                  
                                                    </TBODY>
</table>
                                                                        
                              
                                                  <h2></h2>
                                                    <br>
                                                                        
                                                                        
         
                                                  <h2> REFERENCE</h2>
                                                                        
                                                                        
            
                                                  <h3> Plugin.xml</h3>
    A plugin can contribute one or more tables of contents. Tables of contents 
files contain navigation info for the help content, i.e.a hierarchical structure 
of &nbsp;topic nodes that point to the actual html help documents. By default 
tables of contents are meant to be integrated to other tables of contents. 
Some are considered standalone or master tables of contents, and marked as 
primary.&nbsp; Each TOC contributed by a plugin must be defined in the plugin.xml 
file under the org.eclipse.help.toc  extension point. A plugin can configure
 one or more toc extension points,  and each toc extension point can define 
one or more tables of contents. Multiple TOCs are contributed when needed 
to support different navigation views, or to provide reusable table of contents 
components. The same TOC should not be defined multiple times.&nbsp; <br>
   The DTD for the org.eclipse.help.toc extension point content is as follows:
                                                                        
                                                                        
        
                                                  <p><font size="-1">&lt;!ELEMENT 
 extension&nbsp; (toc)* &gt;</font> <br>
                                                     <font size="-1">&lt;!ATTLIST&nbsp; 
 extension point&nbsp; CDATA "org.eclipse.help.toc"&nbsp; #FIXED&gt;</font>
    <br>
                                                     <font size="-1">&lt;!--</font>
    <br>
                                                     <font size="-1">Each 
toc  extension point can define any number of toc files.</font> <br>
                                                     <font size="-1">--&gt;</font>
    </p>
                                                                        
                                                                        
         
                                                  <p>  </p>
                                                                        
                                                                        
         
                                                  <p><font size="-1">&lt;!ELEMENT&nbsp;&nbsp; 
toc EMPTY&gt;</font> <br>
                                                     <font size="-1">&lt;!ATTLIST&nbsp;&nbsp;&nbsp; 
toc file CDATA&nbsp;&nbsp; #REQUIRED&gt;</font><br>
                                                    <font size="-1">&lt;!ATTLIST&nbsp;&nbsp;&nbsp; 
toc primary (true | false) "false" &gt;</font><br>
                                                    </p>
                                                                        
                              
                                                  <p>                   
                               <font size="-1">&lt;!--</font>  <br>
                                                     <font size="-1">Each 
toc  file definition specifies the toc file by its relative path (href)&nbsp; 
 to the plugin and whether the plugin contributes it as a section or a table
 of contents or as a standalone or master table of contents.</font><br>
                                                     <font size="-1">--&gt;</font>
    <br>
   &nbsp; <br>
   &nbsp;</p>
                                                                        
                                                                        
         
                                                  <p>Example: <br>
   </p>
                                                                        
                                                                        
         
                                                  <blockquote>          
                                                                        
                                                                        
   
                                                    <div style="line-height: 100%; ">
 &nbsp; <br>
                                                                        
                                                                        
               
                                                    <table border="1" cellspacing="2" cellpadding="2" width="100%">
    <caption><br>
                                                         </caption><tbody>
    <tr>
      <td valign="Top" bgcolor="#cccccc">
      <blockquote>
      <div style="line-height: 100%; "><font size="-1">&lt;extension point="org.eclipse.help.toc<b>"</b>&gt;<br>
      </font></div>
      <blockquote>
      <div style="line-height: 100%; "><font size="-1">&lt;!-- this defines a standalone table
      of contents --&gt;<br>
      &lt;toc file="toc.xml" &nbsp;primary="true"/&gt;</font></div>
      </blockquote>
      <div style="line-height: 100%; "><font size="-1">&lt;/extension&gt;<br>
      <br>
      </font></div>
      <div style="line-height: 100%; "><font size="-1">&lt;extension point="<b> org.eclipse.help.toc</b>"&gt;</font></div>
      <blockquote>
      <div style="line-height: 100%; "><font size="-1">&lt;!-- this defines two sections --&gt;</font><b><font size="-1"><br>
      &lt;toc file=</font></b><font size="-1">"tocWSAD.xml"/</font></div>
      <br>
      <font size="-1">&lt;<b>toc&nbsp; href</b>="referencesWSAD.xml" /&gt;</font></blockquote>
      <div style="line-height: 100%; "><font size="-1">&lt;/extension&gt;</font></div>
      <div style="line-height: 100%; "></div>
      </blockquote>
      </td>
    </tr>
  </tbody>
</table>
    </div>
    </blockquote>
                                                                        
                                                                        
                                      
                                                          <h3> Toc.xml</h3>
    The new table of contents files combine the 1.0 topics files with the 
1.0 action files  in a cleaner document/web centric structure. <br>
   In its most basic form, tables of contents&nbsp; are just hierarchical 
structures of  topics. A topic is really a "pointer" to the actual help file. 
Stepping up  in complexity, &nbsp;a table of contents can <b>link </b>other 
tables of contents when desired, creating larger tables of contents. Conversely, 
a table of contents can <b>link to</b> another table of contents, forming 
larger navigation tables of contents in a  bottom up approach. Linking to
another table of contents file is done by specifying an anchor in the target table of contents file.<br>
   Since topics behave like pointers to a help file, the same html help file 
 can be reused in many places, by defining the appropriate topic. Reuse can 
 also be done in groups of topics, with the table of contents file acting as
 a reusable component.The same table of contents file can be linked&nbsp;  many times. 
Two branches of the navigation tree will look identical from the reused table 
of contents and down.                                                           
                                                                        
                                               
                                                          <p>The DTD for the
table of contents file follows: </p>
                                                                        
                                                                        
                                   
                                                          <p><font size="-1">
   &lt;!ELEMENT&nbsp; toc&nbsp; (topic | anchor |&nbsp; link)* &gt;</font>
    <br>
                                                               <font size="-1">
   &lt;!ATTLIST&nbsp; toc&nbsp; link_to&nbsp; CDATA&nbsp; #IMPLIED&gt;</font>
    <br>
                                                               <font size="-1">
   &lt;!ATTLIST&nbsp; toc&nbsp; label&nbsp;&nbsp;&nbsp; CDATA&nbsp; #REQUIRED&gt;</font>
    <br>
                                                               <font size="-1">
   &lt;!--</font> <br>
                                                               <font size="-1">
   A toc element is the root of the tree of topics defined in the table of 
contents file. It can optionally attach to another topics file by providing 
its "link_to"  attribute. The value of this attribute should be an href to 
an anchor defined in this plugin or in another plugin.</font> <br>
                                                               <font size="-1">
   &nbsp;Href's to anchors in&nbsp; a table of contents&nbsp; in other plugins 
are specified as&nbsp; ../other_plugin_id/path_to_toc_file.xml#anchor_id</font><br>
                                                               <font size="-1">
   Each toc element must define a label to be used in its presentation. The 
label is only shown when the table of contents &nbsp;is primary and not integrated 
into another table of contents (i.e. it is part of the library of the tables 
of contents for the product). When linked, the toc element gets bypassed, 
and its topics are directly connected to topics at the link point .</font>
   <br>
                                                               <font size="-1">
   A TOC&nbsp; file consist of any number of&nbsp; (nested) topics, anchor 
points  or links of other TOC files.</font> <br>
                                                               <font size="-1">
   --&gt;</font> </p>
                                                                        
                                                                        
                                   
                                                          <p><font size="-1">
   &lt;!ELEMENT topic&nbsp; (topic | anchor | link )* &gt;</font> <br>
                                                               <font size="-1">
   &lt;!ATTLIST&nbsp; topic&nbsp; label&nbsp; CDATA&nbsp; #REQUIRED&gt;</font>
    <br>
                                                               <font size="-1">
   &lt;!ATTLIST&nbsp; topic&nbsp; href&nbsp;&nbsp;&nbsp; CDATA&nbsp; #IMPLIED&gt;</font>
    <br>
                                                               <font size="-1">
   &lt;!--</font> <br>
                                                               <font size="-1">
   Each topic is a node in a table of contents tree and can contain topics, anchor points 
 or can include the topics form other tables of contents.</font><br>
                                                               <font size="-1">
   For presentaton purposes, each topic must have a label.</font> <br>
                                                               <font size="-1">
   Most topics have a corresponding help content, identified by the href
value.  In general the href is a relative path to a file in the same plugin
(in doc.zip  or a regular file) or can point to content in another plugin
using the ../another_plugin_id/path_to_content_file.html  form.</font> <br>
                                                               <font size="-1">
   Topics with no href are there for grouping &nbsp;other topics, for cleaner 
tree presentation.</font>   <br>
                                                               <font size="-1">
   --&gt;</font> </p>
                                                                        
                                                                        
                                   
                                                          <p><font size="-1">
   &lt;!ELEMENT&nbsp; anchor&nbsp; EMPTY&gt;</font> <br>
                                                               <font size="-1">
   &lt;!ATTLIST&nbsp; anchor&nbsp; id&nbsp; ID &nbsp;&nbsp; #REQUIRED&gt;</font>
    <br>
                                                               <font size="-1">
   &lt;!--</font> <br>
                                                               <font size="-1">
   An anchor&nbsp; is really an insertion point for other tables of contents 
to link into the structure defined in the current file. If&nbsp; multiple 
topics files &nbsp;linked to the same topic, they will be linked in the processing 
order.  In other words, the order is not guaranteed. Multiple, adjacent anchors 
may  be used to differentiate among topics that should be linked before or 
after  the others.</font> <br>
                                                               <font size="-1">
   --&gt;</font></p>
                                                           
                                                          <p><font size="-1">
   &lt;!ELEMENT&nbsp; link&nbsp; EMPTY&gt;</font><br>
                                                           <font size="-1">
   &lt;!ATTLIST&nbsp; link&nbsp; toc CDATA&nbsp;&nbsp;&nbsp; #REQUIRED&gt;</font><br>
                                                           <font size="-1">
   &lt;!--</font><br>
                                                           <font size="-1">
    A link is used to link the topics from another table of content</font>
 s.<br>
                                                           <font size="-1">
 --&gt;</font></p>
                                                           
                                                          <p><br>
  </p>
                                                                        
                                                                        
                                   
                                                          <p><!--ELEMENT  include  EMPTY--><!--ATTLIST  include  href  CDATA    #REQUIRED--><!--
An include is the simplest way to extend navigation by integrating other 
topics files available at the place where the element is defined.  
The topic's structure (all topic elements) defined in the file specified by the 
href attribute is inserted into the current file. This includes all the attached or included 
topics files, recursively.
-->
    </p>
                                                                        
                                                                        
                                   
 <h3> Q&A  </h3>
 
 <pre>
(Q) I am curious about the fact that infoviews have gone away. How will
    different views of the infoset work now? 
(A) We need to gather more feedback from the users to understand what is really needed 
    to accomplish by using views. This document deals mostly with building TOC's, without
    making too many assumptions about their visual representation in the help view.
    We have been discussing some ways to include/exclude certain TOC's under certain
    conditions, for a role-based presentation of help, but we're still looking for input
    from the users of the technology.
    
(Q) And if infosets are gone, will there be any way of titling a doc web? 
(A) What is the meaning of a doc web? Is it all the docs provided by an eclipse-based
    product? Theoretically, all the plugins contributing
    help are part of a doc web (that of the current eclipse session). If you think that
    you may install two eclipse-based products then what kind of scenario are you looking
    at that you need to differentiate between the two "doc webs"? 
    
(Q) I am also a little confused about the statement that properties files, both doc.properties and
    contexts.properties, go away. What are they replaced by?
(A) The assumption here is that the xml files (toc.xml and context.xml) will be sent to
    translation and packaged in their own fragments just like the translated html content.
    This also allows for having different tables of contents on different languages. The
    drawback is that last minute changes in a TOC will have to be propagated to all
    the translated toc.xml files.
</pre>
  &nbsp;                                                                
                                                                        
                                          
                                                          </body>
                                                          </html>