|
Subject: Re: Dom and XT From: Paul Tchistopolskii <paul@xxxxxxx> Date: Wed, 29 Dec 1999 02:45:25 -0800 |
> I have a DOM document and a style sheet URI. How to generate a HTML output
> applying my style and using DOM with XT (without transforming DOM by
> serializing it into InputSource)?
To Transform 'native' DOM you need XSLTransformEngine.
To generate HTML you need OutputMethodHandlerImpl.
Latest version of XT does not allow easy way to do this.
( I think ).
To transform DOM into HTML with XT you need the trick
described below ( I think ).
I think that in the next versions of XT the hack
described below will be not needed.
Rgds.Paul.
----- Original Message -----
From: Paul Tchistopolskii <paul@xxxxxxx>
To: <xsl-list@xxxxxxxxxxxxxxxx>
Sent: Tuesday, December 28, 1999 3:29 PM
Subject: Re: Using XT via a Java Servlet?
>
> Writing my answer to the XSL-list scares me a bit, but
> I hope I will not say something extremely stupid from
> James Clark's point of view ;-)
>
> If there are some serious mistakes in the text below
> ( I'm taking about XT interlans as I see them ;-) , I hope
> James would correct me.
>
> > Has anyone taken the DOMDemo.java example included in the demo directory of
> > XT and made it work as a Java servlet? If so, mind sharing your code? I'm
> > able to use LotusXSL in this manner, but haven't had any luck yet with
> > XT. TIA,
>
> The DOMDemo utilizes XSLTransformEngine.
>
> I think it could be fair to say that at the moment there is kind
> of *two* transform engines in the latest version of XT.jar.
>
> The 'basic' and 'well-known' engine ( XSLProcessorImpl )
> takes some 'input', builds the 'XT-specific' DOM and then allows
> you to transform that 'XT-specific' DOM into diferent 'output media'.
>
> You are specifying the desired 'output media' attaching
> the desired destination to OutputMethodHandlerImpl and
> then attaching the OutputMethodHandlerImpl to
> XSLProcessorImpl .
>
> OutputMethodHandlerImpl outputMethodHandler =
> new OutputMethodHandlerImpl(xsl);
>
> xsl.setOutputMethodHandler(outputMethodHandler);
>
> outputMethodHandler.setDestination
> ( new ServletDestination(response) );
>
> This pattern *does*not* work with XSLTransformEngine.
> I mean that XSLTransformEngine assumes that one is
> utilizing this class for XML-DOM -> XML-DOM only transformations.
>
> However, with semi-trivial subclassing *and* some cut&paste
> I forced XSLTransformEngine to take into account OutputMethodHandlerImpl
>
> main[]
>
> MySunXMLProcessorImpl reader = new MySunXMLProcessorImpl();
>
> org.w3c.dom.Node Sheet = reader.load
> ( new InputSource( new URL("file", "", args[1]).toString() ) );
>
> org.w3c.dom.Node Content = reader.load
> ( new InputSource( new URL("file", "", args[0]).toString() ) );
>
> com.sun.xml.tree.XmlDocument doc = new com.sun.xml.tree.XmlDocument ();
>
> OutputMethodHandlerImpl outputMethodHandler = new OutputMethodHandlerImpl( null );
>
> // This is important. For a servlet one should use:
> // outputMethodHandler.setDestination ( new ServletDestination(response) );
>
> outputMethodHandler.setDestination ( new
FileDescriptorDestination(FileDescriptor.out) );
>
> reader.createTransform(Sheet).My_transform( Content, outputMethodHandler );
>
> Rgds.Paul.
>
> PS. If you realy need that hack very-very-much I may send it to you, but I suggest
> to wait until (if) James will come with the 'common' design of XSLTransformEngine
> and XSLProcessorImpl .
>
>
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Dom and XT, WYSOCKI Adalbert | Thread | Convert newlines to <BR/>, Jon Smirl |
| RE: Convert newlines to <BR/>, Mike Brown | Date | less than / greater than in cocoon, Tony Fabian |
| Month |