You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@forrest.apache.org by Jeff Turner <je...@apache.org> on 2003/01/12 11:25:44 UTC

Decent anchor links (Re: cvs commit: xml-forrest/src/resources/skins/common/xslt/html document2html.xsl)

On Sun, Jan 12, 2003 at 09:36:39AM +0100, Steven Noels wrote:
> Jeff Turner wrote:
> 
> >>There's a twisted little 'rightness' behind this xPointer idea, though - 
> >>it works for any element in the document, and strangely enough, there 
> >>is something I read somewhere which states that the high-level 
> >>_structure_ of documents don't change that much.
> >
> >
> >Yes, but it mixes concerns, because the address is for the content, which
> >the presentation theoretically shouldn't expose.
> 
> Yes, but that presentation (markup/structure) might change dramatically 
> by just applying a different skin, so I thought using the source 
> structure would be more future-proof.
> 
> >>For your transformer, 
> >>don't forget to think about:
> >>
> >><section>
> >> <title>Introduction</title>
> >> <p>foobar</p>
> >> <section>
> >>   <title>Operational constraints</title>
> >>   <section>
> >>     <title>Introduction</title>
> >>   </
> >> </
> >></
> >
> >
> >It's all done with XPath:
> >
> ><map:transform type="idgen">
> >  <map:parameter name="element" value="/document/body//*[local-name() = 
> >  'section']"/>
> >  <map:parameter name="id" value="*[1]/text()"/>
> ></map:transform>
> 
> Yep. Expensive XPath operation, though?

Expensive DOM creation, mostly.  I wish someone would write a
STXTransformer so one could do XPath-like stuff with SAX.

> I assume the id-value is 
> composed of the text() content of the first child-element of the matched 
> section element, i.e. title (since that is required in the DTD).

I wanted to make it fairly generic, so that we can use the same
transformer to augment FAQ, doc-v11, Docbook etc.  Without this
requirement I could probably have gotten away with straight SAX too.

> So that wouldn't solve the problem of multiple sections with the same 
> title in one document, I guess?

Well not until this email :)  I just modified it to make IDs unique, by
appending generate-id().


--Jeff

> </Steven>
> -- 
> Steven Noels                            http://outerthought.org/
> Outerthought - Open Source, Java & XML Competence Support Center
> Read my weblog at            http://blogs.cocoondev.org/stevenn/
> stevenn at outerthought.org                stevenn at apache.org
>