web-dev-qa-db-ja.com

cvc-complex-type.3.2.2属性「uuid」は要素「jasperreport」に表示することはできません

Linux用iReport-4.6.0をダウンロードし、[ファイル]-> [新規...]メニューから新しいレポートを作成すると、新しいレポートはプレビューに表示されませんが、エラーメッセージ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は含まれていません。

何が問題でしょうか?

14
Markus Pscheidt

私は答えを見つけました:

メモ帳++でJRXMLファイルを開き、uuid="\w*-\w*-\w*-\w*-\w*"の「検索と置換」を行い、空の文字列でREGULAR EXPRESSIONを選択すると、この間違ったタグのすべての出現が削除されました。

私のために働いた。

21
Inca

IReport Designerのオプションウィンドウで、互換モードを希望のバージョンに変更できます。 jasperreport 3.5.1との互換性を設定すると、レポートを再度保存すると、uuidがすべて削除されます。

よろしく

30
Marthym

Notpad ++でレポートを開き、uuidとその番号を削除するだけです。適切にコンパイルしてレポートを生成した後...同じ問題が発生し、この方法で解決します。

3
Vishal Shah

Ireport 4.6以降を使用している場合、uuidの問題を解決する最善の方法は、同様のireport 4.6以降を使用することです。uuid属性はバージョン4.6から新たに導入されているためです。それ以外の場合、jrxmlファイルからuuidを手動で削除すると、uuidは次のコンパイル時に対応するタグに再び配置されます...

2
soft

Linuxは使用していませんが、レポートはiReport Designer-xxを使用して作成します。同じバージョンのjasperreport(jasperreport-XX)jarをプロジェクトに追加します。

2
Sms Kopex

私はこれも問題に遭遇した私の同僚にこれを提案しました:

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

(これら4つのスペースはタブです。それ以外の場合は機能せず、 mksh(1) またはNUL区切りの入力を読み取ることができる別のシェルが必要です。)

Perlを使用することもできます。

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

または、とにかく、あなたのニーズに応じて、あなたの xargs(1) などです;-)

2
mirabilos

私の場合、私はuuid="63f04b11-4b7e-4cf1-99b5-a5ec6db799d6"完全に機能することをテストするためのサンプルレポートを生成しました

だからあなたはuuid=" "

1
Akitha_MJ

簡単な解決策があります。

Jasper Studio 5.5を備えたJasper Server 4.5のレポートをサポートしています

  1. Jasper Studioで、サーバー参照がある場合は削除します。
  2. 接続を再作成します。サーバー接続を作成するとき、「詳細設定> Jasperサーバーライブラリバージョン」に移動し、リストからサーバーバージョンを選択します。
  3. レポートを開き、uuidタグが削除されていることを確認します。
1
Mandragoran

この問題は、重複したクラスパスエントリ、具体的には古いバージョンのjasperreports-core-renderer.jarおよびjasperreports-extensions.jarのエントリ(オプション->クラスパス)が原因で、私の場合に発生しました。

これらの重複したエントリは、iReportのアップグレード中に設定をインポートした後に表示されました。どうやらこれは、古いバージョンがクラスパスから削除されないiReportのバグが原因です。

そのため、以前のバージョンから設定をインポートしないようにするか、古い.jarを手動で削除してください。

1
Markus Pscheidt