16

下载了适用于 Linux 的 iReport-4.6.0,当通过 File->New... 菜单创建新报告时,新报告不会显示在预览中,而是显示错误消息cvc-complex-type.3.2.2 attribute 'uuid' is not allowed to appear in element 'jasperreport'

即使在选项中选择兼容性 4.5.0 也会出现相同的错误消息。打开由 iReport-4.6.0 (Windows) 的其他用户生成的报告文件时也会出现相同的错误消息。

报告文件的架构为http://jasperreports.sourceforge.net/xsd/jasperreport.xsd,但此架构文件未提及任何uuid.

可能是什么问题呢?

4

11 回答 11

32

在 iReport Designer 中,您可以在选项窗口中将兼容模式更改为您喜欢的版本。对我来说,如果我将兼容性设置为 jasperreport 3.5.1,当我再次保存报告时,uuid 都会被删除。

问候

于 2012-12-04T13:55:39.320 回答
24

我找到了答案:

我用 notepad++ 打开了 JRXML 文件,做了一个“搜索和替换” uuid="\w*-\w*-\w*-\w*-\w*",并选择了正则表达式,使用空字符串,然后所有出现的这个错误标签都被删除了。

为我工作。

于 2012-07-13T18:51:58.123 回答
3

Open report in the notpad++ and just only remove uuid and it's number.. After You will compile proper and generate report.... I have same problem and I solveby this way..

于 2013-05-27T14:55:57.413 回答
2

我不使用 Linux。但是您使用 iReport Designer-xx 创建报表。您在项目中添加相同版本的 jasperreport(jasperreport-XX) jar。

于 2013-02-01T10:05:03.860 回答
2

我只是建议我的同事也遇到了这个问题:

sed -i 's/ uuid="[^"]*"//g' $(find * -name \*.jrxml)

我通常不使用sed(1)-i但她在 GNU/Linux 上,所以这不是问题。解决这个问题的更专业的 Unix 方法是:

find * -name \*.jrxml -print0 | while IFS= read -d '' -r file; do
    ed -s "$file" <<-'EOF'
        1,$g/ uuid="[^"]*"/s///g
        w
        q
    EOF
done

(这四个空格是制表符,否则不起作用,你需要mksh(1)或另一个可以读取 NUL 分隔输入的 shell。)

你也可以使用 Perl:

find * -name \*.jrxml -print0 | xargs -0 perl -pi -e 's/ uuid="[^"]*"//g'

或者类似的东西,无论如何,取决于你的需要,你的xargs(1)等等;-)

于 2013-10-25T11:59:09.127 回答
2

如果您使用的是 ireport 4.6 或更高版本,解决 uuid 问题的最佳方法是使用类似的 ireport 4.6 或更高版本,因为 uuid 属性是从 4.​​6 版新引入的。否则如果你手动从jrxml文件中删除uuid,下次编译时uuid会再次被放到对应的标签中...

于 2014-02-26T12:17:12.513 回答
1

我有一个很好的简单解决方案。

我正在使用 Jasper Studio 5.5 支持有关 Jasper Server 4.5 的报告

  1. 在 Jasper Studio 中,删除服务器引用(如果有)。
  2. 重新创建连接。创建服务器连接时,转到“高级设置 > Jasper 服务器库版本”并从列表中选择您的服务器版本。
  3. 打开您的报告,检查 uuid 标签是否已删除,部署
于 2014-02-28T19:06:22.587 回答
1

这个问题发生在我的案例中,因为重复的类路径条目,更具体地说,来自旧版本的 jasperreports-core-renderer.jar 和 jasperreports-extensions.jar 的条目(在选项 -> 类路径中)。

这些重复的条目是在 iReport 升级期间导入设置后出现的。显然这是由于 iReport 中的一个错误导致旧版本没有从类路径中删除。

因此,要么避免从以前的版本导入设置,要么手动删除过时的 .jar。

于 2013-02-05T11:38:28.013 回答
1

严格来说,此修复仅适用于 Jaspersoft Studio,但此问题是搜索attribute 'uuid' is not allowed错误时的第一个结果。

对于 Jasper 服务器版本 <= 4.5.0 和 Jaspersoft Studio 6.11:

  1. 在 Project Explorer 中右键单击 jrxml 文件 -> Properties -> Jaspersoft Studio -> Compatibility -> Source .jrxml Version -> JasperReports 4.5.0
  2. 在 Repository Explorer 中右键单击服务器 -> 编辑 JasperReports 服务器连接 -> 高级设置 -> JasperReports 库版本 -> JasperReports 4.5.0

如果您使用 Jaspersoft Studio 发布到服务器,则第二步很重要。

于 2020-09-29T16:34:30.057 回答
1

您始终可以将 Compability 设置为旧版本,它对我有用。

工具 > 选项 > iReport > 常规 > 兼容性

在此处输入图像描述

在此之后转到 xaml 并更改任何内容并再次保存然后运行报告以删除所有 uuid 。

于 2020-05-08T18:21:48.107 回答
1

就我而言,我刚刚删除uuid="63f04b11-4b7e-4cf1-99b5-a5ec6db799d6" 了我生成的示例报告以测试它是否完美运行

所以你可以尝试删除uuid=" "

于 2019-07-15T08:12:54.093 回答