<!--为了学习需要把这个文档翻译了一遍,里面的词语和语法可能很不标准,而且也可能和原文相去甚远。但是对于我自己的理解确是有益的。觉得它对其他人也许有用,所以冒昧把它共享出来,希望能对大家有用。要是由于我的错误翻译而使使用者曲解了原文的意思,那么我也只能深表遗憾了,至于责任我是不负的。但是希望你能把错误指出来,由我来修改,或者是你自己加以改进,并共享出来。
第一次字面翻译这种类型的文档,错误和难读之处估计很多,尤其是我对除了servlet和jsp之外的知识所知甚少。然而大牛们是不屑于翻译这种文档的(或者是我孤陋寡闻了),而我等无能之辈只能勉而为之了。
说明:()里面的是原文,()里面的是原文中()里面的内容
感谢: gaojunbo@csdn.expert提供的对于fully-qualified的理解。
justfly@cnpoems.net2003.1.31 2:03完稿。-->
<!--Sun Microsystems,Inc.2000-2001 版权所有。901 San Antonio Road, Palo Alto, CA 94303,U.S.A. 保留所有权利.
这个产品或者文档在使用,复制,分发上受到了copyright and distributed的许可证限制保护。在没有得到任何形式的上的Sun和它的许可证颁发者的授权下,任何人或组织不可以以任何形式reproduced(复制,再生)本产品或文档的任何部分。
第三方软件,包括字型技术,已经得到Sun的供应者的授权和许可。
Sun, Sun Microsystems, the Sun Logo, Solaris, Java, JavaServer Pages, Java Naming and Directory Interface, JDBC, JDK, JavaMail 和 Enterprise JavaBeans 在美国和其他国家已经注册为Sun Microsystems, Inc的商标。
所有的SPARC商标得到SPARC International, Inc在美国和其他国家的使用许可和商标使用权的授予。和SPARC商标有关的产品是以Sun Microsystems, Inc. 开发的一个体系结构为基础的。
PostScript 是Adoe Systems, Inc.的一个注册商标。
联合收购: 商业软件-政府用户服从标准的许可证期限和条件.(Federal Acquisitions: Commercial Software - Government Users Subject to Standard License Terms and Conditions. 这句话翻译得不好)
除了根据法律无法拒绝的情况下,本文档不因任何任何明确的或者隐含的条件,请求,理由, 包括任何含蓄的可做商品性的,因为特殊的目的或者非侵犯性的的理由而做修改。-->
<!--这是一个Servlet 2.3 配置描述器的XML DTD。所有的Servlet 2.3 配置描述器(deploymentdescriptor) 必须包含一个如下形式的DOCTYPE: <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
-->
<!--下面的这些约定将用于所有的J2EE描述器元素,除非有额外说明。
-在包含有PCDATA的元素(elements)中,在数据中头部和尾部的空格可以忽略。
-值为“列举类型(enumerated)”的元素中,其值是区分大小写的。
-在同一个JAR file里指明了一个文件的路径名的元素中,相对方式的的文件名(不是用“/”开始的路径名)都被认为是相对于该JAR 文件命名空间的根(root)的。绝对形式的文件名(以“/”开始的)也是指定了以该JAR文件的根为起点的的名字。一般情况下,相对形式的文件名是首选的。也有一个例外,为了servlet API的一致性,在.war文件中,绝对形式的文件名是首选的。-->
<!--web-app元素是一个web应用程序的配置描述器的根。--><!ELEMENT web-app (icon?, display-name?, description?, distributable?,context-param*, filter*, filter-mapping*, listener*, servlet*,servlet-mapping*, session-config?, mime-mapping*, welcome-file-list?,error-page*, taglib*, resource-env-ref*, resource-ref*, security-constraint*,login-config?, security-role*, env-entry*, ejb-ref*, ejb-local-ref*)>
<!--auth-constraint元素标明了允许使用该资源集合的用户角色。role-name(角色名)必须对应为该web应用程序所定义的一个security-role元素中的role-name,或者是“*”,“*”是一个专门保留的role-name,它是一个用来标明web应用程序的所有角色的语法符号。如果“*”和角色名同时出现了,那么容器就会认为它可以担任所有的角色。如果没有定义任何角色,则任何用户都无法使用该web应用程序中所包含的security-constraint描述的部分。当当决定是否有使用权限时,容器对角色名是大小写敏感的。
在security-constraint中使用--><!ELEMENT auth-constraint (description?, role-name*)>
<!--auth-method元素用来定义web容器的鉴定机制。为了获得对任何受授权约束保护的web资源的使用权限,用户必须按照所本元素定义的机制来通过鉴证。本元素可选值为:"BASIC","DIGEST","FORM","CLIENT-CERT"。
在login-config中使用。--><!ELEMENT auth-method (#PCDATA)>
<!--context-param元素包含了web应用程序的servlet上下文(servlet context)的初始化参数的声明。--><!ELEMENT context-param (param-name, param-value, description?)>
<!--description元素用来为其父元素提供文字说明。该元素用来提供所有web应用程序war文件生产者想要提供给web应用程序war文件使用者(比如Deployer(配置器))所需要的信息。典型情况下,web应用程序war文件使用者所使用的工具在处理该description元素的父元素时会显示该description元素所提供的文字说明。
在auth-constraint, context-param, ejb-local-ref, ejb-ref,env-entry, filter,init-param, resource-env-ref, resource-ref, run-as,security-role, security-role-ref, servlet, user-data-constraint,web-app, web-resource-collection中使用。-->
<!ELEMENT description (#PCDATA)>
<!--display-name元素包含一个用来给工具显示用的短名。该元素的值没有唯一性要求。
在filter, security-constraint, servlet, web-app中使用
Example:
<display-name>Employee Self Service</display-name>--><!ELEMENT display-name (#PCDATA)>
<!--distributable元素在一个web应用程序配置描述器中的出现标明了该web应用程序可以配置到分布式的servlet容器中。
在web-app中使用--><!ELEMENT distributable EMPTY>
<!--ejb-link元素用来标明一个EJB引用(EJB reference)是连接到一个enterprise bean的。ejb-link元素里的名字由一个包含了所引用的ejb的ejb-jar文件的路径名和所应用的ejb名组成,ejb名在ejb-jar路径名之后,中间用一个"#"隔开。该路径名是相对于引用了该enterprise bean的web应用程序所在的war文件的。这个元素允许多个enterprise beans用同个ejb-name来唯一鉴别。(This allows multiple enterprise beans with the same ejb-name to be uniquely identified.)
在 ejb-local-ref, ejb-ref中使用
Examples:
<ejb-link>EmployeeRecord</ejb-link>
<ejb-link>../products/product.jar#ProductEJB</ejb-link>
--><!ELEMENT ejb-link (#PCDATA)>
<!--ejb-local-ref元素是用来声明一个对enterprise bean的本地 home的引用。该声明由以下几部分组成: - 一个可选的说明(description) - 在引用了该enterprise bean的web应用程序的代码中所使用的该EJB的引用名。 - 所引用的enterprise bean所期望的类型。(the expected type of the referenced enterprise bean) - 所期望的所引用的enterprise bean的本地 home和本地接口。(the expected local home and local interfaces of the referenced enterprise bean) - 可选的ejb-link信息,用来标明所引用的enterprise bean。
在 web-app中使用--><!ELEMENT ejb-local-ref (description?, ejb-ref-name, ejb-ref-type, local-home, local, ejb-link?)>
<!--ejb-ref元素是用来声明一个对enterprise bean的home的引用。该声明由以下几部分组成: - 一个可选的说明(description) - 在引用了该enterprise bean的web应用程序的代码中所使用的该EJB的引用名。 - 所引用的enterprise bean所期望的类型。(the expected type of the referenced enterprise bean) - 所期望的所引用的enterprise bean的home和远程接口。(the expected home and remote interfaces of the referenced enterprise bean) - 可选的ejb-link信息,用来标明所引用的enterprise bean。
在web-app中使用--><!ELEMENT ejb-ref (description?, ejb-ref-name, ejb-ref-type, home, remote, ejb-link?)>
<!--ejb-ref-name元素包含了一个EJB引用的名字。EJB引用是该web应用程序环境中的一个实体并且是和java:comp/env上下文(context)关联的。在该wen应用程序中,该名字必须是唯一的。
推荐在名字前面加上一个“ejb/”的前缀。
在ejb-local-ref, ejb-ref中使用。
Example:
<ejb-ref-name>ejb/Payroll</ejb-ref-name>--><!ELEMENT ejb-ref-name (#PCDATA)>
<!--ejb-ref-type 元素包含了所引用enterprise bean的期望类型
它必须是以下之一 <ejb-ref-type>Entity</ejb-ref-type> <ejb-ref-type>Session</ejb-ref-type>
在ejb-local-ref,ejb-ref中使用--><!ELEMENT ejb-ref-type (#PCDATA)>
<!--env-entry元素的内容是一个web应用程序的环境入口(environment entry)的声明。该声明由一个可选的描述,该环境入口的名字,和一个可选的值组成。如果值没有指定,则必须在配置的时候提供一个。--><!ELEMENT env-entry (description?, env-entry-name, env-entry-value?,env-entry-type)>
<!--env-entry-name 元素的内容是一个web应用程序的环境入口的名字。该名字是一个和java:comp/env 上下文(context)相关的JNDI名字。该名字在一个web应用程序中必须是唯一的。
Example:
<env-entry-name>minAmount</env-entry-name>
在 env-entry中使用--><!ELEMENT env-entry-name (#PCDATA)>
<!--env-entry-type 元素的内容是该web应用程序代码所期望的环境入口的值的完全形式(fully-qualified)的Java类型。
其可选值有以下几个:
java.lang.Boolean java.lang.Byte java.lang.Character java.lang.String java.lang.Short java.lang.Integer java.lang.Long java.lang.Float java.lang.Double
在env-entry中使用--><!ELEMENT env-entry-type (#PCDATA)>
<!--env-entry-value元素的内容是一个web应用程序的环境入口的值。该值必须是能满足所指定的类型的只需要一个String参数的构造器的有效的String,或者是一个单独的字符,这个时候所指定的类型为必须java.lang.Character。
Example:
<env-entry-value>100.00</env-entry-value>
在 env-entry中使用--><!ELEMENT env-entry-value (#PCDATA)>
<!--error-code元素的内容是一个HTTP错误字,比如:404
在error-page中使用<!ELEMENT error-code (#PCDATA)>
<!--error-page元素的内容是一个错误代码或者例外类型和该web应用程序里面的一个资源的路径的映射。
在web-app中使用--><!ELEMENT error-page ((error-code | exception-type), location)>
<!--exception-type元素的内容是一个Java 例外类型的完全形式的类名。
在error-page中使用--><!ELEMENT exception-type (#PCDATA)>
<!--extension元素的内容是一个描述了一个扩展名的字符串。比如:“txt”
在mime-mapping中使用--><!ELEMENT extension (#PCDATA)>
<!--filter 元素声明了web应用程序里的一个filter。通过filter-name的值作为引用,在filter-mapping元素里,filter被映射到一个Servlet或者是一个URL范式上。通过FilterConfig接口,filter可以使用配置描述器所声明的初始化参数。
在web-app中使用--><!ELEMENT filter (icon?,filter-name,display-name?, description?,filter-class,init-param*)>
<!--filter-class的内容是该filter的类名的全称。
在filter中使用--><!ELEMENT filter-class(#PCDATA)>
<!--filter-mapping元素声明了在wen应用程序里面的filter映射。容器根据filter-mapping声明来决定哪些filter按照什么顺序应用于一个请求上。容器匹配按照正常方式访问一个Servlet的请求URI。然后根据所有filter-mapping的servlet-name或者是url-pattern来决定哪个filter可以应用到该URI之上。决定filter调用顺序的是适合该URI的filter-mapping列表中的filter顺序。filter-name的值必须得是该配置描述器里面的filter声明的子元素filter-name的值。
在web-app中使用--><!ELEMENT filter-mapping(filter-name, (url-pattern | servlet-name))>
<!--filter的逻辑名。这个名字是用来映射filter的,在web应用程序里各个filter-name是唯一的。
在filter,filter-mapping中使用--><!ELEMENT filter-name(#PCDATA)>
<!--form-error-page 元素定义了在web应用程序里能找到登陆失败时所显示的错误页面的位置。路径名的形式是相对于该WAR文件的根以/打头。
在form-login-config中使用--><!ELEMENT form-error-page (#PCDATA)>
<!--form-login-config元素定义了以form方式的鉴定机制所需要使用的登陆和错误页面。如果没有使用以form为基础形式的鉴定机制,则该元素会被忽略。
在login-config中使用--><!ELEMENT form-login-config (form-login-page, form-error-page)>
<!--form-login-page元素定义了在该web应用程序的能找到登陆页面可以的位置。路径名的形式是相对于该WAR文件的根以/打头。
在form-login-config中使用--><!ELEMENT form-login-page (#PCDATA)>
<!--home元素的内容是enterprise beans的home 接口的完全形式的名字。
在ejb-ref中使用
Example:
<home>com.aardvark.payroll.PayrollHome</home>--><!ELEMENT home (#PCDATA)>
<!--http-method元素的内容是一个HTTP方法(GET|POST|...)。
在web-resource-coloction中使用--><!ELEMENT http-method (#PCDATA)>
<!--icon元素的内容是用来在GUI工具里代表其父元素的,指定文件名字的小的和大的,GIF或者JPEGicon图片的small-icon和large-icon元素。
在filter,servlet,web-app中使用--><!ELEMENT icon(small-icon?, large-icon?)>
<!--init-param元素的内容是一个作为servlet的初始化参数的名值对。
在filter,servlet中使用--><!ELEMENT init-param (param-name, param-value, description?)>
<!--jsp-file元素的内容是一个以/打头的指向该web应用程序里的一个JSP文件的完整路径。
在servlet中使用--><!ELEMENT jsp-file (#PCDATA)>
<!--large-icon元素的内容是一个32x32像素的icon图片文件的文件名。该文件名是一个相对于该web应用程序的war文件的路径名。
该图片文件可以是JPEG格式,也可以是GIF格式。它是由图形工具使用的。
在icon中使用
Example:
<large-icon>employee-service-icon32x32.jpg</large-icon>--><!ELEMENT large-icon (#PCDATA)>
<!--listener元素标明了一个web应用程序的listener bean的配置属性。
在web-app中使用--><!ELEMENT listener (listener-class)>
<!--listener-class声明了该应用程序里一个必须要注册为该web应用程序listener bean的一个类。其值为该listener类的完全形式的类名。
在listener中使用--><!ELEMENT listener-class(#PCDATA)>
<!--load-on-startup元素标明了该servlet必须得在该web应用程序开始运行的时候被装入(初始化一个对象,并调用该servlet的init()方法)。其值为一个可选的整数,标明了该servlet被载入的次序。如果值为一个负整数或者该元素不出现的话,则容器可以在其选定的任何时候载入该servlet。如果该值是一个正整数或者是零,则容器必须在启动该应用程序的时候载入并初始化该servlet。容器必须保证用小的整数标明的servlet比用大的整数标明的servlet先载入。容器可以在用同个整数标明的servlet中自由的选择载入次序。
在srvlet中使用--><!ELEMENT load-on-startup (#PCDATA)>
<!--local元素的内容是该enterprise bean的本地接口的完全形式的名字。
在ejb-local-ref中使用
--><!ELEMENT local (#PCDATA)>
<!--local-home元素的内容是该enterprise bean的本地home接口的完全形式的名字。
在ejb-local-ref中使用--><!ELEMENT local-home (#PCDATA)>
<!--location元素的内容是该web应用程序里的资源的位置,该位置是一个以“/”打头的相对于该web应用程序的根的相对路径。
在error-page中使用--><!ELEMENT location (#PCDATA)>
<!--login-config 元素的作用是配置该应用程序中应该使用什么身份鉴定方法,所使用的域名(realm name),还有form登陆机制所需要的一些属性。
在web-app中使用--><!ELEMENT login-config (auth-method?, realm-name?, form-login-config?)>
<!--mime-mapping 元素定义了一个在后缀名和mime类型之间的映射。
在web-app中使用--><!ELEMENT mime-mapping (extension, mime-type)>
<!--mime-type元素的内容是一个规定了的mime类型。比如:“text/plain”。--><!ELEMENT mime-type (#PCDATA)>
<!--param-name元素的内容是一个参数的名字。每个参数名字在该wenb应用程序中必须是唯一的。
在context-param,init-param中使用--><!ELEMENT param-name (#PCDATA)>
<!--param-value元素的内容是该参数的值。
在context-param,init-param中使用--><!ELEMENT param-value (#PCDATA)>
<!--realm-name元素指定了以HTTP为基础的身份鉴定中所用的域名。
在login-config中使用--><!ELEMENT realm-name (#PCDATA)>
<!--remote元素的内容是该enterprise bean的远程接口的完全形式的名字。Example:
<remote>com.wombat.empl.EmployeeService</remote>--><!ELEMENT remote (#PCDATA)>
<!--res-auth元素指定了web应用程序的代码中是否包含有注册到资源管理器上的程序,或者指定了容器是否可以因为web应用程序的需要而注册到资源管理器上。如果是后者,则容器将会使用配置者所提供的信息。
其值必须为一下两种之一:
<res-auth>Application</res-auth> <res-auth>Container</res-auth>在resource-ref中使用--><!ELEMENT res-auth (#PCDATA)>
<!--res-ref-name元素指定了一个资源管理器连接工厂引用的名字。这个名字是一个相对于java:comp/env上下文(context)的JNDI名字。在一个web应用程序里,该名字必须是唯一的。
在resource-ref中使用<!ELEMENT res-ref-name (#PCDATA)>
<!--res-sharing-scope元素指定了是否能共享通过资源管理器连接工厂引用得到的连接。如果指定了该元素,则其值必须为以下两者之一:
<res-sharing-scope>Shareable</res-sharing-scope> <res-sharing-scope>Unshareable</res-sharing-scope>
默认值是 Shareable在resource-ref中使用--><!ELEMENT res-sharing-scope (#PCDATA)>
<!--res-type 元素定义了数据源的类型。该类型必须为可以为该数据源所实现(be implemented)的Java语言的类或者接口的完全形式的名字。
在resource-ref中使用--><!ELEMENT res-type (#PCDATA)>
<!--resource-env-ref元素的内容是一个web应用程序对一个和一个web应用程序环境里的资源联合了的管理对象的应用。它由以下几个组成:一个可选的描述,该资源的环境引用的名字,和一个该web应用程序代码所需要的资源环境引用类型的指明。
在web-app中使用
Example:
<resource-env-ref> <resource-env-ref-name>jms/StockQueue</resource-env-ref-name> <resource-env-ref-type>javax.jms.Queue</resource-env-ref-type></resource-env-ref>--><!ELEMENT resource-env-ref (description?, resource-env-ref-name, resource-env-ref-type)>
<!--resource-env-ref-name元素指定了一个资源环境引用的名字;它的值是该web应用程序代码中所使用的环境实体的名字。该名字是一个和java:comp/env上下文(context)相关联的JNDI名字,它必须在该web应用程序中唯一。
在resource-env-ref中使用--><!ELEMENT resource-env-ref-name (#PCDATA)>
<!--resource-env-ref-type元素指定了一个资源环境引用的类型。它是一个Java语言类型或者接口的完全形式的名字。
在resource-evn-ref中使用--><!ELEMENT resource-env-ref-type (#PCDATA)>
<!--resource-ref元素的内容是一个对web应用程序对一个外部资源的引用。它由一个可选的描述,一个资源管理器连接工厂引用的名字,web应用程序代码中所需要的资源管理器连接工厂的类型指示,应用程序或者容器的身份鉴证的类型和一个可选的从该资源所得连接得可共享性说明(其值为Shareable或者是Unchareable)。
在web-app中使用
Example:
<resource-ref> <res-ref-name>jdbc/EmployeeAppDB</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> </resource-ref>--><!ELEMENT resource-ref (description?, res-ref-name, res-type, res-auth, res-sharing-scope?)>
<!--role-link元素是一个对已定义安全角色得引用。该元素必须包含有在security-role元素中定义的安全角色之一的名字。
在security-role-ref中使用--><!ELEMENT role-link (#PCDATA)>
<!--role-name元素的内容是一个安全角色的名字。
该名字必须符合NMTOKEN词法规则。
在auth-constraint, run-as, security-role, security-role-ref中使用--><!ELEMENT role-name (#PCDATA)>
<!--run-as 元素指定了该web应用程序运行时所需用的运行身份。它由一个可选的描述和一个安全角色的名字组成。
在servlet中使用--><!ELEMENT run-as (description?, role-name)>
<!--security-constaint元素用来在联合一个或多个web资源集合和安全约束时使用。
在web-app中使用--><!ELEMENT security-constraint (display-name?, web-resource-collection+,auth-constraint?, user-data-constraint?)>
<!--security-role元素定义了一个安全角色。该定义定义由一个可选的对该安全角色的说明和该安全角色的名字组成。
在web-app中使用
Example:
<security-role> <description> This role includes all employees who are authorized to access the employee service application. </description> <role-name>employee</role-name> </security-role>--><!ELEMENT security-role (description?, role-name)>
<!--security-role-ref 元素的内容是一个该web应用程序代码里的一个安全角色引用的声明。该声明由一个可选的描述,代码中所用到的该安全角色的名字和一个可选的指向该安全角色的链接。如果该安全角色没有指定,则配置者必须选择一个适当的安全角色。
role-name元素的值必须是一个在EJBContext.isCallerInrole(String roleName)方法或者是HttpServletRequest.isUserInRole(String role)方法中的参数字符串。
在servlet中使用
--><!ELEMENT security-role-ref (description?, role-name, role-link?)>
<!--servlet元素的内容是一个servlet的数据声明。如果指定了一个jsp文件而且load-on-startup元素出现了,则该JSP必须被预编译并载入。
在web-app中使用--><!ELEMENT servlet (icon?, servlet-name, display-name?, description?,(servlet-class|jsp-file), init-param*, load-on-startup?, run-as?, security-role-ref*)>
<!--servlet-class元素的内容是该servlet类名的完全形式。
在servlet中使用--><!ELEMENT servlet-class (#PCDATA)>
<!--servlet-mapping元素定义了一个在一个servlet和一个url范式之间的映射。
在web-app中使用--><!ELEMENT servlet-mapping (servlet-name, url-pattern)>
<!--servlet-name元素的内容是该servlet的规范的名字,每个servlet名字在其所在web应用程序中必须是唯一的。
在filter-mapping, servlet, servlet-mapping中使用--><!ELEMENT servlet-name (#PCDATA)>
<!--session-config元素定义了该web应用程序的session参数。
在web-app中使用--><!ELEMENT session-config (session-timeout?)>
<!--session-timeout元素定义了在该web应用程序中创造的session的默认超时时间间隔。该时间间隔必须是一个以分钟为单文的整数。如果该时间间隔是0或者更小,则容器默认为session永远不会超时。
在session-config中使用--><!ELEMENT session-timeout (#PCDATA)>
<!--small-icon元素的内容是一个16x16像素的icon图片文件的文件名。该文件名是一个相对于该web应用程序的war文件的路径名。
该图片文件可以是JPEG格式,也可以是GIF格式。它是由图形工具使用的。
在icon中使用
Example:
<small-icon>employee-service-icon16x16.jpg</small-icon>--><!ELEMENT small-icon (#PCDATA)>
<!--taglib元素是用来描述一个JSP标志库的。
在web-app中使用--><!ELEMENT taglib (tablib-uri, taglib-location)>
<!--taglib-location元素的内容是一个能找到该标志库的描述文件的路径,如同一个相对于该web应用程序的资源。
在tablib中使用--><!ELEMENT tablib-location (#PCDATA)>
<!--tablib-uri元素描述了一个相对于web.xml文档位置的URI,唯一标志着一个该web应用程序所使用的标志库。
在tablib中使用--><!ELEMENT tablib-uri (#PCDATA)>
<!--transport-guarantee元素指定了客户端和服务器之间的信息传输方式应该是NONE, INTEGRAL还是CONFIDENTIAL。NONE表示该应用程序不需要任何传输保证。INTEGRAL表示应用程序要求在客户端和服务器端的之间传输的数据需要在一种数据不会在传输过程中被修改的传输方式传输。CONFIDENTIAL表示应用程序要求数据必须在一种防止其他实体看到传输的内容的方式中传送。大多数情况下,INTEGRAL或者CONFIDENTIAL表示需要使用SSL。
在user-data-constraint中使用--><!ELEMENT transport-guarantee (#PCDATA)>
<!--url-pattern元素的内容是映射的url范式。它必须遵守Servlet API规范的11.2节所指定的规则。
在filter-mapping,servlet-mapping,web-resource-collection中使用--><!ELEMENT url-pattern (#PCDATA)>
<!--user-data-constraint元素用来指定在客户端和容器之间的数据传输需要受到什么样的保护。
在security-constraint中使用--><!ELEMENT user-data-constraint (description?, transport-guarantee)>
<!--web-resource-collection 元素用来识别一个安全约束在一个web应用程序里所适用的资源和HTTP请求方法的一个子集。如果没有指定任何HTTP请求方法,则该安全约束对所有的HTTP请求方法有效。
在security-constraint中使用--><!ELEMENT web-resource-collection (web-resource-name, description?,url-pattern*, http-method*)>
<!--web-resource-name元素的内容是该web资源集合的名字。
在web-resource-collection中使用--><!ELEMENT web-resource-name (#PCDATA)>
<!--welcome-file元素的内容是一个默认的欢迎页面的名字,比如index.html
在welcome-file-list中使用。--><!ELEMENT welcome-file (#PCDATA)>
<!--welcome-file-list的内容是welcome-file元素的序列表。
在web-app中使用--><!ELEMENT welcome-file-list (welcome-file+)>
<!--ID机制允许用来加入额外配置信息(在标准的配置描述器以外的信息)的工具把非标准的信息存储在其他的文件上,并可以很容易的从这些工具读有的文件上引用到标准的配置描述器上的信息。
这些工具都不能把非标准的信息加入到标准的配置描述器中。-->
<!ATTLIST auth-constraint id ID #IMPLIED><!ATTLIST auth-method id ID #IMPLIED><!ATTLIST context-param id ID #IMPLIED><!ATTLIST description id ID #IMPLIED><!ATTLIST display-name id ID #IMPLIED><!ATTLIST distributable id ID #IMPLIED><!ATTLIST ejb-link id ID #IMPLIED><!ATTLIST ejb-local-ref id ID #IMPLIED><!ATTLIST ejb-ref id ID #IMPLIED><!ATTLIST ejb-ref-name id ID #IMPLIED><!ATTLIST ejb-ref-type id ID #IMPLIED><!ATTLIST env-entry id ID #IMPLIED><!ATTLIST env-entry-name id ID #IMPLIED><!ATTLIST env-entry-type id ID #IMPLIED><!ATTLIST env-entry-value id ID #IMPLIED><!ATTLIST error-code id ID #IMPLIED><!ATTLIST error-page id ID #IMPLIED><!ATTLIST exception-type id ID #IMPLIED><!ATTLIST extension id ID #IMPLIED><!ATTLIST filter id ID #IMPLIED><!ATTLIST filter-class id ID #IMPLIED><!ATTLIST filter-mapping id ID #IMPLIED><!ATTLIST filter-name id ID #IMPLIED><!ATTLIST form-error-page id ID #IMPLIED><!ATTLIST form-login-config id ID #IMPLIED><!ATTLIST form-login-page id ID #IMPLIED><!ATTLIST home id ID #IMPLIED><!ATTLIST http-method id ID #IMPLIED><!ATTLIST icon id ID #IMPLIED><!ATTLIST init-param id ID #IMPLIED><!ATTLIST jsp-file id ID #IMPLIED><!ATTLIST large-icon id ID #IMPLIED><!ATTLIST listener id ID #IMPLIED><!ATTLIST listener-class id ID #IMPLIED><!ATTLIST load-on-startup id ID #IMPLIED><!ATTLIST local id ID #IMPLIED><!ATTLIST local-home id ID #IMPLIED><!ATTLIST location id ID #IMPLIED><!ATTLIST login-config id ID #IMPLIED><!ATTLIST mime-mapping id ID #IMPLIED><!ATTLIST mime-type id ID #IMPLIED><!ATTLIST param-name id ID #IMPLIED><!ATTLIST param-value id ID #IMPLIED><!ATTLIST realm-name id ID #IMPLIED><!ATTLIST remote id ID #IMPLIED><!ATTLIST res-auth id ID #IMPLIED><!ATTLIST res-ref-name id ID #IMPLIED><!ATTLIST res-sharing-scope id ID #IMPLIED><!ATTLIST res-type id ID #IMPLIED><!ATTLIST resource-env-ref id ID #IMPLIED><!ATTLIST resource-env-ref-name id ID #IMPLIED><!ATTLIST resource-env-ref-type id ID #IMPLIED><!ATTLIST resource-ref id ID #IMPLIED><!ATTLIST role-link id ID #IMPLIED><!ATTLIST role-name id ID #IMPLIED><!ATTLIST run-as id ID #IMPLIED><!ATTLIST security-constraint id ID #IMPLIED><!ATTLIST security-role id ID #IMPLIED><!ATTLIST security-role-ref id ID #IMPLIED><!ATTLIST servlet id ID #IMPLIED><!ATTLIST servlet-class id ID #IMPLIED><!ATTLIST servlet-mapping id ID #IMPLIED><!ATTLIST servlet-name id ID #IMPLIED><!ATTLIST session-config id ID #IMPLIED><!ATTLIST session-timeout id ID #IMPLIED><!ATTLIST small-icon id ID #IMPLIED><!ATTLIST taglib id ID #IMPLIED><!ATTLIST taglib-location id ID #IMPLIED><!ATTLIST taglib-uri id ID #IMPLIED><!ATTLIST transport-guarantee id ID #IMPLIED><!ATTLIST url-pattern id ID #IMPLIED><!ATTLIST user-data-constraint id ID #IMPLIED><!ATTLIST web-app id ID #IMPLIED><!ATTLIST web-resource-collection id ID #IMPLIED><!ATTLIST web-resource-name id ID #IMPLIED><!ATTLIST welcome-file id ID #IMPLIED><!ATTLIST welcome-file-list id ID #IMPLIED>