How about if you provide a trax wrapper to your non-trax processor? The system property can be set to ythe wrapper...
GOF Adapter pattern... --- Richard Cook <[EMAIL PROTECTED]> wrote: > Hello, > > According to the xalan docs, TrAX is independent of > XSLT - ie not tied to > only performing transformations using xslt. We have > a processor which is > indeed not XSLT, but we also need to support XSLT. > With TrAX, the user calls > TransformerFactory.newInstance(), which uses a > system property > javax.xml.transform.TransformerFactory to determine > which concrete class to > instantiate. > > The problem is that subsequently from this piece of > code: > > Transformer transformer = > factory.newTransformer(Source) > > We want: > If the Source is an XSLT stylesheet, to use an > XSLT processor (xalan etc) > If the Source specifies instructions our processor > handles, we want to use > our processor. > > We have an implementation of Source which specifies > the location of our > instructions, so distinguishing from StreamSource > etc is no problem at this > level. > > But the single system property which determines > which TransformerFactory > implementation means that if we use our > implementation, we don't know which > XSLT processor the user wants. > > Does that make sense? > > Options we have: > Use TransformerFactory.newInstance() for XSLT, use > normal constructor for > our processor > TransformerFactory.newInstance() returns our > implementation, we define our > own system property for the XSLT implementation. > This would mean that people > using the default processor rather than the system > property would presumably > find their code stops working. > > > > (Apologies that this is not xalan specific, is there > a better place to ask > the question?). > > Thanks, Rich > __________________________________________________ Do You Yahoo!? Send your FREE holiday greetings online! http://greetings.yahoo.com
