On 7/6/07, Ross Gardler <[EMAIL PROTECTED]> wrote:
On 05/07/07, Oshani Seneviratne <[EMAIL PROTECTED]> wrote:
> Hi,
>
> In the FOAF plugin, I was trying to make the FOAF data get
> auto-discovered by a tool like Semantic Radar [1]. To do that, I
> believe there should be a link tag, such as the following, inside the
> head element of the page.
>
> <link rel="meta" type="application/rdf+xml" href="foaf.rdf" />
>
> I could not find any DTD in document-v20 [2] for 'link', so I was
> unable to add it in the xsl which transforms the FOAF into XDoc.
>
> However, I see that some link tags are included (css files for
> example) in the final HTML page generated. But I couldn't figure out
> where those are picked up in the pipeline.
>
> So I would really appreciate any advice on what I should do to get a
> link tag included in a page.

These are added by the skinning system. Using skins there is no easy
way to do this since there is no (easy) way for the skin to know when
it should be adding the link. I'm afraid it is one of the drawbacks of
the skinning system. It is possible, but it is hacky and I don't
recommend going down that route as it will mean having to maintain a
new skin, which we don't want to do.

We could consider adding handling of the link element in XDoc (it is
XHTML2 compat, so is likely to be accepted by the community).

It is much easier if using the dispatcher (see the DOAP plugin for an
example of exactly what you want to do - but only if you want to work
with the dispatcher).

So, do you fancy going with the dispatcher or do you fancy getting
into the internals of Forrest? (or ignore it completely for now, add
an issue to the issue tracker and move on to another requirement).



I had a look at the doap plugin to see how you have done it using the
dispatcher. But there are few things that I was not able to understand
there. For instance, in [1] there is the following piece of code:

[1]$FORREST_HOME/whiteboard/plugins/o.a.f.p.i.doap/resources/themes/common/html/doap-embedded.ft

<forrest:template xmlns:forrest="http://apache.org/forrest/templates/1.0";
   name="doap-embedded" inputFormat="xsl">
.
.
.
  <xsl:template match="[EMAIL PROTECTED]"><link rel="meta" 
type="application/rdf+xml">
.
.

Does this [EMAIL PROTECTED] refer to the<doap> element in the
src/resources/themes/pelt.fv ?
Assuming that it is,  I hacked up a similar contract for the FOAF
plugin. But it throws up this error saying "dispatcherError:Could not
get the properties for cocoon://index.props". (Please find the full
trace at the end of the mail)
What do you think I am doing wrong here?

So, I guess I will leave out adding the <link> tag for a while.This
was not a major requirement, and I have some code that I would like to
get committed first, so this could wait a bit. (I got a bit carried
away to do something like the FOAF-Explorer [2] and try out the
Semantic Radar when there are multiple FOAF files.)

[2] http://xml.mfd-consult.dk/foaf/explorer/

Thanks,
Oshani

------------------------------------------------------------------
dispatcherError:
Could not get the properties for cocoon://index.props
DispatcherStack: org.apache.excalibur.source.SourceNotFoundException:
Exception during processing of cocoon://index.props
        at <map:serialize type="xhtml"> -
file:/E:/projects/forrest/build/plugins/org.apache.forrest.plugin.internal.dispatcher/internal.xmap:177:39
        at <map:transform> -
file:/E:/projects/forrest/build/plugins/org.apache.forrest.plugin.internal.dispatcher/internal.xmap:176:13
        at <map:transform> -
file:/E:/projects/forrest/build/plugins/org.apache.forrest.plugin.internal.dispatcher/internal.xmap:173:13
        at <map:transform type="dispatcher"> -
file:/E:/projects/forrest/build/plugins/org.apache.forrest.plugin.internal.dispatcher/internal.xmap:163:42
        at <map:generate type="jx"> -
file:/E:/projects/forrest/build/plugins/org.apache.forrest.plugin.internal.dispatcher/internal.xmap:157:70
        at <map:mount> -
file:/E:/projects/forrest/whiteboard/plugins/org.apache.forrest.plugin.input.foaf/build/tmp/internal.xmap:33:158
        at <map:mount> - 
file:/E:/projects/forrest/main/webapp/sitemap.xmap:355:118