You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@xalan.apache.org by "luca.raimondo@libero.it" <lu...@libero.it> on 2002/03/12 16:36:15 UTC

http://xml.apache.org/xalan/features/incremental

Hello!
I'm writing this class:
----------------------------------------------------------------------
import java.net.*;
import java.io.*;

import javax.xml.transform.*;
import javax.xml.transform.sax.*;
import javax.xml.transform.stream.*;
import javax.xml.transform.TransformerFactory.*;

import org.apache.xalan.xslt.*;
import org.apache.xalan.processor.TransformerFactoryImpl;
//import org.apache.xalan.xsltc.trax.SmartTransformerFactoryImpl;
//import org.apache.xml.dtm.ref.IncrementalSAXSource_Xerces;

public class saxProc
{
 private SAXTransformerFactory tFactory;
 private String xmlSource, xslSource;
 private PrintWriter out;
 
 public saxProc(String xmlSource, String xslSource, PrintWriter out)
 {
  tFactory = (SAXTransformerFactory)SAXTransformerFactory.newInstance();
//  tFactory.setAttribute
("http://xml.apache.org/xalan/features/incremental", 
java.lang.Boolean.TRUE);  
//  tFactory.getFeature(StreamSource.FEATURE);
  this.xmlSource = xmlSource;
  this.xslSource = xslSource;
  this.out = out;
 }
 
 public void proc()
 {
  try{
  StreamSource xsl = new StreamSource(new URL(xslSource).openStream
());//new FileReader(new File(xslSource)));
  StreamSource xml = new StreamSource(new URL(xmlSource).openStream
());//(Reader)xmlSource);
  Templates t = tFactory.newTemplates(xsl);  
  Transformer trans = t.newTransformer();
  StreamResult xout = new StreamResult(out);  
  trans.setOutputProperty("method", "xml");
  trans.setOutputProperty("omit-xml-declaration", "no");
  trans.setOutputProperty("encoding", "ISO-8859-1");
  trans.setOutputProperty("media-type", "text/html");
  trans.transform(xml, xout);
  }
  catch(Exception e){ System.err.println("__xsltProc => "+ e);
  /*e.printStackTrace();*/ }  
 }
 
 public static void main(String[] args)
 {
  String anno = "2001";
  if(args.length > 0)
   anno = args[0];  
  saxProc conv = new saxProc("http://armageddon:8080/persone/doQuery?
anno=" + anno 
+ "&contentType=html", "http://armageddon:8080/persone/supplementi_html.
xsl", new PrintWriter(System.out));
  conv.proc();
 }
}
----------------------------------------------------------------------
I have some problem with output, because it isn't incremental, but if I 
try to use 
tFactory.setAttribute
("http://xml.apache.org/xalan/features/incremental", 
java.lang.Boolean.TRUE); 
I have this exception
java.lang.ClassNotFoundException: 
org/apache/xml/dtm/ref/IncrementalSAXSource_Xerces
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:130)
        at org.apache.xml.dtm.ref.DTMManagerDefault.getDTM
(DTMManagerDefault.java:269)
        at org.apache.xalan.transformer.TransformerImpl.transform
(TransformerImpl.java:630)
        at org.apache.xalan.transformer.TransformerImpl.transform
(TransformerImpl.java:1088)
        at org.apache.xalan.transformer.TransformerImpl.transform
(TransformerImpl.java:1066)
        at saxProc.proc(saxProc.java:39)
        at saxProc.main(saxProc.java:51)

this is my classpath
CLASSPATH=.\;C:\j2sdk1.4.0-rc\jar\mm.mysql-2.0.4-bin.jar;C:\j2sdk1.4.0-
rc\jar\xalan.jar;C:\j2sdk1.4.0-rc\jar\xercesImpl.jar;C:\j2sdk1.4.0-
rc\jar\xml-apis.jar;C:\j2sdk1.4.0-rc\jar\xsltc.jar;C:\Apache Tomcat 4.0
\common\lib\servlet.jar;

Sorry if it is a stupit question!
Bye bye!