xsl-list
[Top] [All Lists]

Translet Stability Issue

2003-01-07 11:06:22
I am having some stability problems with translets. On approxamitly 50%
of the translations I receive an error that I know is bogus.  The other 50%
of the time it works fine.  Any suggestions or fixes?

I am using the Xalan 2.4.1

I have precompiled my XSLs into class files using the following:
-----------------------------------------------------------------------
java org.apache.xalan.xsltc.cmdline.Compile -d translets -p
com.websterbank.translets <xslfile>

The latest error is
-----------------------------------------------------------------------
         The element type "br" must be terminated by the matching end-tag
"</br>".
         at 18, 71

I execute the translets with the following code:
-----------------------------------------------------------------------
public class PageBuilder { 

        TransformerFactory tFactory;
        boolean                    useTranslet ;
        
        public PageBuilder() {
                super();
                
System.setProperty("javax.xml.transform.TransformerFactory","org.apache.xalan.xsltc.trax.TransformerFactoryImpl");
                Log.write ( "PageBuilder.constructor: Factory" ) ;
                tFactory = TransformerFactory.newInstance();
                cache = new Hashtable();
                useTranslet = true ;
        }
        
        public void handle (PrintWriter out, String stylesheet, Document
doc) {
                Log.write ( "PageBuilder.handle: XML DOM Data" ) ;
                DOMWriter wr = new DOMWriter () ;
                wr.write ( doc, new PrintWriter( Log.getLogStream()));

                if ( useTranslet ) 
                        handle_translet ( out, stylesheet, doc ) ;
                else
                        handle_translet ( out, stylesheet, doc ) ;
        }

        public void handle_translet (PrintWriter out, String stylesheet,
Document doc) {
                Log.write ( "PageBuilder.handle - translets" ) ;
                Log.write ( "PageBuilder.handle - translets: " + stylesheet  )
;

                String transName = stylesheet.substring(
stylesheet.lastIndexOf("/")+1,stylesheet.lastIndexOf(".")) ;
            transName = "com.translets." + transName ;
                
                Translet translet = null ;
                
                try {
                        Class transClass = Class.forName( transName ) ;
                        translet         = (Translet)transClass.newInstance() ;
                } catch ( Exception e ) {
                        Log.write ( "PageBuilder.handle - translets: Class
Lookup Failure - " + transName ) ;
                }
                
                if ( translet == null ) {
                        handle_basic ( out, stylesheet, doc ) ;
                } else {
                        Log.write ( "PageBuilder.handle - translets: Class - "
+ transName ) ;
                        
                        try {
                                // Get the XML input document and the
stylesheet.
                                Log.write ( "PageBuilder.handle - translets:
Constructors" ) ;
                                DOMImpl dom              = new DOMImpl () ;
                                SAXParserFactory factory =
SAXParserFactory.newInstance();
                                SAXParser parser         =
factory.newSAXParser();
                                XMLReader reader         =
parser.getXMLReader();
                                DTDMonitor _dtdMonitor   = new
DTDMonitor();
                                StringWriter writer      = new StringWriter () ;
                                PrintWriter prWriter     = new PrintWriter (
writer ) ;
                                DOMWriter domWriter      = new DOMWriter
() ;
                                
                                Log.write ( "PageBuilder.handle - translets:
Document Translation" ) ;
                                domWriter.write( doc, prWriter ) ;
                                String stringDOM = writer.toString() ;
                                StringReader strReader = new StringReader
( stringDOM ) ;
                                reader.setContentHandler( dom.getBuilder()
);
                                reader.parse( new InputSource (strReader)
);
                                DefaultSAXOutputHandler saxHandler =
new DefaultSAXOutputHandler(out);
                                TextOutput textOut = new
TextOutput(saxHandler) ;
                                
                                textOut.setType ( TextOutput.HTML ) ;
                                textOut.setIndent( false ) ;
                                
                                Log.write ( "PageBuilder.handle - translets:
Transforming" ) ;
                                translet.transform( dom, textOut );
                                Log.write ( "PageBuilder.handle - translets:
Done Transforming" ) ;
                                
                        } catch ( SAXParseException se ) {
                                Log.write ( "PageBuilder.handle - translets:
Transform Error" ) ;
                                Log.write ( "        " +  se.getMessage() ) ;
                                Log.write ( "        at " +  se.getLineNumber()
+ ", " + se.getColumnNumber() ) ;
                        } catch ( Exception e ) {
                                Log.write ( "PageBuilder.handle - translets:
Transform Error" ) ;
                                Log.write ( "        " +  e.toString() ) ;
                        }
                }
        }

        public void handle_basic (PrintWriter out, String stylesheet,
Document doc) {
                  basic XSL translation.....
        }

}


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>
  • Translet Stability Issue, Jeff Harman <=