1.Eclipse创建Web项目,web.xml问题
报错:cvc-id.3: A field of identity constraint ‘web-app-servlet-name-uniqueness’ matched element ‘web-app’, but this element does not have a simple type.
1.1查看xml的schema约束文件,也就是"http://java.sun.com/xml/ns/javaee"
-
找到约束,‘web-app-servlet-name-uniqueness’。 可以看到报错的,unique约束“web-app-servlet-name-uniqueness”在这里约束了element:servlet下的servlet-name唯一。没有问题。 -
再看servlet-name servlet-name是基于nonEmptyStringType的。 -
看nonEmptyStringType。 可以看到,就是string类型,但是规定了minLength为1,也就是不为空。 -
总结,关于约束没有问题。
1.2 关于not have a simple type
A field of identity constraint ‘web-app-servlet-name-uniqueness’ matched element ‘web-app’, but this element does not have a simple type. 这个问题后半句翻译过来就是,'servlet-name’这个元素,缺少simple type,但没有错啊!!! 问题应该出现在eclipse对xml文件的校验。
2. 解决办法
1.1干掉xmlns
即将xmlsn后双引号""里的内容干掉,添加或删除字符都行,全删也可以。网上流行的将http://java.sun.com/xml/ns/javaee变成http://Java.sun.com/xml/ns/javaee同理。直接将这个ns命名空间干掉就好了。
1.2修改eclipse xml校验器
window-preferences-XML-XML Files-Validation里干掉它。
1.3临时解决,进入project-clean一下项目
清除一下该项目缓存,如果不点进去web.xml它不会校验,也就不会报错了。但是只是临时的,下次点进去,eclipse又会对web.xml自动进行校验。
1.4目前我还没找到eclipse会对其报错的原因,估计eclipse的社区里会有?可以去看看。————————————————————————
|