
Jasper Report用户手册(3) |
4.1 DTD Reference 当使用XML文件进行报表设计的时候,JasperReport将使用内置的DTD文件来验证其受到的XML内容的有效性。如果XML验证通过,则说明所提供的报表设计符合JasperReport所需要的XML结构和语法规则,其引擎能够生成经过编译的report design。 有效的XML文档总是在验证时指向JasperReport的内部DTD文件。如果没有提供DTD文档的引用,报表的编译过程将会突然结束。这对所有人来说都是一个负担,因为DTD引用通常是相同的,并且这些引用可能会简单的被从以前的报表设计中copy过来。在一开始,你需要将这个引用从给定的例子中copy过来。 正如以前说的一样,报表引擎仅能识别指向其内部DTD文件的的引用。你不能随便从类库的源文件中将那些DTD文件copy到别的地方,再在你的报表设计文件中文件中指向你copy的那些DTD文件。如果你想那样做的话,你将需要调整类库中某些类,包括net.sf.jasper.engine.xml.JRXmlDigester类的某些代码。如果你遇到像引擎无法找到其内部的DTD文件而导致的无法载入资源的问题,请确定你已经在使用外部DTD文件之前排除了所有可能发生的情况。遇到这样的问题是不太可能的,因为资源载入机制会随着时间不断改进。JasperReport只有两种合法的XML报表设计的DTD引用,他们是: <!DOCTYPE jasperReport PUBLIC “-//JasperReports//DTD Report Design//EN” “http://JasperReports.sourceforge.net/dtds/jasperreport.dtd”>或者 <!DOCTYPE jasperReport PUBLIC “-//JasperReports//DTD Report Design//EN” “http://www.jasperreports.com/dtds/jasperreport.dtd”> XML报表的root元素是<jasperReport>,下面是一个普通带JasperReport的样子: <?xml version=”1.0”> <!DOCTYPE jasperReport PUBLIC “-//JasperReports//DTD Report Design//EN” “http://JasperReports.sourceforge.net/dtds/jasperreport.dtd”> <jasperReports name=”name_of_the_report”…> … </jasperReports> 4.2 XML 编码 当要生成不同语言的XML报表设计的时候,在XMl文件的首部的编码属性需要特别关注一下。缺省情况下,如果这个属性的值没被订制,则XML解析器将会使用“UTF-8”作为XML文件的编码格式。这一点是非常重要的,因为报表设计通常包含了静态的本地化text。对于大多数西欧语言来说,ISO-8859-1编码,也就是我们常说的LATIN1将会很好的处理如法语中重音符号的显示问题。 <?xml version=”1.0” encoding=”ISO-8859-1”> 在编辑XML文件的时候,要找到某种特殊语言的编码类型,你可以查看XML document.FIXME 4.3 报表属性 我们上面已经看到,<jasperReport>斯XML报表设计的根元素。这一节我将介绍报表设计对象的Property的细节以及这些属性所对应的XML attributes(为避免混淆,我将不提供Property和Attribute的中文而直接使用英文)。 %20%20%20%20%20%20%20%20%20%20%20%20 |