是什么定义了web.xml的XSD和语义?

时间:2017-03-31 17:05:04

标签: servlets web.xml

我试图找到在Servlet 3.0规范中定义部署描述符web.xm文件的XSD和语义的位置。

或者,在web.xml内可以出现的各种受支持元素和属性的权威描述,以及容器的默认行为是什么,以防某些元素/属性不存在。

我开始想知道http-only内的securesession-config元素的默认值是什么,例如如:

 <session-config>
     <session-timeout>60</session-timeout>
     <cookie-config>
         <http-only>true</http-only>
         <secure>false</secure>
     </cookie-config>
 </session-config>

我相当肯定两者的默认值都是false,但我想知道这是权威指定的位置。

查看Java Servlet 3.0 spec没有XSD。有一个示例XML文件(第169页),其中schemaLocation属性值为:

http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd

......哪个坏了。用于搜索web-app_2_5.xsd XSD文件,但它不包含<session-config>元素的定义(即使在搜索该文件导入的其他XSD时,我也无法找到它。)

规范确实包含了一些元素的图形描述(当这种“可视化”流行时,可怕的晚期90年代风格)但这只是session-config元素所包含的内容:

enter image description here

cookie-config元素没有进一步的讨论。

我发现很难相信规范不包含完整的XSD(或至少是它的链接) 所有语义的详细说明元素和属性。

我错过了什么吗?

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

可以在以下位置找到架构列表

http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/index.html

(一开始它是“最新版本:http://xmlns.jcp.org/xml/ns/javaee/”,它依次重定向到我首先发布的链接;我认为后面的URL应该用作永久链接)

然后,您将找到按Java EE版本分组的架构。我认为Servlet 3.0是JEE 6,所以:

http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/index.html#6

您将获得模式:

http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/web-app_3_0.xsd

http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/web-common_3_0.xsd

http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/web-fragment_3_0.xsd