在 iReport 5.6 打开 JRXML 时出错:"Attribute 'hTextAlign' is not allowed to appear in element 'style'"
Got error at iReport 5.6 on opening JRXML: "Attribute 'hTextAlign' is not allowed to appear in element 'style'"
有没有人在尝试打开 jrxml 文件时在 iReport 5.6 中遇到过这个错误?
Attribute 'hTextAlign' is not allowed to appear in element 'style'
问题原因
jrxml 文件只是一个 xml 文件。在 XSD schema.
的帮助下验证 xml 文件是一种常见的做法
JasperReports 引擎正在做同样的事情 - 它使用 xsd 模式来验证报告的模板(jrxml 文件).
与 [=149 相比,xsd 在 6.x 版本中发生了变化=]版本。
最新版本的 JasperReports 的架构可用于 url。您总是可以在 jrxml 文件的 header 找到 link 架构:
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport ... xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" ...>
看起来您的模板(jrxml 文件)是使用 JasperReports Studio 创建或编辑的 6.x 版本并在不应用与 5.x 版本 选项的兼容性的情况下保存(兼容性警告对话框) .
如何解决这个问题:
您可以使用 Jaspersoft Studio (JSS) 来修改报告模板。也许它是最好的选择,因为 iReport 已被 弃用 (自 2015 年底起不再支持)并且仅支持 5.6 和 JasperReports 的最旧版本 templates/features.
您可以在兼容模式下将模板保存为 5.x 版本 JSS 之后继续使用 iReport
编辑 jrxml 文件
在 JSS 保存模板时出现对话框,如下所示:
要启用此对话框,您应该在通过 Window -> 首选项 菜单调用的表单中更改设置。
- 始终只使用 iReport 设计器。但请注意:它不支持 6+ 版本的 JasperReports 模板。
如何检查 5.x 和 6.x 版本
的架构差异
任何版本的 JasperReports 的 xsd 模式可以在 JasperReports 包中找到源代码code 或在源代码库中。
这是比较 xsd 文件 5.6.1(左面板)和 6.3.0(右面板)版本。
如您所见,错误消息中的 hTextAlign
属性仅出现在 xsd of 6.x 版本。这是您收到错误的原因
删除 textField 标签中的所有属性 textAdjust="StretchHeight"。我已经删除了该属性,它对我来说很好 Screen。
有没有人在尝试打开 jrxml 文件时在 iReport 5.6 中遇到过这个错误?
Attribute 'hTextAlign' is not allowed to appear in element 'style'
问题原因
jrxml 文件只是一个 xml 文件。在 XSD schema.
的帮助下验证 xml 文件是一种常见的做法JasperReports 引擎正在做同样的事情 - 它使用 xsd 模式来验证报告的模板(jrxml 文件).
与 [=149 相比,xsd 在 6.x 版本中发生了变化=]版本。
最新版本的 JasperReports 的架构可用于 url。您总是可以在 jrxml 文件的 header 找到 link 架构:
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport ... xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" ...>
看起来您的模板(jrxml 文件)是使用 JasperReports Studio 创建或编辑的 6.x 版本并在不应用与 5.x 版本 选项的兼容性的情况下保存(兼容性警告对话框) .
如何解决这个问题:
您可以使用 Jaspersoft Studio (JSS) 来修改报告模板。也许它是最好的选择,因为 iReport 已被 弃用 (自 2015 年底起不再支持)并且仅支持 5.6 和 JasperReports 的最旧版本 templates/features.
您可以在兼容模式下将模板保存为 5.x 版本 JSS 之后继续使用 iReport
编辑 jrxml 文件
在 JSS 保存模板时出现对话框,如下所示:
要启用此对话框,您应该在通过 Window -> 首选项 菜单调用的表单中更改设置。
- 始终只使用 iReport 设计器。但请注意:它不支持 6+ 版本的 JasperReports 模板。
如何检查 5.x 和 6.x 版本
的架构差异任何版本的 JasperReports 的 xsd 模式可以在 JasperReports 包中找到源代码code 或在源代码库中。
这是比较 xsd 文件 5.6.1(左面板)和 6.3.0(右面板)版本。
如您所见,错误消息中的 hTextAlign
属性仅出现在 xsd of 6.x 版本。这是您收到错误的原因
删除 textField 标签中的所有属性 textAdjust="StretchHeight"。我已经删除了该属性,它对我来说很好 Screen。