maven 项目警告“DTD 或 XML 模式”上的 eclipse

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

如何在日食上解决上述问题?我的项目是基于 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>

答案 1

初步答案(2009年12月)

如果您有 WTP(包含 XML 部分):

首选项>验证>XML 验证器>取消单击手动和/或构建应防止 eclipse 检查 DTD

艺术

从“首选项”页中,选择“XML > XML 文件”。在“验证文件”部分下,您可以在从“警告”到“忽略”下拉列表中更改严重性。请注意,这适用于所有XML文件,而不仅仅是.但是,如果您仍然希望对其他 XML 文件显示此警告,则可以将其添加到排除筛选器中。build.xmlbuild.xml

alt text


更新 (2012年2月)

有人在评论中(现已删除)提出了一个有效的观点,即您永远不应该忽略警告。
但是修复它们!

当被问及如何操作时,他继续说(强调我的):

我会修复Eclipse,因为这显然是设计糟糕的标志。
例如,我可能会向Eclipse Foundation错误跟踪器报告一个错误。
Eclipse 需要为 Spring/Java EE 项目文件添加“sane”默认值,这些文件“已知”不需要 XML 语法
要么是文件有问题,要么是 Eclipse 在某个地方坏了。
我遇到了三个问题:

  1. 使用文件,表示它找不到 XML 定义,尽管该文件位于验证程序查找的系统路径中Log4j.xmllog4j.dtd
  2. 蚂蚁文件说我没有语法约束build.xml
  3. 由于某种原因,我无法清理项目。

实际上,有一些错误正在围绕这些警告讨论策略/错误:

  • bug 218326:“问题”视图中系统文件的“无语法约束”警告“确实采取了”排除路由”
  • bug 331749抱怨“没有语法约束”,即使目录被排除在外

显然,在管理这些警告方面需要更多的修复。


答案 2

如何在日食上解决上述问题?

这与其说是一个真正的问题,不如说是一个警告。您可以告诉 Eclipse 在验证文件时忽略这一点(Windows >首选项> XML > XML 文件>编辑器>验证)。

是因为我错过了一些dtd文件吗?

不,这是因为 XML 文档未声明任何 DTD 或 XSD。

如何包含它?

当然,您可以手动添加声明(如果您知道要添加哪个 DTD 或架构)。或者,您可以告诉 Eclipse 忽略前面提到的没有指定语法的事实。或者你可以忍受它。


推荐