如何修复Eclipse验证错误"没有检测到文档的语法约束"?

cmc*_*nty 58 java eclipse xsd java-ee

Eclipse 3.5.2抛出了一个XML模式警告消息:

No grammar constraints (DTD or XML schema) detected for the document.
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

我不想禁用警告.如何让Eclipse正确验证XML文档?

Ple*_*kly 59

把它放在任何违规文件的顶部对我有用:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE project>
Run Code Online (Sandbox Code Playgroud)

  • 对我来说,这只是停止验证,因此删除错误消息 (3认同)
  • 尝试过这个(在 Eclipse Luna 上)。导致出现新警告:_"SchemaLocation: schemaLocation value = 'http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd' must have even number of URI's."_. 参见 [acdcjunior 的回答](http://stackoverflow.com/a/16720774/1744774) 和 [MahmoudS 的问题](http://stackoverflow.com/questions/7583038/what-is-the-use-of-faces -config-xml-in-jsf-2) 为此。 (2认同)

小智 43

不确定你是否曾经满意地解决了这个问题,但我今天在使用Eclipse 3.6中的一些Spring配置文件时遇到了这个帖子.无论如何,我都无法在Eclipse的Problems视图中消失错误,直到我右键单击该问题并将其删除.

我认为如果我重新验证它会回来并且实际上存在问题并且到目前为止还没有.问题是我有一个几乎相同的Spring配置文件没有显示错误.

似乎有时候东西会陷入Eclipse中.不知道为什么但是在这个和文件之间与编辑器不同步并且必须强制刷新我想我必须接受它.

  • 这对我有用.但是,项目清单中的代码文件中仍然存在恼人的警告标志.添加`<!DOCTYPE xml>`也解决了这个问题! (2认同)

knb*_*knb 35

这是关闭故意缺少DTP或XSD的XML文档警告的另一种方法:

  1. 转到菜单首选项,
  2. 在导航菜单中,即对话框的左框架中,选择:XML> XML文件>验证
  3. 在配置区域,即对话框的右框架中,选择:验证文件>未指定语法>忽略(这是一个选择框)默认设置为警告)


小智 7

我不是专家,而是学习者.我偶然发现了解决问题的简单方法.你需要做的是:

ctrl + shift + F(这是在Eclipse中格式化文件的快捷方式)

如果这不能解决问题,那么在此特定线路起点TAB键而不是其他任何地方(我不知道为什么,但是这有效.如果有人知道为什么我会很高兴知道)
?xml version="1.0" encoding="UTF-8"?

然后按ctrl + shift + F并保存.

警告将消失,至少对我来说,你可以自己尝试......


eck*_*kes 5

如果出现此警告,则表示XML Validate函数(与XML实例编辑器不同!)不知道要应用的DTD或XSD.这当然也意味着它实际上没有检查XML实例是否符合任何模式.

因此,这是一个有用的警告,它不应该被关闭(如果您使用验证菜单功能并期望它做某事).

您可以使用首选项来使您的架构已知:

  • 打开首选项/ XML目录/用户指定的条目
  • 点击添加...
  • 输入要在"位置"中使用的XSD文件
  • 选择密钥类型"架构位置"(如果您有xsi:schemaLocation)
  • 输入与文件内容匹配的URL(位置的第二部分)作为"密钥"
  • 按确定
  • 转到问题视图并删除验证警告
  • 右键单击XML文件,然后再次选择"验证"

"插件指定条目"中已包含一些公共标识符和模式位置(特别是如果安装了WSTP).对于那些名称空间,您不会收到警告(因为它使用系统提供的副本来验证).


res*_*w67 5

将此添加到您的 xml 文件的开头:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

RelativeLayout更改为您定义的根布局,然后在左侧找到 xml 文件,在布局文件夹中,右键单击并选择 Validate。