为什么jasperreports编译器不使用XSD中设置的默认语言?

时间:2018-12-13 14:04:50

标签: java xsd jasper-reports jaspersoft-studio

我的任务是将组织从iReport 1.2.0迁移到具有Jasperreport 5.6.1的Jaspersoft Studio 6.6.0。考虑到年龄差异,这是一个非常简单的过渡。

我在Jaspersoft Studio中创建了报告,并且能够进行预览,并且一切看起来都正确。当我尝试在Intellij中编译项目时,问题就开始了。编译器到达我创建的报表后,出现错误“此报表编译器不支持的语言” null”。应改为“ java”。我发现需要在jasperreport标记中设置language属性才能进行编译。这是一种不便,但至少可以奏效。我进一步研究了这个问题,发现jasperreport.xsd文件实际上将Java设置为默认文件,并且在jrxml中设置语言时,intellij实际上声明它是多余的。

因此,我当前要解决的问题是为什么编译器没有建立从jrxml到xsd的连接,而是Intellij代码分析器建立了连接。

jasperReport标记的格式如下:

    <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports 
    http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" 
    name="OrdTCMReport"... (report dimensions and UUID)>

有人知道为什么编译器会得到null而不是默认的java吗?据我所知,jrxml正确引用了xsd。我发现的另一种解决方案是,如果我使用的是旧报表所使用的dtd文件,但据我所读,该dtd格式较旧,前进的方向是xsd。

在此问题上的任何帮助将不胜感激!如果需要进一步说明,我很乐意提供。

总而言之,我当前的解决方法包括(不推荐): 手动将语言属性放入jasperReport标记 在doctype标签中引用dtd文件

0 个答案:

没有答案
相关问题