16
Description Resource    Path    Location    Type
No grammar constraints (DTD or XML schema) detected for the document.   TEST-net.kindleit.gae.example.server.MessageRepositoryTest.xml  /projecttest-gae-example/target/surefire-reports    line 1  XML Problem
No grammar constraints (DTD or XML schema) detected for the document.   appengine-web.xml   /projecttest-gae-example/src/main/webapp/WEB-INF    line 1  XML Problem
No grammar constraints (DTD or XML schema) detected for the document.   appengine-web.xml   /projecttest-gae-example/target/projecttest-gae-example-1.0-SNAPSHOT/WEB-INF    line 1  XML Problem
No grammar constraints (DTD or XML schema) detected for the document.   datastore-indexes-auto.xml  /projecttest-gae-example/WEB-INF/appengine-generated    line 1  XML Problem
No grammar constraints (DTD or XML schema) detected for the document.   jdoconfig.xml   /projecttest-gae-example/src/main/resources/META-INF    line 1  XML Problem
No grammar constraints (DTD or XML schema) detected for the document.   jdoconfig.xml   /projecttest-gae-example/target/projecttest-gae-example-1.0-SNAPSHOT/WEB-INF/classes/META-INF   line 1  XML Problem
No grammar constraints (DTD or XML schema) detected for the document.   webapp-cache.xml    /projecttest-gae-example/target/war/work    line 1  XML Problem

Eclipseで上記の問題を修正するにはどうすればよいですか? 私のプロジェクトはMavenベースです。いくつかの dtd ファイルを見逃しているためですか? それを含める方法は?

例 jdoconfig.xml

<?xml version="1.0" encoding="utf-8"?>
<jdoconfig xmlns="http://java.sun.com/xml/ns/jdo/jdoconfig"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://java.sun.com/xml/ns/jdo/jdoconfig">

    <persistence-manager-factory name="transactions-optional">
        <property name="javax.jdo.PersistenceManagerFactoryClass"
            value="org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManagerFactory"/>
        <property name="javax.jdo.option.ConnectionURL" value="appengine"/>
        <property name="javax.jdo.option.NontransactionalRead" value="true"/>
        <property name="javax.jdo.option.NontransactionalWrite" value="true"/>
        <property name="javax.jdo.option.RetainValues" value="true"/>
        <property name="datanucleus.appengine.autoCreateDatastoreTxns" value="true"/>
    </persistence-manager-factory>
</jdoconfig>
4

5 に答える 5

25

最初の回答 (2009 年 12 月)

WTP (XML 部分を含む) がある場合:

Preferences->Validation->XML Validator-> マニュアルのクリックを解除するか、ビルドを行うと、DTD をチェックする Eclipse を防ぐ必要があります

または:

[設定] ページから、[XML] > [XML ファイル] を選択します。「ファイルの検証」セクションの下で、ドロップダウンの重大度を「警告」から「無視」に変更できます。これは .xml だけでなく、すべての XML ファイルに適用されることに注意してくださいbuild.xmlbuild.xmlただし、他の XML ファイルに対してもこの警告が必要な場合は、除外フィルターに追加するだけです。

代替テキスト


更新 (2012 年 2 月)

誰かがコメント (現在は削除されています) で、警告を無視してはならないという有効な指摘をしました。 しかし、それらを修正してください!

方法を尋ねると、彼は続けます(強調は私のものです):

これは明らかに悪い設計の兆候であるため、Eclipse を修正します。
たとえば、Eclipse Foundation バグ トラッカーにバグを報告するかもしれません。
Eclipse は、XML 文法を必要としないことが「知られている」Spring/Java EE プロジェクト ファイルの「適切な」デフォルトを追加する必要があります
ファイルに何か問題があるか、Eclipse がどこかで壊れています。
私が抱えていた3つの問題:

  1. バリデーターが検索するシステムパスにファイルがあるにもかかわらずLog4j.xml、XML 定義が見つからないことを示しています。log4j.dtd
  2. Antbuild.xmlファイルには、文法上の制約がないと書かれています
  3. 何らかの理由で、プロジェクトをクリーンアップできません。

実際には、これらの警告に関する戦略/バグについて議論しているバグがあります:

  • バグ 218326 : 「[問題] ビューでのシステム ファイルに対する "文法上の制約なし" の警告" は "除外ルート" を取りました
  • バグ 331749は、ディレクトリが除外されていても「文法の制約がありません」と文句を言う

明らかに、これらの警告の管理に関してさらに修正が必要です。

于 2009-12-30T16:16:18.007 に答える
4

Eclipseで上記の問題を修正するにはどうすればよいですか?

これは実際の問題というよりも警告です。ファイルを検証するときにこれを無視するように Eclipse に指示できます ([Windows] > [Preferences] > [XML] > [XML Files] > [Editor] > [Validation])。

いくつかの dtd ファイルを見逃しているためですか?

いいえ、XML ドキュメントで DTD または XSD が宣言されていないためです。

それを含める方法は?

もちろん、手動で宣言を追加することもできます (追加する DTD またはスキーマがわかっている場合)。または、前述のように文法が指定されていないという事実を無視するように Eclipse に指示することもできます。または、それと一緒に暮らすこともできます。

于 2009-12-30T16:37:09.943 に答える
3

他の人が示唆しているように、各警告は個別に対処する必要があります。

あなたの特定の警告について -

No grammar constraints (DTD or XML schema) detected for the document.   TEST-net.kindleit.gae.example.server.MessageRepositoryTest.xml  /projecttest-gae-example/target/surefire-reports

同じ動作が見られるため、Surefire に対するバグをSUREFIRE-964として記録しました。

これらの警告のみを除外するには、[設定] > [検証] に移動できます。XML Validator を見つけて、[設定] をクリックします。[除外グループ] を選択し、[ルールの追加] をクリックして、[フォルダーまたはファイル名] を選択し、[ブラウザー フォルダー] をクリックしてターゲット/surefire-reports を選択します。その時点で、Eclipse は再構築や検証が必要であることを示すプロンプトを表示します。または、プロジェクトを右クリックして [検証] を選択することもできます。

于 2013-02-21T18:58:01.930 に答える
0

それはただの警告です。環境設定: XML/XML ファイル/検証で、オフにすることができます。

于 2009-12-30T16:17:09.017 に答える
0

オフにするのは得策ではないと思います。解析を開始するときなどに問題が発生する可能性があります。XML カタログに DTD を含めることをお勧めします。

[Windows] -> [設定] -> [XML] -> [XML カタログ] に移動します。欠落している DTD をユーザーが指定したエントリとして追加すると、Eclipse は問題なくそれを検証します。後でファイルの検証を開始する必要がある場合があります。

この解決策は、log4j.dtd の問題について説明しているhttp://juliendkim.blogspot.de/2012/09/how-to-fix-log4jdtd-xml-problem-in.htmlにもあります。

于 2013-03-01T08:49:40.567 に答える