Complex table of content generation

Subject: Complex table of content generation
From: Jean-Claude Tarby <Jean-Claude.Tarby@xxxxxxxxxxxxx>
Date: Wed, 28 Jun 2000 08:55:32 +1000
Hi.

Sorry for this long email, but here is a hard question (may be). I don't
know how to solve this problem :-(((

May be I'm wrong with XSLT but I would like to generate complex hyperlinks
for an interactive navigation. Because my subject is too long to explain,
let me give you an exemple of what I plan to do.

Suppose that you have components which are built with other components (may
be cross-reference or RECURSIVE !). Here is an example (C=component). There
is NO ERROR, the cross-references are exact. 
Don't matter of what it means.
Usually my trees have branches with very different depth, but I take an
easy example here...

(Use courrier font if not readable)

                                C
                                |
    |------------------|-----------------|------------------|
    C1                 C2                C3                 C4
    |                  |                 |                  |
  |-----|        |-----|----|       |---|--|--|       |----|----|---|
C1.1  C1.2     C2.1  C2.2  C1     C1.1 C2 C3 C4      C1.1 C2.1  C   C4
        


I know how to generate (with xsl:key) hyperlinks for simple references, but
I'd like :
- a table of contents with hyperlinks to the description of each component
- a sorted list of all the components by alphabetical order, 
- a sorted list of all the components by LOGICAL ORDER that means by
browsing branch by branch (I don't know at all how to do that...). 
  For the two lists, I need BOTH hyperlinks to navigate to the parents and
to the children. (Is it possible due to the recursivity and
cross-references like C3/C3 or C/C4/C ???)

Here is an example of what I want: 

1. Table of content (may be by alphabetical order)
       (each name is a hyperlink on the description of the component)
C
C1
C1.1
C2
C2.1

2. List of all components (by logical order) 
2.1 I need to write the exact composition each time. SO, XSL must produce:

Composition 1 = C, C1, C1.1 - C1.2  
Composition 2 = C, C2, C2.1 - C2.2 - C1
Composition 3 = C, C3, C1.1 - C2 - C3 - C4
Composition 4 = C, C4, C1.1 - C2.1 - C - C4

Again, each name is a hyperlink.

2.2 Description of each component (each name is a hyperlink, too)

Component = C
Parent = none            (!!!)
Children = C1, C2, C3, C4

Component = C1
Parent = C
Children = C1.1, C1.2


Component = C1.1
Parent = C1, C3, C4      (!!!)
Children = none

...

Component = C4
Parent = C3, C4          (!!!)
Children = C1.1, C2.1, C, C4

XML version of the components:
<Components>
   <Component name = "C">
      <SubComponent>C1</SubComponent>
      <SubComponent>C2</SubComponent>
      <SubComponent>C3</SubComponent>
      <SubComponent>C4</SubComponent>
   </Component>
   <Component name = "C1">
      <SubComponent>C1.1</SubComponent>
      <SubComponent>C1.2</SubComponent>
   </Component>
   ...
   <Component name = "C4">
      <SubComponent>C1.1</SubComponent>
      <SubComponent>C2.1</SubComponent>
      <SubComponent>C</SubComponent>
      <SubComponent>C4</SubComponent>
   </Component></Components>

Who can help me ?

Best regards,

J.C.
+----------------+---------------------------------------------------+
|   ATTENTION !   Actuellement je suis a Sydney (cf. email plus bas) | 
+----------------+---------------------------------------------------+ 
|    /\ /\ /\    |  Jean-Claude TARBY                                | 
|   /  /  /  \   |  Associate Professor                              |
|  /  /  /    \  |  TRIGONE Laboratory  - CUEEP Institute            | 
|  \  \  \    /  |  University Lille 1                               | 
|   \  \  \  /   |  59655 Villeneuve d'Ascq Cedex   -   FRANCE       | 
|    \/ \/ \/    |  Phone   : +33 (0)3.20.43.32.62                   | 
|                |  Fax     : +33 (0)3.20.43.32.79                   | 
|    TRIGONE     |  E-mail  : Jean-Claude.Tarby@xxxxxxxxxxxxxx       | 
|    SYDNEY      |  E-mail  : Jean-Claude.Tarby@xxxxxxxxxxxxx        | 
+----------------+---------------------------------------------------+ 
|     http://www-trigone.univ-lille1.fr/jean_claude/Welcome.html     | 
+----------------+---------------------------------------------------+ 
|     DESS MICE  |  http://cueep.univ-lille1.fr/dess-mice            | 
|     DESS IPM   |  http://cueep.univ-lille1.fr/dess-ipm             | 
+----------------+---------------------------------------------------+ 









 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread