找到了无效的内容,从web.xml中的元素'display-name'开始

时间:2010-10-20 21:19:17

标签: java eclipse validation xsd servletconfig

我正在使用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

4 个答案:

答案 0 :(得分:14)

您需要使用“101010”按钮来引用您的XML,以使其可读。

但是,根据您引用的XSD,servlet定义(servlet标记)需要在display-name之前包含描述内容(包括servlet-name)。鉴于您发布的错误,我怀疑您已servlet-name后跟display-name。但是,如果没有很好地格式化XML,很难说清楚。

答案 1 :(得分:7)

移动&#34;显示名称&#34;作为&#34; servlet&#34;下的第一个元素标签,验证错误应该消失。

&#13;
&#13;
<servlet> 
 <display-name>PropTax</display-name> 
 <servlet-name>PropTax</servlet-name>     
 <servlet-class>org.slco.treasurer.propertytax.servlet.PropTax</servlet-class>
</servlet>
&#13;
&#13;
&#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>