Cvc-complex-type.3.2.2 атрибуту 'uuid' не разрешено появляться в элементе 'jasperreport'
Загруженный iReport-4.6.0 для Linux и при создании нового отчета через меню 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
.
В чем может быть проблема?
Ответы
Ответ 1
Я нашел ответ:
Я открыл файл JRXML с помощью блокнота ++ и выполнил "Поиск и замена" uuid="\w*-\w*-\w*-\w*-\w*"
и выбрал REGULAR EXPRESSION с пустой строкой, после чего все вхождения этого неправильного тега были удалены.
Работал для меня.
Ответ 2
В iReport Designer в окне параметров вы можете изменить режим совместимости с той версией, которую вы предпочитаете.
Для меня, если я установил совместимость с jasperreport 3.5.1, когда я снова сохраню отчет, удалите все uuid.
Привет
Ответ 3
Откройте отчет в notpad ++ и просто удалите uuid и его номер.. После того, как вы скомпилируете собственно и сгенерируете отчет.... У меня такая же проблема, и я решаю так.
Ответ 4
Я не использую Linux. Но вы создаете отчет, используя iReport Designer-xx. Вы добавляете в свой проект ту же самую версию jasperreport (jasperreport-XX).
Ответ 5
Я только что предложил своему коллеге, который также столкнулся с проблемой:
sed -i 's/ uuid="[^"]*"//g' $(find * -name \*.jrxml)
Я обычно не использую sed (1) -i
, но shes на 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-разделенные вход.)
Вы также можете использовать Perl:
find * -name \*.jrxml -print0 | xargs -0 perl -pi -e 's/ uuid="[^"]*"//g'
Или что-то в этом роде, в зависимости от ваших потребностей, xargs (1) и т.д. -)
Ответ 6
Если вы используете ireport 4.6 или выше, лучший способ решить проблему с uuid - использовать аналогичный iireport 4.6 или выше, так как атрибут uuid недавно представлен с версии 4.6.
в противном случае Если вы удалите uuid вручную из файла jrxml, uuid снова будет помещен в соответствующие теги в следующей компиляции...
Ответ 7
Эта проблема произошла в моем случае из-за дублированных записей пути к курсу, а более конкретно записей из более старых версий jasperreports-core-renderer.jar и jasperreports-extensions.jar(в Options → Classpath).
Эти дублированные записи появились после импорта настроек во время обновления iReport. По-видимому, это связано с ошибкой в iReport, из-за которой старые версии не удаляются из пути к классам.
Таким образом, либо избегайте импорта настроек из предыдущих версий, либо вручную удалите устаревшие .jars.
Ответ 8
У меня хорошее решение.
Я поддерживаю отчеты на Jasper Server 4.5 с помощью Jasper Studio 5.5
- В Jasper Studio удалите ссылку сервера, если она есть.
- Восстановите соединение. При создании подключения к серверу перейдите в "Дополнительные параметры > Версия библиотеки сервера Jasper" и выберите версию сервера из списка.
- Откройте отчет, проверьте, что теги uuid были удалены, Deploy
Ответ 9
В моем случае я просто удалил uuid="63f04b11-4b7e-4cf1-99b5-a5ec6db799d6"
Я создал образец отчета для тестирования, он работал отлично
Так что вы можете попробовать, удалив uuid=" "