2002 JI Open Discussion Posted August 19, 2006 Share Posted August 19, 2006 By: Tuan Le - lesoft Parse error 2003-10-08 10:55 I'm new to JasperReports. I borrowed a BasicReport.xml template from a JavaWorld article below. When it compiles, it throws a parse error. Have you seen this error before? What am I missing? Thanks in advance for your help! Tuan ---- BasicReport.xml ---- <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE jasperReport PUBLIC "-//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd"> <jasperReport name="BasicReport" > <parameter name="ReportTitle" class="java.lang.String"/> <queryString><![CDATA[select employee_id, last_name from employee]]></queryString> <field name="EMPLOYEE_ID" class="java.lang.String"/> <field name="LAST_NAME" class="java.lang.String"/> <title> <band height="50"> <textField> <reportElement x="0" y="0" width="200" height="50" /> <textFieldExpression class="java.lang.String">$P{ReportTitle}</textFieldExpression> </textField> </band> </title> <pageHeader> <band> </band> </pageHeader> <columnHeader> <band height="20"> <staticText> <reportElement x="180" y="0" width="180" height="20"/> <textElement> <font isUnderline="true"/> </textElement> <text><![CDATA[EMPLOYEE_ID]]></text> </staticText> <staticText> <reportElement x="360" y="0" width="180" height="20"/> <textElement> <font isUnderline="true"/> </textElement> <text><![CDATA[LAST_NAME]]></text> </staticText> </band> </columnHeader> <detail> <band height="20"> <textField> <reportElement x="180" y="0" width="180" height="20"/> <textFieldExpression class="java.lang.String"><![CDATA[$F{EMPLOYEE_ID}]]></textFieldExpression> </textField> <textField pattern="0.00"> <reportElement x="360" y="0" width="180" height="20"/> <textFieldExpression class="java.lang.Double"><![CDATA[$F{LAST_NAME}]]></textFieldExpression> </textField> </band> </detail> <columnFooter> <band> </band> </columnFooter> <pageFooter> <band height="15"> <staticText> <reportElement x="0" y="0" width="40" height="15"/> <textElement/> <text><![CDATA[Page:]]></text> </staticText> <textField> <reportElement x="40" y="0" width="100" height="15"/> <textElement/> <textFieldExpression class="java.lang.Integer"><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression> </textField> </band> </pageFooter> <summary> <band> </band> </summary> </jasperReport> ---- my servlet code that read, compile XML file --- try { ServletContext context = this.getServlet().getServletContext(); System.setProperty("jasper.reports.compile.class.path", context.getRealPath("/WEB-INF/lib/jasperreports-0.5.0.jar")); System.getProperty("path.separator", context.getRealPath("/WEB-INF/classes/")); System.setProperty("jasper.reports.compile.temp", context.getRealPath("/WEB-INF/reports/")); JasperReport jReport = JasperCompileManager.compileReport(context.getRealPath("/WEB-INF/reports/BasicReport.xml")); // Second, create a map of parameters to pass to the report Map parameters = new HashMap(); parameters.put("ReportTitle", "Focal Review Manager Summary Report"); // Third, get a database connection DAOFactory factory = DAOFactory.getDAOFactory(DAOFactory.SQLSERVER); IReportingDAO reportingDAO = factory.getReportingDAO(); Connection conn = reportingDAO.getDBConnection(); // Fourth, create JasperPrint using fillReport() method JasperPrint jPrint = JasperFillManager.fillReport(jReport, parameters, conn); // use JasperPrint to create PDF JasperExportManager.exportReportToPdfFile(jPrint, "BasicReport.pdf"); } catch (JRException jre) { System.err.println(jre.getMessage()); } catch (Exception e) { System.err.println(e.getMessage()); } --- Error output ----- SEVERE: Parse Fatal Error at line 2 column 6: The processing instruction target matching "[xX][mM][lL]" is not allowed. org.xml.sax.SAXParseException: The processing instruction target matching "[xX][mM][lL]" is not allowed. at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:232) at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:213) at org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:375) at org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:305) at org.apache.xerces.impl.XMLScanner.reportFatalError(XMLScanner.java:1269) at org.apache.xerces.impl.XMLScanner.scanPIData(XMLScanner.java:623) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanPIData(XMLDocumentFragmentScannerImpl.java:644) at org.apache.xerces.impl.XMLScanner.scanPI(XMLScanner.java:598) at org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(XMLDocumentScannerImpl.java:702) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:329) at org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:525) at org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:581) at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:152) at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1175) at org.apache.commons.digester.Digester.parse(Digester.java:1514) at dori.jasper.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:373) at dori.jasper.engine.xml.JRXmlLoader.load(JRXmlLoader.java:357) at dori.jasper.engine.xml.JRXmlLoader.load(JRXmlLoader.java:337) at dori.jasper.engine.xml.JRXmlLoader.load(JRXmlLoader.java:323) at dori.jasper.engine.JasperCompileManager.compileReport(JasperCompileManager.java:146) at com.phs.ezhr.focal.presentation.action.ReportingAction.perform(ReportingAction.java:139) at org.apache.struts.action.Action.execute(Action.java:401) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:446) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:266) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1292) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:492) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:261) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:360) at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:632) at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:590) at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:707) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:530) at java.lang.Thread.run(Thread.java:536) The processing instruction target matching "[xX][mM][lL]" is not allowed. By: Tuan Le - lesoft RE: Parse error 2003-10-08 11:02 One correction to the BasicReport.xml template Replaced <textFieldExpression class="java.lang.Double"><![CDATA[$F{LAST_NAME}]]></textFieldExpression> with <textFieldExpression class="java.lang.String"><![CDATA[$F{LAST_NAME}]]></textFieldExpression> Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now