> Hi Mark,
>
> It's good to hear back from you!
>
Yup, and sorry once again for the (vast) delays.  Hopefully I'll be able
to get this rounded off finally!

> I think you've uncovered a bug in the code.  There's no way an external
> function should get a reference to the XPathExecutionContextDefault
> instance inside of StylesheetExecutionContextDefault.
>
> It's always been a problem using this proxy object -- although it saves
> re-writing lots of code, it creates other problems.  The reason
> StylesheetExecutionContextDefault does not derive from
> XPathExecutionContextDefault is that it must also derive from
> StylesheetExecutionContext, so deriving from both would create
unnecessary
> multiple inheritence along with lots of potential ambiguity.
>
Sure, because StyleSheetExecutionContext also derives from
XPathExecutionContext.  I'm not terribly clear on why the split here; if
there are two different interfaces, then it would seem better to split them
up.  In my mind this is the cleanest model, as then taking this further you 
compose
interfaces of a small number of related functions (and provide default 
implementations
of those interfaces), allowing specific parts of the functionality to be easily
(re)implemented.

> I'm not sure what the best long-term solution is, but a short-term fix
is
> to move most of the functionality of
> XPathExecutionContextDefault::extFunction() into a static helper
function,
> and have StylesheetExecutionContextDefault::extFunction() call that.
Let
> me do that, and when I'm finished, I'll check it in a you can take a
look
> at the changes.  You'll have to update your local sources to the latest
> CVS, but you'll have to do that anyway, if we have any hope of merging
in
> your changes.
>
OK, I think I follow what you are saying.  If I get the chance to have a go
at this in the meantime, then I will just replicate the code as a shortcut to
being able to test the other stuff.  I agree that updating to the current CVS 
will
be necessary/useful as it has been such a long time since I started on this, so
I am of course happy to do this.

Thanks again,

Mark

Reply via email to