我正在使用Eclipse Helios Release。 Eclipse xml验证器不喜欢我的web.xml中display-name
下的<servlet>
元素。这是相关部分:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID"
version="2.5">
<display-name>PropTax</display-name>
<servlet>
<servlet-name>PropTax</servlet-name>
<display-name>PropTax</display-name>
<servlet-class>org.slco.treasurer.propertytax.servlet.PropTax</servlet-class>
</servlet>
(...)
如果删除display-name元素,则不再出现错误。如果我理解正确2.5是支持display-name的正确模式,甚至编辑器下的上下文帮助也会将display-name列为选择的一部分。
有人可以帮我吗?
Eclipse验证器的错误消息:
cvc-complex-type.2.4.a: Invalid content was found starting with element 'display-name'. One of '{"http://java.sun.com/xml/ns/javaee":servlet-class, "http://java.sun.com/xml/ns/javaee":jsp-file}' is expected. web.xml /PropTax/WebContent/WEB-INF line 6 XML Problem
答案 0 :(得分:14)
您需要使用“101010”按钮来引用您的XML,以使其可读。
但是,根据您引用的XSD,servlet定义(servlet
标记)需要在display-name
之前包含描述内容(包括servlet-name
)。鉴于您发布的错误,我怀疑您已servlet-name
后跟display-name
。但是,如果没有很好地格式化XML,很难说清楚。
答案 1 :(得分:7)
移动&#34;显示名称&#34;作为&#34; servlet&#34;下的第一个元素标签,验证错误应该消失。
<servlet>
<display-name>PropTax</display-name>
<servlet-name>PropTax</servlet-name>
<servlet-class>org.slco.treasurer.propertytax.servlet.PropTax</servlet-class>
</servlet>
&#13;
答案 2 :(得分:1)
从servlet选项卡中注释掉警告/错误(或所有)元素,并使用eclipse web.xml设计编辑器来添加Child&#34; for&#34; display-name&#34;。 Eclipse WEB.XML设计编辑器将自动更新XML文件,并使用验证器排列顺序。
答案 3 :(得分:0)
您必须将标签显示名称放在首位。
<servlet>
<display-name>PropTax</display-name>
<servlet-name>PropTax</servlet-name>
<servlet-class>org.slco.treasurer.propertytax.servlet.PropTax</servlet-class>