1. 为什么web.xml会有不同版本的xsd引用:
JDK依赖变化;
或 servlet(JAVA EE)自身API的改变;
2. 为什么会有dtd和xsd两个版本的区别
我是在这篇文章中看到的,似乎拷贝了一段API说明:
There are two ways to specify the schema for a the web.xml file (Deployment Descriptor).DTD - Document Type DefinitionXSD - XML Schema DefinitionThe XSD version is preferred since JSP 2.0 / Servlets 2.4 (eg: Tomcat 5.5). Note that the XML encoding can be specified as ISO-8859-1, UTF-8, or any other valid encoding in either version, and should match the actual encoding of your text file. XSD example for JSP 2.1 / Servlets 2.5 (Tomcat 6.0):XSD example for JSP 2.0 / Servlets 2.4 (Tomcat 5.5): DTD example for JSP 1.2 / Servlets 2.3 (Tomcat 5):
在这里,也就说了,DTD是早期支持的方式,后期尽量用XSD。为什么XSD成为趋势,这里有个很好的注解《》《》。
DTD和XSD相比:DTD 是使用非 XML 语法编写的。
DTD 不可扩展,不支持命名空间,只提供非常有限的数据类型 .
3. web.xml几个版本的列表
web.xml v2.3
web.xml v2.4
<web-app id="WebApp_9" version="2.4" 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/web-app_2_4.xsd">
</web-app>
web.xml v2.5
<?xml version="1.0" encoding="UTF-8"?>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/web-app_2_5.xsd"
version="2.5">
</web-app>
web.xml v3.0
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 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/web-app_3_0.xsd">
</web-app>