Подтвердить что ты не робот

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.

В чем может быть проблема?

4b9b3361

Ответ 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=" "