You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by Mark Lundquist <ml...@wrinkledog.com> on 2005/01/06 20:44:03 UTC
RE: context: protocol not available?
Hi Lars & everyone,
> From: Lars Huttar [mailto:lars_huttar@sil.org]
>
> Mark Lundquist wrote (on users@cocoon.apache.org):
>
> > Hi,
> >
> > I have some stylesheets containing:
> >
> > <xsl:import href="context:/path/to/something.xslt" />
> >
> > In 2.1.6, this causes:
> >
> > java.net.MalformedURLException: unknown protocol: context
> > at java.net.URL.<init>(URL.java:544)
> > at java.net.URL.<init>(URL.java:434)
> > at java.net.URL.<init>(URL.java:383)
> > at
> >
> org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
> >
> > It worked fine in 2.1.5! Any idea what's going on?
> >
> > Thanks,
> > Mark
> >
>
> I don't know why it worked in 2.1.5, but I do know that "context:" is a
> pseudoprotocol understood only by Cocoon. In particular it isn't
> understood by an XSLT processor (unless Xalan can somehow get help from
> Cocoon's URI resolver?)
Yes, this absolutely is supposed to work! :-)
org.apache.xalan.processor.TransformerFactoryImpl implements
javax.xml.transform.TransformerFactory, which provides the setURIResolver()
method.
And we want that to be... uh, o.a.c.components.CocoonComponentManager? Or
whatever Cocoon's SourceResolver is. Excalibur actually wires it up, I
guess.
Cocoon 2.1.6 uses the same Excalibur release as 2.1.5...
I'm so confuzzled...
~ml
RE: context: protocol not available?
Posted by Mark Lundquist <ml...@wrinkledog.com>.
> From: Mark Lundquist [mailto:ml@wrinkledog.com]
>
> [..snip..]
>
> Yes, this absolutely is supposed to work! :-)
>
> org.apache.xalan.processor.TransformerFactoryImpl implements
> javax.xml.transform.TransformerFactory, which provides the
> setURIResolver()
> method.
>
> And we want that to be... uh, o.a.c.components.CocoonComponentManager? Or
> whatever Cocoon's SourceResolver is. Excalibur actually wires it up, I
> guess.
>
> Cocoon 2.1.6 uses the same Excalibur release as 2.1.5...
>
> I'm so confuzzled...
OK, so I was faked out by some delegation... but in the end it looks like it
turns out to be the straight-up Excalibur resolver
(oa.excalibur.source.impl.SourceResolverImpl, specified in cocoon.roles),
and that implements the SourceFactory scheme Cocoon uses for extending the
protocol space.
Am I understanding this correctly?
Anyway, I haven't figured out why it no work in 2.1.6... :-( Apparently,
somehow this resolver isn't getting passed to
oa.xalan.processor.TransformerFactoryImpl.setURIResolver().
:-(
~ml