34

私のファイルの上部は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の問題のようです。

4

6 に答える 6

47

私もその警告が嫌いです。特に、作成していない XML ファイルに表示されますが、何らかの理由でプロジェクトに表示されるためです (MAVEN を使用している場合は地獄です)。

Eclipse 3.5 以降では、この検証規則を簡単に削除できます。[設定] --> [XML] --> [XML ファイル] --> [検証] に移動し、[無視] を選択します。

検証の警告を消すには、Project -> Clean を実行する必要がある場合もあります。

代替テキスト

于 2010-02-24T11:05:51.410 に答える
27

おそらく試してみてください:

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>
于 2008-11-26T21:13:39.077 に答える
10

保存された検証ファイルのキャッシュをクリアします。

Window > Preferences > General > Network Connections > Cache ですべて削除します。次に、ファイルを検証して、問題が解決するかどうかを確認します。

これは私に起こり、検証のためにキャッシュをクリアすることが、キャッシュを再び適切に機能させる唯一の方法でした. ダーティ キャッシュをクリアするためのアドバイスは、こちらで見つかりました。

于 2011-09-17T03:53:39.367 に答える
2

XML エディターが XSD ファイルを見つけられなかったために同じ (誤解を招く) エラー メッセージが表示される場合は、カタログ エントリを追加できます。

次のような宣言のために、スキーマに指定された URL を選択します。

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
                      http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd"

名前空間http://java.sun.com/xml/ns/j2eeに対して、スキーマ ファイルの URL (http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd) が指定されます。Eclipse のワークスペース カタログを使用して、ファイルの場所をリダイレクトできるようになりました。

Preferences -> XML -> XML Catalog -> Add..

使用する

Key Type = Schema Location
Key = http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd

次に、ファイル チューザーを使用して、ファイル システムまたはワークスペース上の XSD ファイルを実際に選択できます。

于 2012-06-02T01:21:53.993 に答える
0

問題は 2 つあります。

  1. Eclipse には、よく知られている多くの XSD のキャッシュが付属しています。指定した名前空間や場所は、これらのいずれとも一致しません。
  2. そのため、Eclipse は提供された URI でインターネット上の XSD を探しに行きます (うまくいくかもしれません)。残念ながら、Oracle が java.sun.com を改訂した後、このメカニズムは Eclipse でタイムアウトになったようです (どうやらサーバーは単に「存在しません、申し訳ありません」と言うのではなく、ホームページにリダイレクトするようです)。

Java EE 5 の正しい値に修正すると、キャッシュ内のエントリが見つかり、Eclipse は満足します。

于 2013-01-29T12:59:11.573 に答える
-5

<!DOCTYPE ...>これを xml ファイルに追加します。下に置いてください<?xml ...>

<!DOCTYPE ??? PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

???= ルート要素。サブ要素名に html 予約語が使用されている場合、エラーが発生する可能性があります。これらを予約語以外に変更するだけで済みます。

例:
現在のサブ要素が の場合、それを...<img>に変更します。<pic>

于 2009-10-22T18:04:15.647 に答える