如何解决Eclipsevalidation错误“检测到文档没有语法约束”?

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正确地validationXML文档?

不知道你是否满意地解决了这个问题,但是我今天在Eclipse 3.6中使用了一些Springconfiguration文件的时候遇到了这个post。 无论如何,我都无法在Eclipse的Problems视图中看到错误,直到我右键单击该问题并将其删除

我想如果我重新validation,它会回来,实际上有一个问题,迄今为止它没有。 事情是我有一个几乎相同的springconfiguration文件没有显示错误。

看起来有时候东西会被卡在Eclipse中。 不知道为什么,但在这之间和文件与编辑不同步,不得不强制刷新,我想我必须接受它。

把这个放在任何违规文件的顶部对我来说是有效的:

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

这是closures故意缺lessDTP或XSD的XML文档警告的另一种方法:

  1. 进入菜单首选项,
  2. 在导航菜单中,即对话框的左侧框架中,select:XML> XML文件>validation
  3. 在configuration区域,即对话框的右边框中,select:validation文件>没有指定语法>忽略(这是一个select框)默认设置是警告)

我不是专家,而是学习者。 我不小心find了一个简单而又愚蠢的方法来解决这个问题。 你只需要做的是:

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

如果这不能解决问题,那么在此特定行开始处按TAB
?xml version="1.0" encoding="UTF-8"?不是其他任何地方 (我不是不知道为什么,但这是有效的,如果有人知道我为什么会很高兴知道)

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

警告将消失,至less对我来说,你可能会为自己尝试…

如果出现此警告,则意味着XMLvalidationfunction(与XML实例编辑器不同)不知道要应用什么DTD或XSD。 这当然也意味着它实际上并不检查XML实例是否符合任何模式。

因此,这是一个有用的警告,它不应该被closures(如果您使用validation菜单function,并期望它做些什么)。

您可以使用这些首选项来使您的架构知道:

  • 打开首选项/ XML目录/用户指定的条目
  • 点击添加…
  • input要在“位置”中使用的XSD文件
  • select密钥types“架构位置”(如果你有一个xsi:schemaLocation)
  • input与文件内容匹配的URL(位置的第二部分)作为“Key”
  • 按OK
  • 转到问题视图并删除validation警告
  • 右键单击XML文件并再次select“validation”

某些公共标识符和模式位置已经包含在“插件指定的条目”中(特别是如果您安装了WSTP)。 对于这些名称空间,您不会收到警告(因为它使用系统提供的副本进行validation)。

在eclipse中避免“ 检测到文档没有语法约束(dtd或xml架构)我使用将xsd模式文件添加到xml目录下

“Window \ preferences \ xml \ xml目录\用户指定的条目”。

点击右侧的“添加”button。


例:

 <?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我已经生成并保存在一个xsd下:/home/my_user/xsd/my_xsd.xsd

作为位置:/home/my_user/xsd/my_xsd.xsd

作为键types:名称空间名称

至于关键: http : //mycompany.com/hr/schemas


closures并重新打开xml文件并进行一些更改以违反该模式,则应通知您。

我有一些成功的回到了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"> 

这是这个问题的工作解决scheme:

第1步:右键单击项目并转到属性

第二步:进入“库”,删除项目的“JRE系统库”

第三步:点击“添加库” – >“JRE系统库” – >select“工作区默认JRE”

步骤3:进入“订购与导出”并标记新添加的“JRE系统库”

第4步:刷新和清理项目

find了! 它的工作:)

添加到您的XML文件的一开始:

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

RelativeLayout更改为您定义的根布局,然后在左侧布局文件夹中findxml文件,右键单击并selectvalidation。

我发现我的工作是完全删除schemaLocation属性,然后右键单击大纲视图,并编辑命名空间,然后将架构位置提示添加到生成的对话框中。

这可能是因为你的代理设置。 看到这个和这个 。 您可以尝试通过URL将javadoc附加到没有它的库。 如果你的浏览器没有问题,但没有在你的编辑器中,那么这是一个连接问题。 我通过向pipe理员询问代理设置来解决同样的问题。 虽然所有其他的应用程序确实工作,日食没有,所以我不得不手动inputconfiguration。 如果开发人员添加一个button“检查连接”,这将是很好的…

Eclipse的解决scheme:

在每个有问题的XML的开始处添加<!DOCTYPE something>

在xml标签之后<?xml version="1.0" encoding="utf-8"?>

你可以为doctype写任何东西,但基本上它应该是明显的,活动等,从我的理解

我昨晚才遇到这个问题(使用eclipse V.kepler)。 我是全新的Java和Eclipse,我想教自己如何使一个Android应用程序。 当我在开发developers.android.com上提供的课程时,我已经将其input到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一样的错误。 我试着按照添加的build议

 <!DOCTYPE project> 

就在第一行的下方,它解决了这个问题。

对我而言,右键单击树中的xml文件(通常在eclipse的左侧)并单击validation。 从那以后,警告再也没有回来。

这是为我工作的。 我使用的是没有版本号的模式(例如spring-beans.xsd ,而不是spring-beans-4.1.xsd ),他们可能在上游更新。 我认为问题是Eclipse保留了旧版本的脏caching。

修正:
1.转到Window -> Preference -> Network Connection -> Cache
2.删除所有caching的模式。
3.删除问题视图中所有no grammar constraints问题。
4.重新validation项目。

对我来说,当我把它剪切(ctrl + ctrl-X)并将其保存回来(ctrl-s)时,它就像一个魅力! 警告“没有为文档检测到的语法约束(DTD或XML模式)”已经没有了!