xsl-list
[Top] [All Lists]

RE: [xsl] xsl:result-document and TrAX Transformer getOutputProperty

2007-02-21 02:30:13

There's no JAXP method to do this because JAXP doesn't yet recognize XSLT
2.0.

In Saxon you can inspect the static contents of a named xsl:output
declaration using

((Controller)transformer).getExecutable().getOutputProperties(fp)

where fp is the fingerprint of the xsl:output name.

But as you rightly point out, the xsl:result-document can override these
properties dynamically. If you need to know the dynamic values, you can do
this (I think) by registering with the Configuration a SerializerFactory
that's a trivial subclass of the standard SerializerFactory, except that it
intercepts the getReceiver() method, which is given the run-time output
properties as a parameter.

An alternative approach is not to control serialization options from the
stylesheet at all, but to do it entirely from your application. You can do
this by writing an OutputURIResolver that constructs its own serializer
encapsulated in the Result object it returns.

Michael Kay
http://www.saxonica.com/ 

-----Original Message-----
From: James A. Robinson [mailto:jim(_dot_)robinson(_at_)stanford(_dot_)edu] 
Sent: 20 February 2007 18:33
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] xsl:result-document and TrAX Transformer 
getOutputProperty


Folks,

I was wondering if folks know of a clean way to get at the 
output properties for an XSL Transformation which uses 
xsl:result-document and a named xsl:output?

We've got a stylesheet which normal uses an xsl:output method 
of xhtml, but which in some cases needs to use a method of 
xml.  In those cases we used xsl:result-document to route 
everything via a named xsl:output, but it looks to me like 
TrAX is unable to get at that information (since it is 
effectively a 'run-time' option which the Transformer does 
not know about).

We ended up building a tiny 'head' stylesheet which consists 
of an xsl:output declaration (which isn't actually used by 
the XSLT engine but is examined by the TrAX Transformer!) and 
then including our normal stylesheets. This seems like a very 
ugly solution.

One of the issues is that we'd rather not buffer the results 
of the transformation in order to examine it, we'd like to 
just stream the
results out.   It was looking to me like the only way to do this is to
set up extra configuration to look at instead of using the 
Transformer output properties.  I thought I should ask here 
in case I'm missing the obvious.

Jim

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
James A. Robinson                       
jim(_dot_)robinson(_at_)stanford(_dot_)edu
Stanford University HighWire Press      http://highwire.stanford.edu/
+1 650 7237294 (Work)                   +1 650 7259335 (Fax)

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>