打开JRXML时iReport 5.6出错:"属性' hTextAlign'不允许出现在元素''"

时间:2017-03-28 14:51:54

标签: jasper-reports ireport

尝试打开 jrxml 文件时,有没有人在 iReport 5.6 中收到此错误?

  

属性&#39; hTextAlign&#39;不允许出现在元素&#39; <&#39;

2 个答案:

答案 0 :(得分:0)

问题的原因

jrxml 文件只是一个 xml 文件。在XSD schema的帮助下验证 xml 文件是一种常见做法。

JasperReports 引擎也是这样做的 - 它使用 xsd 架构来验证报告的模板( jrxml 文件)。

5.x 版本相比, 6.x 版本更改了 xsd

最新版本的 JasperReports 的架构随url一起提供。您始终可以在 jrxml 文件的标题处找到架构的链接:

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport ... xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" ...>

您的模板( jrxml 文件)看起来是使用 6.x 版本的 JasperReports Studio 创建或编辑的,并且在不应用兼容性的情况下保存 5.x版本选项(兼容性警告对话框)。

如何解决此问题:

  1. 您可以使用 Jaspersoft Studio JSS )修改报告的模板。也许这是最佳选择,因为 iReport 已弃用(自2015年底以来不受支持)并且仅支持 5.6及最旧版本 JasperReports 模板/功能。

  2. 您可以将模板作为 5.x 版本在 JSS 保存在兼容模式下,然后继续编辑 jrxml 文件使用 iReport

  3. JSS 保存模板期间出现对话框,如下所示:

    Dialog at JSS

    要启用此对话框,您应更改通过 Window - &gt;调用的表单中的设置。首选项菜单。

    Preferences at JSS

    1. 始终只使用 iReport 设计器。但请注意:它不支持 6 + 版本的 JasperReports 模板。
    2. 如何检查 5.x 6.x 版本

      模式的差异

      任何版本的 JasperReports xsd 架构都可以在 JasperReports包中找到,其中包含源代码或源代码存储库。

      这是比较 5.6.1 (左侧面板)和 6.3.0 xsd 文件的片段(屏幕截图)(右侧面板) )版本。

      Diff of two xsd

      正如您所看到的,错误消息中的hTextAlign属性仅出现在 6.x 版本的 xsd 中。这是导致错误的原因

答案 1 :(得分:0)

删除textField标记中的所有属性 textAdjust =“ StretchHeight” 。我删除了该属性,它对我Screen来说很好用。