XSLT debugger to step into saxon:transform functions

Are you missing a feature? Request it's implementation here.
jokester01au
Posts: 64
Joined: Tue May 17, 2005 9:16 am

XSLT debugger to step into saxon:transform functions

Post by jokester01au » Sun Dec 10, 2006 4:29 am

Hi,

A handy feature of the saxon XSLT engine is the ability to split a transform up into a chain of smaller transforms using the saxon:transform function. It would be great if the oxygen xslt debugger was able to step into transforms executed in this manner.

While it is possible to manually generate files for each step in the chain, this is very tedious and it would be much better for the debugger to be able to step into the transformation executed byt saxon:transform.

Regards,
Joe.

sorin_ristache
Posts: 4144
Joined: Fri Mar 28, 2003 2:12 pm

Post by sorin_ristache » Tue Dec 12, 2006 11:26 am

Hello,

I am sorry, the Saxon engine does not offer a public API for knowing when extension functions are called in the stylesheet. Without such a public API it is impossible to step into the chained transforms.


Regards,
Sorin

jokester01au
Posts: 64
Joined: Tue May 17, 2005 9:16 am

XSLT debugger to step into saxon:transform functions

Post by jokester01au » Thu Dec 14, 2006 1:20 am

Hi,

I asked Michael Kay about this. I have reproduced his response below.

Regards,
Joe.

There is in fact such a mechanism, and I believe Stylus Studio uses it. Saxon
calls extension functions using a class called ExtensionFunctionCall, which
you can subclass by tailoring the ExtensionFunctionFactory, which is accessible
via the Configuration. In a subclass you can intercept the actual call of the
underlying Java method.

This only works for user-defined extension functions and for those Saxon-defined
extension functions that use the standard call mechanism, but that list includes
saxon:transform(). (It's not true of saxon:parse() and saxon:serialize(), because
they need access to the static context, which isn't available to ordinary extension
functions.)

Of course oXygen may well feel that this is not a high-priority requirement,
but it can be done if they choose to. I believe Stylus allows you to single-step
from XSLT/XQuery debugging straight into the Java debugger when extension functions
are invoked.

sorin_ristache
Posts: 4144
Joined: Fri Mar 28, 2003 2:12 pm

Post by sorin_ristache » Thu Dec 14, 2006 3:24 pm

Hello Joe,

Thank you for letting us know. We will consider stepping into and placing breakpoints in Java extension functions in the debugger in a future version of oXygen.


Regards,
Sorin

Post Reply