web-dev-qa-db-ja.com

Eclipse検証エラー「ドキュメントの文法制約が検出されない」を修正する方法は?

Eclipse 3.5.2はXMLスキーマ警告メッセージをスローしています:

No grammar constraints (DTD or XML schema) detected for the document.

Application.xmlファイル:

<?xml version="1.0" encoding="UTF-8"?>
<application
  xmlns="http://Java.Sun.com/xml/ns/javaee"
  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/application_5.xsd"
  version="5">

</application>

警告を無効にしたくありません。 EclipseでXMLドキュメントを正しく検証するにはどうすればよいですか?

57
cmcginty

これを十分に解決したかどうかはわかりませんが、Eclipse 3.6でいくつかのSpring構成ファイルを操作しながら、今日この投稿に出くわしました。 問題を右クリックして削除になるまで、Eclipseの問題ビューでエラーを解消することはできませんでした。

私が再検証すれば戻ってくると思いましたが、実際には問題がありましたが、今のところはそうではありません。問題は、エラーを表示していなかったほぼ同一のSpring構成ファイルがあったことです。

時々、Eclipseで何かが動かなくなることがあります。理由はわかりませんが、これとファイルがエディターと同期しなくなり、強制的に更新する必要がある間は、それを受け入れる必要があると思います。

43
Jason Kratz

これを問題のあるファイルの先頭に置くとうまくいきます:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE project>
58
Plenus Franckly

これは意図的に DTPまたはXSDがないXMLドキュメントの警告をオフにする別の方法です。

  1. メニュー設定に移動し、
  2. ナビゲーションメニュー、つまりダイアログボックスの左フレームで、次を選択します:XML> XML Files> Validation
  3. 構成エリア、つまりダイアログボックスの右フレームで、「ファイルの検証」>「文法が指定されていません」>「無視」(これは選択ボックスです)のデフォルト設定は警告です)を選択します
34
knb

私は専門家ではなく、学習者です。この問題を解決する簡単で愚かな方法を偶然見つけました。必要なことは、次のとおりです。

押す ctrl + shift + F(Eclipseでファイルをフォーマットするためのショートカットです)

