私のトップweb.xml
ファイルは次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://Java.Sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://Java.Sun.com/xml/ns/j2ee http://Java.Sun.com/xml/ns/j2ee/web-app_2_5.xsd"
version="2.5">
しかし、Eclipse(Ganymede)から、XMLスキーマが検出されず、スキーマ違反が警告されていないという警告が引き続き表示されます。私のプロジェクトの他のXMLファイル( Spring Framework 構成ファイルなど)には警告がなく、スキーマ違反に関する正しい警告が表示されます。
スキーマチェックを機能させるにはどうすればよいですか?サーバーは正しく実行されます。 IDE問題。
おそらく試してみてください:
http://Java.Sun.com/xml/ns/javaee/web-app_2_5.xsd
の代わりに:
http://Java.Sun.com/xml/ns/j2ee/web-app_2_5.xsd
また、<!DOCTYPE ...>
不足している:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<web-app
xmlns="http://Java.Sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://Java.Sun.com/xml/ns/javaee http://Java.Sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<!-- ... -->
</web-app>
私もその警告が嫌いです。特別な理由は、作成していないXMLファイルには表示されますが、何らかの理由でプロジェクトに表示されるためです(MAVENを使用している場合は地獄です)。
Eclipse 3.5以降では、この検証ルールを簡単に削除できます。 [設定]-> [XML]-> [XMLファイル]-> [検証]に移動し、[無視]を選択します。
また、検証の警告が消えるには、プロジェクト->クリーンを実行する必要があります。
保存された検証ファイルのキャッシュをクリアします。
[ウィンドウ]> [設定]> [全般]> [ネットワーク接続]> [キャッシュしてからすべて削除]。次に、ファイルを検証して、問題が解決するかどうかを確認します。
これは私に思いがけず、検証のためにキャッシュをクリアすることが、キャッシュを再び適切に機能させる唯一の方法でした。ダーティキャッシュをクリアするためのアドバイスが見つかりました here 。
XMLエディターがXSDファイルを見つけられなかったために同じ(誤解を招く)エラーメッセージが表示される場合は、カタログエントリを追加できます。
次のような宣言のために、スキーマに指定されたURLを選択します
xsi:schemaLocation="http://Java.Sun.com/xml/ns/j2ee
http://Java.Sun.com/xml/ns/j2ee/web-app_2_5.xsd"
スキーマファイルのURL(http://Java.Sun.com/xml/ns/j2ee/web-app_2_5.xsd)は、名前空間に指定されています http://Java.Sun.com/xml/ ns/j2ee 。 Eclipseのワークスペースカタログでファイルの場所をリダイレクトできるようになりました。
Preferences -> XML -> XML Catalog -> Add..
使用する
Key Type = Schema Location
Key = http://Java.Sun.com/xml/ns/j2ee/web-app_2_5.xsd
そして、ファイル選択ツールを使用して、実際にファイルシステムまたはワークスペース上のXSDファイルを選択できます。
私の答えも見ることができます 同様の質問について 。
基本的に、必要なルールに準拠するようにXMLを書くだけです
問題は2つあります。
Java EE 5の正しい値に修正すると、キャッシュ内のエントリが見つかり、Eclipseが満足します。