下载适用于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
。
可能是什么问题?
答案 0 :(得分:29)
在iReport Designer中,您可以在选项窗口中将兼容模式更改为您喜欢的版本。 对我来说,如果我将兼容性放到jasperreport 3.5.1上,当我再次保存报告时,uuid都会被删除。
此致
答案 1 :(得分:19)
我找到了答案:
我使用notepad ++打开了JRXML文件并执行了uuid="\w*-\w*-\w*-\w*-\w*"
的“搜索和替换”,并选择了带有空字符串的REGULAR EXPRESSION,然后删除了所有出现的错误标记。
为我工作。
答案 2 :(得分:2)
在notpad ++中打开报告,只删除uuid及其编号..在您编译正确并生成报告后....我有同样的问题,我以这种方式解决..
答案 3 :(得分:1)
我不使用Linux。但您使用iReport Designer-xx创建报告。您在项目中添加了相同版本的jasperreport(jasperreport-XX)jar。
答案 4 :(得分:1)
我刚建议我的同事也遇到了这个问题:
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)等等; - )
答案 5 :(得分:1)
如果您使用的是ireport 4.6或更高版本,使用uuid解决问题的最佳方法是使用类似的ireport 4.6或更高版本,因为uuid属性是从4.6版本新引入的。 否则如果从jrxml文件中手动删除uuid,则uuid将再次放在下一个编译的相应标签中...
答案 6 :(得分:1)
答案 7 :(得分:1)
严格来说,此修复程序仅适用于Jaspersoft Studio,但是,此问题是搜索attribute 'uuid' is not allowed
错误时的第一个结果。
对于Jasper Server版本<= 4.5.0和Jaspersoft Studio 6.11:
如果您正在使用Jaspersoft Studio发布到服务器,则第二步很重要。
答案 8 :(得分:0)
由于重复的类路径条目,更具体地说是旧版本的jasperreports-core-renderer.jar和jasperreports-extensions.jar(在选项 - &gt;类路径中)中的条目,因此在我的情况下发生了此问题。
在iReport升级期间导入设置后出现这些重复的条目。显然这是由于iReport中的一个错误,因为旧版本没有从类路径中删除。
因此,要么避免从先前版本导入设置,要么手动删除过时的.jars。
答案 9 :(得分:0)
我有一个很好的解决方案。
我支持使用Jasper Studio 5.5的Jasper Server 4.5报告
答案 10 :(得分:0)
就我而言,我刚刚删除了uuid="63f04b11-4b7e-4cf1-99b5-a5ec6db799d6"
我生成了一个示例报告以对其进行完美测试
所以您可以尝试删除uuid=" "