これで問題が解決しない場合は、[〜#〜] tab [〜#〜]キーを押してこの特定の行の開始
?xml version="1.0" encoding="UTF-8"? and他のどこにもありません(理由はありませんが、これは動作します。

次に、ctrl + shift + Fそして保存します。

少なくとも私にとっては、警告は消えます。自分で試してみてください...

7
madhavi

この警告が表示された場合、XML Validate関数(XMLインスタンスエディターとは異なります!)が適用するDTDまたはXSDを認識していなかったことを意味します。もちろんこれは、XMLインスタンスがスキーマに準拠しているかどうかを実際にチェックしなかったことも意味します。

したがって、これは有用な警告であり、オフにしないでください(Validateメニュー機能を使用して、何かを実行することを期待している場合)。

設定を使用して、スキーマを知らせることができます。

  • 設定を開く/ XMLカタログ/ユーザー指定のエントリ
  • 追加...をクリックします.
  • [場所]で使用するXSDファイルを入力します
  • キータイプ「スキーマの場所」を選択します(xsi:schemaLocationがある場合)
  • ファイルのコンテンツに一致するURL(場所の2番目の部分)を「キー」として入力します
  • OKを押す
  • 問題ビューに移動し、検証警告を削除します
  • XMLファイルを右クリックして、「検証」を再度選択します

一部のパブリックidenditfiersとスキーマの場所は、「プラグイン指定のエントリ」に既に含まれています(特にWSTPがインストールされている場合)。これらのネームスペースについては、警告が表示されません(システムが提供するコピーを使用して検証するため)。

5
eckes

eclipseで「ドキュメントの文法制約(dtdまたはxmlスキーマ)が検出されないことを回避します。」を使用して、xsdスキーマファイルをxmlに追加します下のカタログ

「ウィンドウ\設定\ xml\xmlカタログ\ユーザー指定エントリ」。

右側の[追加]ボタンをクリックします。


例:

<?xml version="1.0" encoding="UTF-8"?>
<HolidayRequest xmlns="http://mycompany.com/hr/schemas">
    <Holiday>
        <StartDate>2006-07-03</StartDate>
        <EndDate>2006-07-07</EndDate>
    </Holiday>
    <Employee>
        <Number>42</Number>
        <FirstName>Arjen</FirstName>
        <LastName>Poutsma</LastName>
    </Employee>
</HolidayRequest>

このxmlからxhomeを生成して保存しました:/home/my_user/xsd/my_xsd.xsd

場所として:/home/my_user/xsd/my_xsd.xsd

キータイプとして:名前空間名

キーとして: http://mycompany.com/hr/schemas


Xmlファイルを閉じて再度開き、スキーマに違反するいくつかの変更を行うと、通知が表示されます。

3
user1374968

これをxmlファイルの最初に追加します。

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE RelativeLayout>

RelativeLayoutを定義済みのルートレイアウトに変更し、左側のレイアウトフォルダーでxmlファイルを見つけ、右クリックして[検証]を選択します。

2
resw67

成功しました application.xsdのV1.4に戻ります 。 JavaEEバージョンが機能しない理由を説明できる人がいれば、感謝します。

<?xml version="1.0" encoding="UTF-8"?>
<application
  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/application_1_4.xsd"
  version="1.4">
2
cmcginty

この問題の解決策は次のとおりです。

ステップ1:プロジェクトを右クリックして、プロパティに移動します

ステップ2:「ライブラリ」に移動して、プロジェクトの「JREシステムライブラリ」を削除します

ステップ3:「ライブラリの追加」->「JREシステムライブラリ」をクリックし、「ワークスペースのデフォルトJRE」を選択します

ステップ3:「注文とエクスポート」に進み、新しく追加された「JREシステムライブラリ」をマークします。

ステップ4:プロジェクトを更新してクリーンアップする

ユーレカ!それは働いています:)

1
user2372633

これが私のために働いたものです。バージョン番号なしのスキーマ(たとえば、spring-beans.xsdではなくspring-beans-4.1.xsd)を使用していましたが、おそらくアップストリームで更新されました。問題は、Eclipseが古いバージョンのダーティキャッシュを保持していたことだと思います。

修正:
1。 Window -> Preference -> Network Connection -> Cacheに移動します
2。キャッシュされたすべてのスキーマを削除します。
3。問題ビューでno grammar constraints問題をすべて削除します。
4。プロジェクトを再検証します。

1
Mobius

私にとっては、それをカット(ctrl a + ctrl-X)し、再び保存(ctrl-s)すると魅力のように機能しました! 「ドキュメントの文法制約(DTDまたはXMLスキーマ)が検出されませんでした」という警告はなくなりました!!

0
Sheeba Nancy

昨夜この問題が発生していました(Eclipse V.keplerを使用)。私はJavaとEclipseを初めて使用し、Androidアプリを作成する方法を学ぼうとしています。 .Android.comこれをmain_activity_actions.xmlファイルに入力しました:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android" >

<!--  Search should appear as an action button -->
<item Android:id="@+id/action_search"
      Android:icon="@drawable/ic_action_search"
      Android:title="@string/action_search"
      Android:showAsAction="ifRoom"/>

</menu>

これにより、OPと同じエラーが発生しました。追加の提案に従ってみました

<!DOCTYPE project> 

最初の行のすぐ下で問題を解決しました。

0
d3sperad0

私のために働いたのは、ツリー内のxmlファイルを右クリックして(通常はEclipseの左側にある)、検証をクリックしたことです。それ以来、警告は戻ってきませんでした。

0
WayneEra

私が見つけたのは、schemaLocation属性を完全に削除し、アウトラインビューで右クリックして名前空間を編集し、結果のダイアログにスキーマの場所のヒントを追加することでした。

0
Developer Z

Eclipseのソリューション:

追加 <!DOCTYPE something>問題のある各XMLの始まり、

xmlタグの後<?xml version="1.0" encoding="utf-8"?>

あなたはDoctypeのために何でも書くことができますが、基本的にそれは私が理解することからマニフェスト、アクティビティなどになるはずです

0
Amir.F

プロキシ設定が原因である可能性があります。 this および this を参照してください。 javadocをURLなしでライブラリに添付してみてください。ブラウザーでは問題ないがエディターでは問題がない場合は、接続の問題です。プロキシの設定について管理者に尋ねることで、同じ問題を解決しました。他のすべてのアプリケーションは動作しましたが、Eclipseは動作しなかったため、「手動で」設定を入力する必要がありました。開発者が「接続を確認する」ボタンを追加したら素晴らしいでしょう...

0
pkopac