jasper-reports - 在 iReport 5.6 打开 JRXML : "Attribute ' hTextAlign' is not allowed to appear in element 'style' "时出错

标签 jasper-reports ireport

有没有人在 iReport 5.6 中尝试打开 jrxml 文件时遇到过这个错误?

Attribute 'hTextAlign' is not allowed to appear in element 'style'

最佳答案

问题的原因
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 版本选项的兼容性(兼容性警告对话框)。
如何解决这个问题:
  • 您可以使用 Jaspersoft Studio (JSS) 来修改报告的模板。也许它是最好的选择,因为 iReport 是 已弃用 (自 2015 年底起不再支持)并且仅支持 5.6 和最旧版本的 JasperReports 模板/功能。
  • 您可以在 JSS 将兼容模式下的模板保存为 5.x 版本,然后继续使用 iReport 编辑 jrxml 文件

  • 在 JSS 中保存模板时会出现该对话框,如下所示:
    Dialog at JSS
    要启用此对话框,您应该在通过 Window -> Preferences 菜单调用的表单中更改设置。
    Preferences at JSS
  • 始终仅使用 iReport 设计器。但请注意:它不支持 6+ 版本的 JasperReports 模板。

  • 如何检查 5.x 和 6.x 版本的架构差异
    任何版本的 JasperReports 的 xsd 模式都可以在 JasperReports 包和源代码或源代码存储库中找到。
    这是比较 5.6.1(左面板)和 6.3.0(右面板)版本的 xsd 文件的片段(屏幕截图)。
    Diff of two xsd
    如您所见,hTextAlign您的错误消息中的属性仅在 6.x 版本的 xsd 中出现。这是你得到的错误的原因

    关于jasper-reports - 在 iReport 5.6 打开 JRXML : "Attribute ' hTextAlign' is not allowed to appear in element 'style' "时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43072862/

    相关文章:

    header - 如何在打印预览中设置Excel标题字体和样式?

    jasper-reports - JasperReports (iReport) 图表定义 X 轴刻度计数

    运行 ireport 5.1 时未找到 java.exe

    jasper-reports - 如何向折线图添加值图例?

    JDBC vs psql 间隔渲染差异

    java - 为什么我收到 "Value [null] cannot be converted to a JRDataSource"异常

    java - 下载文件而不将文件存储在服务器上?如何在不将文件存储在服务器上的情况下向客户端提供文件下载功能?

    java - Jasper 报告 pdf 名称问题

    java - Java 中 iReport 5.5.1 的异常

    jasper-reports - 如何配置iReport 3.5以实现JasperReports与较低版本的兼容性?