1.1schema文檔即xml schema document,schema文件的格式是.xsd(xml schema document的縮寫xsd)。
簡單來說:schema就是對xml的進一步約束。一旦確定了web.xml schema的引用,就表示要參考該引用所在位置的schema定義和約束的規則,這些規則指定了該xml里:
1)只能出現約束里指定的元素和指定的屬性
2)某些元素的順序的也就不可改變的
3)誰有子元素,有多少個,順序是怎樣的
4)元素和屬性的類型,元素是否為空,是否包含文本,數據類型是什么,有沒有固定值,有沒有默認值等。
關於schema的資料,參考:http://blog.chinaunix.NET/uid-7308906-id-2059766.html
2web.xml文件<web-app>中的各參數如下它們分別代表什么意思呢?
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:javaee="http://Java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
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"
version="2.4">
</web-app>
2.1 xmlns="http://java.sun.com/xml/ns/j2ee"
表示web.xml這個文件的命名空間為http://java.sun.com/xml/ns/j2ee,每一個.xml都應該有一個命名空間(是自己定義的,一般為全球唯一的網站作為.xml文件的命名空間),為什么要用一個網址作為命名空間?可能是要保證全球唯一性吧,所以用網址url。
2.2
xmlns:javaee="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
以上三個表示,用javaee、web、xsi分別替代長長的url,即javaee="http://java.sun.com/xml/ns/javaee" ,web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd",xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"。
2.3
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
這一句才指定了,web.xml真正遵循的約束,即xsd文件所在的位置!
有兩個參數,第一個值是需要使用的命名空間。第二個值是供命名空間使用的 XML schema 的位置。
其中,http://java.sun.com/xml/ns/j2ee,表示web.xml這個xml文件的命名空間。xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"這一句的意思是,http://java.sun.com/xml/ns/j2ee這個命名空間(即web.xml文件)需要遵循http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd文件中的約束,web-app_2_4.xsd中沒有的元素,web.xml不能使用。