This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Complex table of content generation
- To: xsl-list at mulberrytech dot com
- Subject: Complex table of content generation
- From: Jean-Claude Tarby <Jean-Claude dot Tarby at cmis dot csiro dot au>
- Date: Wed, 28 Jun 2000 08:55:32 +1000
- Reply-To: xsl-list at mulberrytech dot com
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@univ-lille1.fr |
| SYDNEY | E-mail : Jean-Claude.Tarby@cmis.csiro.au |
+----------------+---------------------------------------------------+
| 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