[jboss-cvs] JBossAS SVN: r95186 - in projects/metadata/web/trunk/src/main: resources/schema and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Oct 20 11:42:08 EDT 2009


Author: remy.maucherat at jboss.com
Date: 2009-10-20 11:42:08 -0400 (Tue, 20 Oct 2009)
New Revision: 95186

Modified:
   projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/spec/Web30MetaData.java
   projects/metadata/web/trunk/src/main/resources/schema/jsp_2_0.xsd
   projects/metadata/web/trunk/src/main/resources/schema/jsp_2_1.xsd
   projects/metadata/web/trunk/src/main/resources/schema/web-app_2_4.xsd
   projects/metadata/web/trunk/src/main/resources/schema/web-app_2_5.xsd
   projects/metadata/web/trunk/src/main/resources/schema/web-common_3_0.xsd
   projects/metadata/web/trunk/src/main/resources/schema/web-facesconfig_1_2.xsd
   projects/metadata/web/trunk/src/main/resources/schema/web-jsptaglibrary_2_0.xsd
   projects/metadata/web/trunk/src/main/resources/schema/web-jsptaglibrary_2_1.xsd
Log:
- Schema update.

Modified: projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/spec/Web30MetaData.java
===================================================================
--- projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/spec/Web30MetaData.java	2009-10-20 15:38:37 UTC (rev 95185)
+++ projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/spec/Web30MetaData.java	2009-10-20 15:42:08 UTC (rev 95186)
@@ -25,7 +25,7 @@
       normalizeSpace=true)
 @XmlType(name="web-appType",
       namespace=JavaEEMetaDataConstants.JAVAEE_NS,
-      propOrder={"absoluteOrdering", "descriptionGroup", "name", "distributable", "contextParams", "filters", "filterMappings", "listeners", "servlets",
+      propOrder={"moduleName", "absoluteOrdering", "descriptionGroup", "name", "distributable", "contextParams", "filters", "filterMappings", "listeners", "servlets",
       "servletMappings", "sessionConfig", "mimeMappings", "welcomeFileList", "errorPages", "jspConfig", "securityConstraints",
       "loginConfig", "securityRoles", "jndiEnvironmentRefsGroup", "messageDestinations", "localEncodings", "absoluteOrdering"})
 public class Web30MetaData extends WebMetaData
@@ -33,6 +33,7 @@
    private static final long serialVersionUID = 1;
    private boolean metadataComplete;
    private AbsoluteOrderingMetaData absoluteOrdering;
+   private String moduleName;
 
 
    public boolean isMetadataComplete()
@@ -55,4 +56,13 @@
       this.absoluteOrdering = absoluteOrdering;
    }
 
+   public String getModuleName()
+   {
+      return moduleName;
+   }
+   public void setModuleName(String moduleName)
+   {
+      this.moduleName = moduleName;
+   }
+
 }

Modified: projects/metadata/web/trunk/src/main/resources/schema/jsp_2_0.xsd
===================================================================
--- projects/metadata/web/trunk/src/main/resources/schema/jsp_2_0.xsd	2009-10-20 15:38:37 UTC (rev 95185)
+++ projects/metadata/web/trunk/src/main/resources/schema/jsp_2_0.xsd	2009-10-20 15:42:08 UTC (rev 95186)
@@ -1,307 +1,308 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
-	    targetNamespace="http://java.sun.com/xml/ns/j2ee"
-	    xmlns:j2ee="http://java.sun.com/xml/ns/j2ee"
-	    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-	    elementFormDefault="qualified"
-	    attributeFormDefault="unqualified"
-	    version="2.0">
-  <xsd:annotation>
-    <xsd:documentation>
-      @(#)jsp_2_0.xsds	1.17 03/18/03
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:annotation>
-    <xsd:documentation>
-
-      Copyright 2002 Sun Microsystems, Inc., 901 San Antonio
-      Road, Palo Alto, California 94303, U.S.A. All rights
-      reserved.
-
-      Sun Microsystems, Inc. has intellectual property rights
-      relating to technology described in this document. In
-      particular, and without limitation, these intellectual
-      property rights may include one or more of the U.S. patents
-      listed at http://www.sun.com/patents and one or more
-      additional patents or pending patent applications in the
-      U.S. and other countries.
-
-      This document and the technology which it describes are
-      distributed under licenses restricting their use, copying,
-      distribution, and decompilation. No part of this document
-      may be reproduced in any form by any means without prior
-      written authorization of Sun and its licensors, if any.
-
-      Third-party software, including font technology, is
-      copyrighted and licensed from Sun suppliers.
-
-      Sun, Sun Microsystems, the Sun logo, Solaris, Java, J2EE,
-      JavaServer Pages, Enterprise JavaBeans and the Java Coffee
-      Cup logo are trademarks or registered trademarks of Sun
-      Microsystems, Inc. in the U.S. and other countries.
-
-      Federal Acquisitions: Commercial Software - Government Users
-      Subject to Standard License Terms and Conditions.
-
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:annotation>
-    <xsd:documentation>
-
-      This is the XML Schema for the JSP 2.0 deployment descriptor
-      types.  The JSP 2.0 schema contains all the special
-      structures and datatypes that are necessary to use JSP files
-      from a web application.
-
-      The contents of this schema is used by the web-app_2_4.xsd
-      file to define JSP specific content.
-
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:annotation>
-    <xsd:documentation>
-
-      The following conventions apply to all J2EE
-      deployment descriptor elements unless indicated otherwise.
-
-      - In elements that specify a pathname to a file within the
-	same JAR file, relative filenames (i.e., those not
-	starting with "/") are considered relative to the root of
-	the JAR file's namespace.  Absolute filenames (i.e., those
-	starting with "/") also specify names in the root of the
-	JAR file's namespace.  In general, relative names are
-	preferred.  The exception is .war files where absolute
-	names are preferred for consistency with the Servlet API.
-
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:include schemaLocation="j2ee_1_4.xsd"/>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="jsp-configType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The jsp-configType is used to provide global configuration
-	information for the JSP files in a web application. It has
-	two subelements, taglib and jsp-property-group.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="taglib"
-		   type="j2ee:taglibType"
-		   minOccurs="0"
-		   maxOccurs="unbounded"/>
-      <xsd:element name="jsp-property-group"
-		   type="j2ee:jsp-property-groupType"
-		   minOccurs="0"
-		   maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="jsp-fileType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The jsp-file element contains the full path to a JSP file
-	within the web application beginning with a `/'.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:simpleContent>
-      <xsd:restriction base="j2ee:pathType"/>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="jsp-property-groupType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The jsp-property-groupType is used to group a number of
-	files so they can be given global property information.
-	All files so described are deemed to be JSP files.  The
-	following additional properties can be described:
-
-	    - Control whether EL is ignored
-	    - Control whether scripting elements are invalid
-	    - Indicate pageEncoding information.
-	    - Indicate that a resource is a JSP document (XML)
-	    - Prelude and Coda automatic includes.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:group ref="j2ee:descriptionGroup"/>
-      <xsd:element name="url-pattern"
-		   type="j2ee:url-patternType"
-		   maxOccurs="unbounded"/>
-      <xsd:element name="el-ignored"
-		   type="j2ee:true-falseType"
-		   minOccurs="0">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    Can be used to easily set the isELIgnored
-	    property of a group of JSP pages.  By default, the
-	    EL evaluation is enabled for Web Applications using
-	    a Servlet 2.4 or greater web.xml, and disabled
-	    otherwise.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-      <xsd:element name="page-encoding"
-		   type="j2ee:string"
-		   minOccurs="0">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The valid values of page-encoding are those of the
-	    pageEncoding page directive.  It is a
-	    translation-time error to name different encodings
-	    in the pageEncoding attribute of the page directive
-	    of a JSP page and in a JSP configuration element
-	    matching the page.  It is also a translation-time
-	    error to name different encodings in the prolog
-	    or text declaration of a document in XML syntax and
-	    in a JSP configuration element matching the document.
-	    It is legal to name the same encoding through
-	    mulitple mechanisms.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-      <xsd:element name="scripting-invalid"
-		   type="j2ee:true-falseType"
-		   minOccurs="0">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    Can be used to easily disable scripting in a
-	    group of JSP pages.  By default, scripting is
-	    enabled.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-      <xsd:element name="is-xml"
-		   type="j2ee:true-falseType"
-		   minOccurs="0">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    If true, denotes that the group of resources
-	    that match the URL pattern are JSP documents,
-	    and thus must be interpreted as XML documents.
-	    If false, the resources are assumed to not
-	    be JSP documents, unless there is another
-	    property group that indicates otherwise.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-      <xsd:element name="include-prelude"
-		   type="j2ee:pathType"
-		   minOccurs="0"
-		   maxOccurs="unbounded">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The include-prelude element is a context-relative
-	    path that must correspond to an element in the
-	    Web Application.  When the element is present,
-	    the given path will be automatically included (as
-	    in an include directive) at the beginning of each
-	    JSP page in this jsp-property-group.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-      <xsd:element name="include-coda"
-		   type="j2ee:pathType"
-		   minOccurs="0"
-		   maxOccurs="unbounded">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The include-coda element is a context-relative
-	    path that must correspond to an element in the
-	    Web Application.  When the element is present,
-	    the given path will be automatically included (as
-	    in an include directive) at the end of each
-	    JSP page in this jsp-property-group.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="taglibType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The taglibType defines the syntax for declaring in
-	the deployment descriptor that a tag library is
-	available to the application.  This can be done
-	to override implicit map entries from TLD files and
-	from the container.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="taglib-uri"
-		   type="j2ee:string">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    A taglib-uri element describes a URI identifying a
-	    tag library used in the web application.  The body
-	    of the taglib-uri element may be either an
-	    absolute URI specification, or a relative URI.
-	    There should be no entries in web.xml with the
-	    same taglib-uri value.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-
-      <xsd:element name="taglib-location"
-		   type="j2ee:pathType">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    the taglib-location element contains the location
-	    (as a resource relative to the root of the web
-	    application) where to find the Tag Library
-	    Description file for the tag library.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-</xsd:schema>
-
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+	    targetNamespace="http://java.sun.com/xml/ns/j2ee"
+	    xmlns:j2ee="http://java.sun.com/xml/ns/j2ee"
+	    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+	    elementFormDefault="qualified"
+	    attributeFormDefault="unqualified"
+	    version="2.0">
+  <xsd:annotation>
+    <xsd:documentation>
+      @(#)jsp_2_0.xsds	1.17 03/18/03
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      Copyright 2003 Sun Microsystems, Inc., 901 San Antonio
+      Road, Palo Alto, California 94303, U.S.A. All rights
+      reserved.
+
+      Sun Microsystems, Inc. has intellectual property rights
+      relating to technology described in this document. In
+      particular, and without limitation, these intellectual
+      property rights may include one or more of the U.S. patents
+      listed at http://www.sun.com/patents and one or more
+      additional patents or pending patent applications in the
+      U.S. and other countries.
+
+      This document and the technology which it describes are
+      distributed under licenses restricting their use, copying,
+      distribution, and decompilation. No part of this document
+      may be reproduced in any form by any means without prior
+      written authorization of Sun and its licensors, if any.
+
+      Third-party software, including font technology, is
+      copyrighted and licensed from Sun suppliers.
+
+      Sun, Sun Microsystems, the Sun logo, Solaris, Java, J2EE,
+      JavaServer Pages, Enterprise JavaBeans and the Java Coffee
+      Cup logo are trademarks or registered trademarks of Sun
+      Microsystems, Inc. in the U.S. and other countries.
+
+      Federal Acquisitions: Commercial Software - Government Users
+      Subject to Standard License Terms and Conditions.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      This is the XML Schema for the JSP 2.0 deployment descriptor
+      types.  The JSP 2.0 schema contains all the special
+      structures and datatypes that are necessary to use JSP files
+      from a web application.
+
+      The contents of this schema is used by the web-app_2_4.xsd
+      file to define JSP specific content.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      The following conventions apply to all J2EE
+      deployment descriptor elements unless indicated otherwise.
+
+      - In elements that specify a pathname to a file within the
+	same JAR file, relative filenames (i.e., those not
+	starting with "/") are considered relative to the root of
+	the JAR file's namespace.  Absolute filenames (i.e., those
+	starting with "/") also specify names in the root of the
+	JAR file's namespace.  In general, relative names are
+	preferred.  The exception is .war files where absolute
+	names are preferred for consistency with the Servlet API.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:include schemaLocation="j2ee_1_4.xsd"/>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="jsp-configType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The jsp-configType is used to provide global configuration
+	information for the JSP files in a web application. It has
+	two subelements, taglib and jsp-property-group.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="taglib"
+		   type="j2ee:taglibType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="jsp-property-group"
+		   type="j2ee:jsp-property-groupType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="jsp-fileType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The jsp-file element contains the full path to a JSP file
+	within the web application beginning with a `/'.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:pathType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="jsp-property-groupType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The jsp-property-groupType is used to group a number of
+	files so they can be given global property information.
+	All files so described are deemed to be JSP files.  The
+	following additional properties can be described:
+
+	    - Control whether EL is ignored
+	    - Control whether scripting elements are invalid
+	    - Indicate pageEncoding information.
+	    - Indicate that a resource is a JSP document (XML)
+	    - Prelude and Coda automatic includes.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="j2ee:descriptionGroup"/>
+      <xsd:element name="url-pattern"
+		   type="j2ee:url-patternType"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="el-ignored"
+		   type="j2ee:true-falseType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Can be used to easily set the isELIgnored
+	    property of a group of JSP pages.  By default, the
+	    EL evaluation is enabled for Web Applications using
+	    a Servlet 2.4 or greater web.xml, and disabled
+	    otherwise.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="page-encoding"
+		   type="j2ee:string"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The valid values of page-encoding are those of the
+	    pageEncoding page directive.  It is a
+	    translation-time error to name different encodings
+	    in the pageEncoding attribute of the page directive
+	    of a JSP page and in a JSP configuration element
+	    matching the page.  It is also a translation-time
+	    error to name different encodings in the prolog
+	    or text declaration of a document in XML syntax and
+	    in a JSP configuration element matching the document.
+	    It is legal to name the same encoding through
+	    mulitple mechanisms.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="scripting-invalid"
+		   type="j2ee:true-falseType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Can be used to easily disable scripting in a
+	    group of JSP pages.  By default, scripting is
+	    enabled.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="is-xml"
+		   type="j2ee:true-falseType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    If true, denotes that the group of resources
+	    that match the URL pattern are JSP documents,
+	    and thus must be interpreted as XML documents.
+	    If false, the resources are assumed to not
+	    be JSP documents, unless there is another
+	    property group that indicates otherwise.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="include-prelude"
+		   type="j2ee:pathType"
+		   minOccurs="0"
+		   maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The include-prelude element is a context-relative
+	    path that must correspond to an element in the
+	    Web Application.  When the element is present,
+	    the given path will be automatically included (as
+	    in an include directive) at the beginning of each
+	    JSP page in this jsp-property-group.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="include-coda"
+		   type="j2ee:pathType"
+		   minOccurs="0"
+		   maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The include-coda element is a context-relative
+	    path that must correspond to an element in the
+	    Web Application.  When the element is present,
+	    the given path will be automatically included (as
+	    in an include directive) at the end of each
+	    JSP page in this jsp-property-group.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="taglibType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The taglibType defines the syntax for declaring in
+	the deployment descriptor that a tag library is
+	available to the application.  This can be done
+	to override implicit map entries from TLD files and
+	from the container.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="taglib-uri"
+		   type="j2ee:string">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    A taglib-uri element describes a URI identifying a
+	    tag library used in the web application.  The body
+	    of the taglib-uri element may be either an
+	    absolute URI specification, or a relative URI.
+	    There should be no entries in web.xml with the
+	    same taglib-uri value.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="taglib-location"
+		   type="j2ee:pathType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    the taglib-location element contains the location
+	    (as a resource relative to the root of the web
+	    application) where to find the Tag Library
+	    Description file for the tag library.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+</xsd:schema>
+

Modified: projects/metadata/web/trunk/src/main/resources/schema/jsp_2_1.xsd
===================================================================
--- projects/metadata/web/trunk/src/main/resources/schema/jsp_2_1.xsd	2009-10-20 15:38:37 UTC (rev 95185)
+++ projects/metadata/web/trunk/src/main/resources/schema/jsp_2_1.xsd	2009-10-20 15:42:08 UTC (rev 95186)
@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
+
 <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
 	    targetNamespace="http://java.sun.com/xml/ns/javaee"
 	    xmlns:javaee="http://java.sun.com/xml/ns/javaee"
@@ -15,7 +16,7 @@
   <xsd:annotation>
     <xsd:documentation>
 
-      Copyright 2003-2006 Sun Microsystems, Inc.
+      Copyright 2003-2005 Sun Microsystems, Inc.
       4150 Network Circle
       Santa Clara, California 95054
       U.S.A

Modified: projects/metadata/web/trunk/src/main/resources/schema/web-app_2_4.xsd
===================================================================
--- projects/metadata/web/trunk/src/main/resources/schema/web-app_2_4.xsd	2009-10-20 15:38:37 UTC (rev 95185)
+++ projects/metadata/web/trunk/src/main/resources/schema/web-app_2_4.xsd	2009-10-20 15:42:08 UTC (rev 95186)
@@ -1,1148 +1,1234 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://java.sun.com/xml/ns/j2ee" xmlns:j2ee="http://java.sun.com/xml/ns/j2ee" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="2.4">
-  <xsd:annotation>
-    <xsd:documentation>
-      @(#)web-app_2_4.xsds	1.61 04/04/16
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:annotation>
-    <xsd:documentation>
-
-      DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
-
-      Copyright 2003-2007 Sun Microsystems, Inc. All rights reserved.
-
-      The contents of this file are subject to the terms of either the
-      GNU General Public License Version 2 only ("GPL") or the Common
-      Development and Distribution License("CDDL") (collectively, the
-      "License").  You may not use this file except in compliance with
-      the License. You can obtain a copy of the License at
-      https://glassfish.dev.java.net/public/CDDL+GPL.html or
-      glassfish/bootstrap/legal/LICENSE.txt.  See the License for the
-      specific language governing permissions and limitations under the
-      License.
-
-      When distributing the software, include this License Header
-      Notice in each file and include the License file at
-      glassfish/bootstrap/legal/LICENSE.txt.  Sun designates this
-      particular file as subject to the "Classpath" exception as
-      provided by Sun in the GPL Version 2 section of the License file
-      that accompanied this code.  If applicable, add the following
-      below the License Header, with the fields enclosed by brackets []
-      replaced by your own identifying information:
-      "Portions Copyrighted [year] [name of copyright owner]"
-
-      Contributor(s):
-
-      If you wish your version of this file to be governed by only the
-      CDDL or only the GPL Version 2, indicate your decision by adding
-      "[Contributor] elects to include this software in this
-      distribution under the [CDDL or GPL Version 2] license."  If you
-      don't indicate a single choice of license, a recipient has the
-      option to distribute your version of this file under either the
-      CDDL, the GPL Version 2 or to extend the choice of license to its
-      licensees as provided above.  However, if you add GPL Version 2
-      code and therefore, elected the GPL Version 2 license, then the
-      option applies only if the new code is made subject to such
-      option by the copyright holder.
-
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:annotation>
-    <xsd:documentation>
-      <![CDATA[
-
-	This is the XML Schema for the Servlet 2.4 deployment descriptor.
-	The deployment descriptor must be named "WEB-INF/web.xml" in the
-	web application's war file.  All Servlet deployment descriptors
-	must indicate the web application schema by using the J2EE
-	namespace:
-
-	http://java.sun.com/xml/ns/j2ee
-
-	and by indicating the version of the schema by
-	using the version element as shown below:
-
-	    <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
-	      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	      xsi:schemaLocation="..."
-	      version="2.4">
-	      ...
-	    </web-app>
-
-	The instance documents may indicate the published version of
-	the schema using the xsi:schemaLocation attribute for J2EE
-	namespace with the following location:
-
-	http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd
-
-	]]>
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:annotation>
-    <xsd:documentation>
-
-      The following conventions apply to all J2EE
-      deployment descriptor elements unless indicated otherwise.
-
-      - In elements that specify a pathname to a file within the
-	same JAR file, relative filenames (i.e., those not
-	starting with "/") are considered relative to the root of
-	the JAR file's namespace.  Absolute filenames (i.e., those
-	starting with "/") also specify names in the root of the
-	JAR file's namespace.  In general, relative names are
-	preferred.  The exception is .war files where absolute
-	names are preferred for consistency with the Servlet API.
-
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:include schemaLocation="j2ee_1_4.xsd"/>
-  <xsd:include schemaLocation="jsp_2_0.xsd"/>
-
-
-<!-- **************************************************** -->
-
-
-  <xsd:element name="web-app" type="j2ee:web-appType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The web-app element is the root of the deployment
-	descriptor for a web application.  Note that the sub-elements
-	of this element can be in the arbitrary order. Because of
-	that, the multiplicity of the elements of distributable,
-	session-config, welcome-file-list, jsp-config, login-config,
-	and locale-encoding-mapping-list was changed from "?" to "*"
-	in this schema.  However, the deployment descriptor instance
-	file must not contain multiple elements of session-config,
-	jsp-config, and login-config. When there are multiple elements of
-	welcome-file-list or locale-encoding-mapping-list, the container
-	must concatinate the element contents.  The multiple occurance
-	of the element distributable is redundant and the container
-	treats that case exactly in the same way when there is only
-	one distributable.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:unique name="web-app-servlet-name-uniqueness">
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  The servlet element contains the name of a servlet.
-	  The name must be unique within the web application.
-
-	</xsd:documentation>
-      </xsd:annotation>
-      <xsd:selector xpath="j2ee:servlet"/>
-      <xsd:field xpath="j2ee:servlet-name"/>
-    </xsd:unique>
-
-    <xsd:unique name="web-app-filter-name-uniqueness">
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  The filter element contains the name of a filter.
-	  The name must be unique within the web application.
-
-	</xsd:documentation>
-      </xsd:annotation>
-      <xsd:selector xpath="j2ee:filter"/>
-      <xsd:field xpath="j2ee:filter-name"/>
-    </xsd:unique>
-
-    <xsd:unique name="web-app-ejb-local-ref-name-uniqueness">
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  The ejb-local-ref-name element contains the name of an EJB
-	  reference. The EJB reference is an entry in the web
-	  application's environment and is relative to the
-	  java:comp/env context.  The name must be unique within
-	  the web application.
-
-	  It is recommended that name is prefixed with "ejb/".
-
-	</xsd:documentation>
-      </xsd:annotation>
-      <xsd:selector xpath="j2ee:ejb-local-ref"/>
-      <xsd:field xpath="j2ee:ejb-ref-name"/>
-    </xsd:unique>
-
-    <xsd:unique name="web-app-ejb-ref-name-uniqueness">
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  The ejb-ref-name element contains the name of an EJB
-	  reference. The EJB reference is an entry in the web
-	  application's environment and is relative to the
-	  java:comp/env context.  The name must be unique within
-	  the web application.
-
-	  It is recommended that name is prefixed with "ejb/".
-
-	</xsd:documentation>
-      </xsd:annotation>
-      <xsd:selector xpath="j2ee:ejb-ref"/>
-      <xsd:field xpath="j2ee:ejb-ref-name"/>
-    </xsd:unique>
-
-    <xsd:unique name="web-app-resource-env-ref-uniqueness">
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  The resource-env-ref-name element specifies the name of
-	  a resource environment reference; its value is the
-	  environment entry name used in the web application code.
-	  The name is a JNDI name relative to the java:comp/env
-	  context and must be unique within a web application.
-
-	</xsd:documentation>
-      </xsd:annotation>
-      <xsd:selector xpath="j2ee:resource-env-ref"/>
-      <xsd:field xpath="j2ee:resource-env-ref-name"/>
-    </xsd:unique>
-
-    <xsd:unique name="web-app-message-destination-ref-uniqueness">
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  The message-destination-ref-name element specifies the name of
-	  a message destination reference; its value is the
-	  environment entry name used in the web application code.
-	  The name is a JNDI name relative to the java:comp/env
-	  context and must be unique within a web application.
-
-	</xsd:documentation>
-      </xsd:annotation>
-      <xsd:selector xpath="j2ee:message-destination-ref"/>
-      <xsd:field xpath="j2ee:message-destination-ref-name"/>
-    </xsd:unique>
-
-    <xsd:unique name="web-app-res-ref-name-uniqueness">
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  The res-ref-name element specifies the name of a
-	  resource manager connection factory reference.  The name
-	  is a JNDI name relative to the java:comp/env context.
-	  The name must be unique within a web application.
-
-	</xsd:documentation>
-      </xsd:annotation>
-      <xsd:selector xpath="j2ee:resource-ref"/>
-      <xsd:field xpath="j2ee:res-ref-name"/>
-    </xsd:unique>
-
-    <xsd:unique name="web-app-env-entry-name-uniqueness">
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  The env-entry-name element contains the name of a web
-	  application's environment entry.  The name is a JNDI
-	  name relative to the java:comp/env context.  The name
-	  must be unique within a web application.
-
-	</xsd:documentation>
-      </xsd:annotation>
-
-      <xsd:selector xpath="j2ee:env-entry"/>
-      <xsd:field xpath="j2ee:env-entry-name"/>
-    </xsd:unique>
-
-    <xsd:key name="web-app-role-name-key">
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  A role-name-key is specified to allow the references
-	  from the security-role-refs.
-
-	</xsd:documentation>
-      </xsd:annotation>
-      <xsd:selector xpath="j2ee:security-role"/>
-      <xsd:field xpath="j2ee:role-name"/>
-    </xsd:key>
-
-    <xsd:keyref name="web-app-role-name-references" refer="j2ee:web-app-role-name-key">
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  The keyref indicates the references from
-	  security-role-ref to a specified role-name.
-
-	</xsd:documentation>
-      </xsd:annotation>
-      <xsd:selector xpath="j2ee:servlet/j2ee:security-role-ref"/>
-      <xsd:field xpath="j2ee:role-link"/>
-    </xsd:keyref>
-  </xsd:element>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="auth-constraintType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The auth-constraintType indicates the user roles that
-	should be permitted access to this resource
-	collection. The role-name used here must either correspond
-	to the role-name of one of the security-role elements
-	defined for this web application, or be the specially
-	reserved role-name "*" that is a compact syntax for
-	indicating all roles in the web application. If both "*"
-	and rolenames appear, the container interprets this as all
-	roles.  If no roles are defined, no user is allowed access
-	to the portion of the web application described by the
-	containing security-constraint.  The container matches
-	role names case sensitively when determining access.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="description" type="j2ee:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="role-name" type="j2ee:role-nameType" minOccurs="0" maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="auth-methodType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The auth-methodType is used to configure the authentication
-	mechanism for the web application. As a prerequisite to
-	gaining access to any web resources which are protected by
-	an authorization constraint, a user must have authenticated
-	using the configured mechanism. Legal values are "BASIC",
-	"DIGEST", "FORM", "CLIENT-CERT", or a vendor-specific
-	authentication scheme.
-
-	Used in: login-config
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:simpleContent>
-      <xsd:restriction base="j2ee:string"/>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="dispatcherType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The dispatcher has four legal values: FORWARD, REQUEST, INCLUDE,
-	and ERROR. A value of FORWARD means the Filter will be applied
-	under RequestDispatcher.forward() calls.  A value of REQUEST
-	means the Filter will be applied under ordinary client calls to
-	the path or servlet. A value of INCLUDE means the Filter will be
-	applied under RequestDispatcher.include() calls.  A value of
-	ERROR means the Filter will be applied under the error page
-	mechanism.  The absence of any dispatcher elements in a
-	filter-mapping indicates a default of applying filters only under
-	ordinary client calls to the path or servlet.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:simpleContent>
-      <xsd:restriction base="j2ee:string">
-	<xsd:enumeration value="FORWARD"/>
-	<xsd:enumeration value="INCLUDE"/>
-	<xsd:enumeration value="REQUEST"/>
-	<xsd:enumeration value="ERROR"/>
-      </xsd:restriction>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:simpleType name="encodingType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The encodingType defines IANA character sets.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:restriction base="xsd:string">
-      <xsd:pattern value="[^\s]+"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="error-codeType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The error-code contains an HTTP error code, ex: 404
-
-	Used in: error-page
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:simpleContent>
-      <xsd:restriction base="j2ee:xsdPositiveIntegerType">
-	<xsd:pattern value="\d{3}"/>
-	<xsd:attribute name="id" type="xsd:ID"/>
-      </xsd:restriction>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="error-pageType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The error-pageType contains a mapping between an error code
-	or exception type to the path of a resource in the web
-	application.
-
-	Used in: web-app
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:choice>
-	<xsd:element name="error-code" type="j2ee:error-codeType"/>
-
-	<xsd:element name="exception-type" type="j2ee:fully-qualified-classType">
-	  <xsd:annotation>
-	    <xsd:documentation>
-
-	      The exception-type contains a fully qualified class
-	      name of a Java exception type.
-
-	    </xsd:documentation>
-	  </xsd:annotation>
-	</xsd:element>
-      </xsd:choice>
-
-      <xsd:element name="location" type="j2ee:war-pathType">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The location element contains the location of the
-	    resource in the web application relative to the root of
-	    the web application. The value of the location must have
-	    a leading `/'.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="filter-mappingType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	Declaration of the filter mappings in this web
-	application is done by using filter-mappingType.
-	The container uses the filter-mapping
-	declarations to decide which filters to apply to a request,
-	and in what order. The container matches the request URI to
-	a Servlet in the normal way. To determine which filters to
-	apply it matches filter-mapping declarations either on
-	servlet-name, or on url-pattern for each filter-mapping
-	element, depending on which style is used. The order in
-	which filters are invoked is the order in which
-	filter-mapping declarations that match a request URI for a
-	servlet appear in the list of filter-mapping elements.The
-	filter-name value must be the value of the filter-name
-	sub-elements of one of the filter declarations in the
-	deployment descriptor.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="filter-name" type="j2ee:filter-nameType"/>
-      <xsd:choice>
-	<xsd:element name="url-pattern" type="j2ee:url-patternType"/>
-	<xsd:element name="servlet-name" type="j2ee:servlet-nameType"/>
-      </xsd:choice>
-      <xsd:element name="dispatcher" type="j2ee:dispatcherType" minOccurs="0" maxOccurs="4"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="filter-nameType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The logical name of the filter is declare
-	by using filter-nameType. This name is used to map the
-	filter.  Each filter name is unique within the web
-	application.
-
-	Used in: filter, filter-mapping
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:simpleContent>
-      <xsd:extension base="j2ee:nonEmptyStringType"/>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="filterType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The filterType is used to declare a filter in the web
-	application. The filter is mapped to either a servlet or a
-	URL pattern in the filter-mapping element, using the
-	filter-name value to reference. Filters can access the
-	initialization parameters declared in the deployment
-	descriptor at runtime via the FilterConfig interface.
-
-	Used in: web-app
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:group ref="j2ee:descriptionGroup"/>
-      <xsd:element name="filter-name" type="j2ee:filter-nameType"/>
-      <xsd:element name="filter-class" type="j2ee:fully-qualified-classType">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The fully qualified classname of the filter.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-
-      <xsd:element name="init-param" type="j2ee:param-valueType" minOccurs="0" maxOccurs="unbounded">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The init-param element contains a name/value pair as
-	    an initialization param of a servlet filter
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="form-login-configType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The form-login-configType specifies the login and error
-	pages that should be used in form based login. If form based
-	authentication is not used, these elements are ignored.
-
-	Used in: login-config
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-
-      <xsd:element name="form-login-page" type="j2ee:war-pathType">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The form-login-page element defines the location in the web
-	    app where the page that can be used for login can be
-	    found.  The path begins with a leading / and is interpreted
-	    relative to the root of the WAR.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-
-      <xsd:element name="form-error-page" type="j2ee:war-pathType">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The form-error-page element defines the location in
-	    the web app where the error page that is displayed
-	    when login is not successful can be found.
-	    The path begins with a leading / and is interpreted
-	    relative to the root of the WAR.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="http-methodType">
-    <xsd:annotation>
-
-      <xsd:documentation>
-
-	The http-method contains an HTTP method recognized by the
-	web-app, for example GET, POST, ...
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:simpleContent>
-      <xsd:restriction base="j2ee:string">
-	<xsd:enumeration value="GET"/>
-	<xsd:enumeration value="POST"/>
-	<xsd:enumeration value="PUT"/>
-	<xsd:enumeration value="DELETE"/>
-	<xsd:enumeration value="HEAD"/>
-	<xsd:enumeration value="OPTIONS"/>
-	<xsd:enumeration value="TRACE"/>
-      </xsd:restriction>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="locale-encoding-mapping-listType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The locale-encoding-mapping-list contains one or more
-	locale-encoding-mapping(s).
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="locale-encoding-mapping" type="j2ee:locale-encoding-mappingType" maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="locale-encoding-mappingType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The locale-encoding-mapping contains locale name and
-	encoding name. The locale name must be either "Language-code",
-	such as "ja", defined by ISO-639 or "Language-code_Country-code",
-	such as "ja_JP".  "Country code" is defined by ISO-3166.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="locale" type="j2ee:localeType"/>
-      <xsd:element name="encoding" type="j2ee:encodingType"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:simpleType name="localeType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The localeType defines valid locale defined by ISO-639-1
-	and ISO-3166.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:restriction base="xsd:string">
-      <xsd:pattern value="[a-z]{2}(_|-)?([\p{L}\-\p{Nd}]{2})?"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="login-configType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The login-configType is used to configure the authentication
-	method that should be used, the realm name that should be
-	used for this application, and the attributes that are
-	needed by the form login mechanism.
-
-	Used in: web-app
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="auth-method" type="j2ee:auth-methodType" minOccurs="0"/>
-      <xsd:element name="realm-name" type="j2ee:string" minOccurs="0">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The realm name element specifies the realm name to
-	    use in HTTP Basic authorization.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-      <xsd:element name="form-login-config" type="j2ee:form-login-configType" minOccurs="0"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="mime-mappingType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The mime-mappingType defines a mapping between an extension
-	and a mime type.
-
-	Used in: web-app
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  The extension element contains a string describing an
-	  extension. example: "txt"
-
-	</xsd:documentation>
-      </xsd:annotation>
-
-      <xsd:element name="extension" type="j2ee:string"/>
-      <xsd:element name="mime-type" type="j2ee:mime-typeType"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="mime-typeType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The mime-typeType is used to indicate a defined mime type.
-
-	Example:
-	"text/plain"
-
-	Used in: mime-mapping
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:simpleContent>
-      <xsd:restriction base="j2ee:string">
-	<xsd:pattern value="[^\p{Cc}^\s]+/[^\p{Cc}^\s]+"/>
-      </xsd:restriction>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="nonEmptyStringType">
-    <xsd:annotation>
-      <xsd:documentation>
-	This type defines a string which contains at least one
-	character.
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:simpleContent>
-      <xsd:restriction base="j2ee:string">
-	<xsd:minLength value="1"/>
-      </xsd:restriction>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="security-constraintType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The security-constraintType is used to associate
-	security constraints with one or more web resource
-	collections
-
-	Used in: web-app
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="display-name" type="j2ee:display-nameType" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="web-resource-collection" type="j2ee:web-resource-collectionType" maxOccurs="unbounded"/>
-      <xsd:element name="auth-constraint" type="j2ee:auth-constraintType" minOccurs="0"/>
-      <xsd:element name="user-data-constraint" type="j2ee:user-data-constraintType" minOccurs="0"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="servlet-mappingType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The servlet-mappingType defines a mapping between a
-	servlet and a url pattern.
-
-	Used in: web-app
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="servlet-name" type="j2ee:servlet-nameType"/>
-      <xsd:element name="url-pattern" type="j2ee:url-patternType"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="servlet-nameType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The servlet-name element contains the canonical name of the
-	servlet. Each servlet name is unique within the web
-	application.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:simpleContent>
-      <xsd:extension base="j2ee:nonEmptyStringType"/>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="servletType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The servletType is used to declare a servlet.
-	It contains the declarative data of a
-	servlet. If a jsp-file is specified and the load-on-startup
-	element is present, then the JSP should be precompiled and
-	loaded.
-
-	Used in: web-app
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:group ref="j2ee:descriptionGroup"/>
-      <xsd:element name="servlet-name" type="j2ee:servlet-nameType"/>
-      <xsd:choice>
-	<xsd:element name="servlet-class" type="j2ee:fully-qualified-classType">
-	  <xsd:annotation>
-	    <xsd:documentation>
-
-	      The servlet-class element contains the fully
-	      qualified class name of the servlet.
-
-	    </xsd:documentation>
-	  </xsd:annotation>
-	</xsd:element>
-
-	<xsd:element name="jsp-file" type="j2ee:jsp-fileType"/>
-
-      </xsd:choice>
-
-      <xsd:element name="init-param" type="j2ee:param-valueType" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="load-on-startup" type="j2ee:xsdIntegerType" minOccurs="0">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The load-on-startup element indicates that this
-	    servlet should be loaded (instantiated and have
-	    its init() called) on the startup of the web
-	    application. The optional contents of these
-	    element must be an integer indicating the order in
-	    which the servlet should be loaded. If the value
-	    is a negative integer, or the element is not
-	    present, the container is free to load the servlet
-	    whenever it chooses. If the value is a positive
-	    integer or 0, the container must load and
-	    initialize the servlet as the application is
-	    deployed. The container must guarantee that
-	    servlets marked with lower integers are loaded
-	    before servlets marked with higher integers. The
-	    container may choose the order of loading of
-	    servlets with the same load-on-start-up value.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-      <xsd:element name="run-as" type="j2ee:run-asType" minOccurs="0"/>
-      <xsd:element name="security-role-ref" type="j2ee:security-role-refType" minOccurs="0" maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="session-configType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The session-configType defines the session parameters
-	for this web application.
-
-	Used in: web-app
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="session-timeout" type="j2ee:xsdIntegerType" minOccurs="0">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The session-timeout element defines the default
-	    session timeout interval for all sessions created
-	    in this web application. The specified timeout
-	    must be expressed in a whole number of minutes.
-	    If the timeout is 0 or less, the container ensures
-	    the default behaviour of sessions is never to time
-	    out. If this element is not specified, the container
-	    must set its default timeout period.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="transport-guaranteeType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The transport-guaranteeType specifies that the communication
-	between client and server should be NONE, INTEGRAL, or
-	CONFIDENTIAL. NONE means that the application does not
-	require any transport guarantees. A value of INTEGRAL means
-	that the application requires that the data sent between the
-	client and server be sent in such a way that it can't be
-	changed in transit. CONFIDENTIAL means that the application
-	requires that the data be transmitted in a fashion that
-	prevents other entities from observing the contents of the
-	transmission. In most cases, the presence of the INTEGRAL or
-	CONFIDENTIAL flag will indicate that the use of SSL is
-	required.
-
-	Used in: user-data-constraint
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:simpleContent>
-      <xsd:restriction base="j2ee:string">
-	<xsd:enumeration value="NONE"/>
-	<xsd:enumeration value="INTEGRAL"/>
-	<xsd:enumeration value="CONFIDENTIAL"/>
-      </xsd:restriction>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="user-data-constraintType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The user-data-constraintType is used to indicate how
-	data communicated between the client and container should be
-	protected.
-
-	Used in: security-constraint
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="description" type="j2ee:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="transport-guarantee" type="j2ee:transport-guaranteeType"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="war-pathType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The elements that use this type designate a path starting
-	with a "/" and interpreted relative to the root of a WAR
-	file.
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:simpleContent>
-      <xsd:restriction base="j2ee:string">
-	<xsd:pattern value="/.*"/>
-      </xsd:restriction>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:simpleType name="web-app-versionType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	This type contains the recognized versions of
-	web-application supported. It is used to designate the
-	version of the web application.
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:token">
-      <xsd:enumeration value="2.4"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="web-appType">
-
-    <xsd:choice minOccurs="0" maxOccurs="unbounded">
-      <xsd:group ref="j2ee:descriptionGroup"/>
-      <xsd:element name="distributable" type="j2ee:emptyType"/>
-      <xsd:element name="context-param" type="j2ee:param-valueType">
-
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The context-param element contains the declaration
-	    of a web application's servlet context
-	    initialization parameters.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-
-      <xsd:element name="filter" type="j2ee:filterType"/>
-      <xsd:element name="filter-mapping" type="j2ee:filter-mappingType"/>
-      <xsd:element name="listener" type="j2ee:listenerType"/>
-      <xsd:element name="servlet" type="j2ee:servletType"/>
-      <xsd:element name="servlet-mapping" type="j2ee:servlet-mappingType"/>
-      <xsd:element name="session-config" type="j2ee:session-configType"/>
-      <xsd:element name="mime-mapping" type="j2ee:mime-mappingType"/>
-      <xsd:element name="welcome-file-list" type="j2ee:welcome-file-listType"/>
-      <xsd:element name="error-page" type="j2ee:error-pageType"/>
-      <xsd:element name="jsp-config" type="j2ee:jsp-configType"/>
-      <xsd:element name="security-constraint" type="j2ee:security-constraintType"/>
-      <xsd:element name="login-config" type="j2ee:login-configType"/>
-      <xsd:element name="security-role" type="j2ee:security-roleType"/>
-      <xsd:group ref="j2ee:jndiEnvironmentRefsGroup"/>
-      <xsd:element name="message-destination" type="j2ee:message-destinationType"/>
-      <xsd:element name="locale-encoding-mapping-list" type="j2ee:locale-encoding-mapping-listType"/>
-    </xsd:choice>
-
-    <xsd:attribute name="version" type="j2ee:web-app-versionType" use="required"/>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="web-resource-collectionType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The web-resource-collectionType is used to identify a subset
-	of the resources and HTTP methods on those resources within
-	a web application to which a security constraint applies. If
-	no HTTP methods are specified, then the security constraint
-	applies to all HTTP methods.
-
-	Used in: security-constraint
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="web-resource-name" type="j2ee:string">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The web-resource-name contains the name of this web
-	    resource collection.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-      <xsd:element name="description" type="j2ee:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="url-pattern" type="j2ee:url-patternType" maxOccurs="unbounded"/>
-      <xsd:element name="http-method" type="j2ee:http-methodType" minOccurs="0" maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="welcome-file-listType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The welcome-file-list contains an ordered list of welcome
-	files elements.
-
-	Used in: web-app
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="welcome-file" type="xsd:string" maxOccurs="unbounded">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The welcome-file element contains file name to use
-	    as a default welcome file, such as index.html
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-</xsd:schema>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+	    targetNamespace="http://java.sun.com/xml/ns/j2ee"
+	    xmlns:j2ee="http://java.sun.com/xml/ns/j2ee"
+	    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+	    elementFormDefault="qualified"
+	    attributeFormDefault="unqualified"
+	    version="2.4">
+  <xsd:annotation>
+    <xsd:documentation>
+      @(#)web-app_2_4.xsds	1.60 03/08/26
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      Copyright 2004 Sun Microsystems, Inc., 901 San Antonio
+      Road, Palo Alto, California 94303, U.S.A. All rights
+      reserved.
+
+      Sun Microsystems, Inc. has intellectual property rights
+      relating to technology described in this document. In
+      particular, and without limitation, these intellectual
+      property rights may include one or more of the U.S. patents
+      listed at http://www.sun.com/patents and one or more
+      additional patents or pending patent applications in the
+      U.S. and other countries.
+
+      This document and the technology which it describes are
+      distributed under licenses restricting their use, copying,
+      distribution, and decompilation. No part of this document
+      may be reproduced in any form by any means without prior
+      written authorization of Sun and its licensors, if any.
+
+      Third-party software, including font technology, is
+      copyrighted and licensed from Sun suppliers.
+
+      Sun, Sun Microsystems, the Sun logo, Solaris, Java, J2EE,
+      JavaServer Pages, Enterprise JavaBeans and the Java Coffee
+      Cup logo are trademarks or registered trademarks of Sun
+      Microsystems, Inc. in the U.S. and other countries.
+
+      Federal Acquisitions: Commercial Software - Government Users
+      Subject to Standard License Terms and Conditions.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+      <![CDATA[
+
+	This is the XML Schema for the Servlet 2.4 deployment descriptor.
+	The deployment descriptor must be named "WEB-INF/web.xml" in the
+	web application's war file.  All Servlet deployment descriptors
+	must indicate the web application schema by using the J2EE
+	namespace:
+
+	http://java.sun.com/xml/ns/j2ee
+
+	and by indicating the version of the schema by
+	using the version element as shown below:
+
+	    <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
+	      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	      xsi:schemaLocation="..."
+	      version="2.4">
+	      ...
+	    </web-app>
+
+	The instance documents may indicate the published version of
+	the schema using the xsi:schemaLocation attribute for J2EE
+	namespace with the following location:
+
+	http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd
+
+	]]>
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      The following conventions apply to all J2EE
+      deployment descriptor elements unless indicated otherwise.
+
+      - In elements that specify a pathname to a file within the
+	same JAR file, relative filenames (i.e., those not
+	starting with "/") are considered relative to the root of
+	the JAR file's namespace.  Absolute filenames (i.e., those
+	starting with "/") also specify names in the root of the
+	JAR file's namespace.  In general, relative names are
+	preferred.  The exception is .war files where absolute
+	names are preferred for consistency with the Servlet API.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:include schemaLocation="j2ee_1_4.xsd"/>
+  <xsd:include schemaLocation="jsp_2_0.xsd"/>
+
+
+<!-- **************************************************** -->
+
+
+  <xsd:element name="web-app" type="j2ee:web-appType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The web-app element is the root of the deployment
+	descriptor for a web application.  Note that the sub-elements
+	of this element can be in the arbitrary order. Because of
+	that, the multiplicity of the elements of distributable,
+	session-config, welcome-file-list, jsp-config, login-config,
+	and locale-encoding-mapping-list was changed from "?" to "*"
+	in this schema.  However, the deployment descriptor instance
+	file must not contain multiple elements of session-config,
+	jsp-config, and login-config. When there are multiple elements of
+	welcome-file-list or locale-encoding-mapping-list, the container
+	must concatinate the element contents.  The multiple occurance
+	of the element distributable is redundant and the container
+	treats that case exactly in the same way when there is only
+	one distributable.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:unique name="web-app-servlet-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The servlet element contains the name of a servlet.
+	  The name must be unique within the web application.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:servlet"/>
+      <xsd:field    xpath="j2ee:servlet-name"/>
+    </xsd:unique>
+
+    <xsd:unique name="web-app-filter-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The filter element contains the name of a filter.
+	  The name must be unique within the web application.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:filter"/>
+      <xsd:field    xpath="j2ee:filter-name"/>
+    </xsd:unique>
+
+    <xsd:unique name="web-app-ejb-local-ref-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The ejb-local-ref-name element contains the name of an EJB
+	  reference. The EJB reference is an entry in the web
+	  application's environment and is relative to the
+	  java:comp/env context.  The name must be unique within
+	  the web application.
+
+	  It is recommended that name is prefixed with "ejb/".
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:ejb-local-ref"/>
+      <xsd:field    xpath="j2ee:ejb-ref-name"/>
+    </xsd:unique>
+
+    <xsd:unique name="web-app-ejb-ref-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The ejb-ref-name element contains the name of an EJB
+	  reference. The EJB reference is an entry in the web
+	  application's environment and is relative to the
+	  java:comp/env context.  The name must be unique within
+	  the web application.
+
+	  It is recommended that name is prefixed with "ejb/".
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:ejb-ref"/>
+      <xsd:field    xpath="j2ee:ejb-ref-name"/>
+    </xsd:unique>
+
+    <xsd:unique name="web-app-resource-env-ref-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The resource-env-ref-name element specifies the name of
+	  a resource environment reference; its value is the
+	  environment entry name used in the web application code.
+	  The name is a JNDI name relative to the java:comp/env
+	  context and must be unique within a web application.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:resource-env-ref"/>
+      <xsd:field    xpath="j2ee:resource-env-ref-name"/>
+    </xsd:unique>
+
+    <xsd:unique name="web-app-message-destination-ref-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The message-destination-ref-name element specifies the name of
+	  a message destination reference; its value is the
+	  environment entry name used in the web application code.
+	  The name is a JNDI name relative to the java:comp/env
+	  context and must be unique within a web application.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:message-destination-ref"/>
+      <xsd:field    xpath="j2ee:message-destination-ref-name"/>
+    </xsd:unique>
+
+    <xsd:unique name="web-app-res-ref-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The res-ref-name element specifies the name of a
+	  resource manager connection factory reference.  The name
+	  is a JNDI name relative to the java:comp/env context.
+	  The name must be unique within a web application.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:resource-ref"/>
+      <xsd:field    xpath="j2ee:res-ref-name"/>
+    </xsd:unique>
+
+    <xsd:unique name="web-app-env-entry-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The env-entry-name element contains the name of a web
+	  application's environment entry.  The name is a JNDI
+	  name relative to the java:comp/env context.  The name
+	  must be unique within a web application.
+
+	</xsd:documentation>
+      </xsd:annotation>
+
+      <xsd:selector xpath="j2ee:env-entry"/>
+      <xsd:field    xpath="j2ee:env-entry-name"/>
+    </xsd:unique>
+
+    <xsd:key name="web-app-role-name-key">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  A role-name-key is specified to allow the references
+	  from the security-role-refs.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:security-role"/>
+      <xsd:field    xpath="j2ee:role-name"/>
+    </xsd:key>
+
+    <xsd:keyref name="web-app-role-name-references"
+		refer="j2ee:web-app-role-name-key">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The keyref indicates the references from
+	  security-role-ref to a specified role-name.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:servlet/j2ee:security-role-ref"/>
+      <xsd:field    xpath="j2ee:role-link"/>
+    </xsd:keyref>
+  </xsd:element>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="auth-constraintType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The auth-constraintType indicates the user roles that
+	should be permitted access to this resource
+	collection. The role-name used here must either correspond
+	to the role-name of one of the security-role elements
+	defined for this web application, or be the specially
+	reserved role-name "*" that is a compact syntax for
+	indicating all roles in the web application. If both "*"
+	and rolenames appear, the container interprets this as all
+	roles.  If no roles are defined, no user is allowed access
+	to the portion of the web application described by the
+	containing security-constraint.  The container matches
+	role names case sensitively when determining access.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="role-name"
+		   type="j2ee:role-nameType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="auth-methodType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The auth-methodType is used to configure the authentication
+	mechanism for the web application. As a prerequisite to
+	gaining access to any web resources which are protected by
+	an authorization constraint, a user must have authenticated
+	using the configured mechanism. Legal values are "BASIC",
+	"DIGEST", "FORM", "CLIENT-CERT", or a vendor-specific
+	authentication scheme.
+
+	Used in: login-config
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="dispatcherType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The dispatcher has four legal values: FORWARD, REQUEST, INCLUDE,
+	and ERROR. A value of FORWARD means the Filter will be applied
+	under RequestDispatcher.forward() calls.  A value of REQUEST
+	means the Filter will be applied under ordinary client calls to
+	the path or servlet. A value of INCLUDE means the Filter will be
+	applied under RequestDispatcher.include() calls.  A value of
+	ERROR means the Filter will be applied under the error page
+	mechanism.  The absence of any dispatcher elements in a
+	filter-mapping indicates a default of applying filters only under
+	ordinary client calls to the path or servlet.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+	<xsd:enumeration value="FORWARD"/>
+	<xsd:enumeration value="INCLUDE"/>
+	<xsd:enumeration value="REQUEST"/>
+	<xsd:enumeration value="ERROR"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:simpleType name="encodingType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The encodingType defines IANA character sets.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:restriction base="xsd:string">
+      <xsd:pattern value="[^\s]+"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="error-codeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The error-code contains an HTTP error code, ex: 404
+
+	Used in: error-page
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:xsdPositiveIntegerType">
+	<xsd:pattern value="\d{3}"/>
+	<xsd:attribute name="id" type="xsd:ID"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="error-pageType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The error-pageType contains a mapping between an error code
+	or exception type to the path of a resource in the web
+	application.
+
+	Used in: web-app
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:choice>
+	<xsd:element name="error-code"
+		     type="j2ee:error-codeType"/>
+
+	<xsd:element name="exception-type"
+		     type="j2ee:fully-qualified-classType">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The exception-type contains a fully qualified class
+	      name of a Java exception type.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+      </xsd:choice>
+
+      <xsd:element name="location"
+		   type="j2ee:war-pathType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The location element contains the location of the
+	    resource in the web application relative to the root of
+	    the web application. The value of the location must have
+	    a leading `/'.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="filter-mappingType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	Declaration of the filter mappings in this web
+	application is done by using filter-mappingType.
+	The container uses the filter-mapping
+	declarations to decide which filters to apply to a request,
+	and in what order. The container matches the request URI to
+	a Servlet in the normal way. To determine which filters to
+	apply it matches filter-mapping declarations either on
+	servlet-name, or on url-pattern for each filter-mapping
+	element, depending on which style is used. The order in
+	which filters are invoked is the order in which
+	filter-mapping declarations that match a request URI for a
+	servlet appear in the list of filter-mapping elements.The
+	filter-name value must be the value of the filter-name
+	sub-elements of one of the filter declarations in the
+	deployment descriptor.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="filter-name"
+		   type="j2ee:filter-nameType"/>
+      <xsd:choice>
+	<xsd:element name="url-pattern"
+		     type="j2ee:url-patternType"/>
+	<xsd:element name="servlet-name"
+		     type="j2ee:servlet-nameType"/>
+      </xsd:choice>
+      <xsd:element name="dispatcher"
+		   type="j2ee:dispatcherType"
+		   minOccurs="0" maxOccurs="4"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="filter-nameType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The logical name of the filter is declare
+	by using filter-nameType. This name is used to map the
+	filter.  Each filter name is unique within the web
+	application.
+
+	Used in: filter, filter-mapping
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:extension base="j2ee:nonEmptyStringType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="filterType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The filterType is used to declare a filter in the web
+	application. The filter is mapped to either a servlet or a
+	URL pattern in the filter-mapping element, using the
+	filter-name value to reference. Filters can access the
+	initialization parameters declared in the deployment
+	descriptor at runtime via the FilterConfig interface.
+
+	Used in: web-app
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="j2ee:descriptionGroup"/>
+      <xsd:element name="filter-name"
+		   type="j2ee:filter-nameType"/>
+      <xsd:element name="filter-class"
+		   type="j2ee:fully-qualified-classType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The fully qualified classname of the filter.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="init-param"
+		   type="j2ee:param-valueType"
+		   minOccurs="0" maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The init-param element contains a name/value pair as
+	    an initialization param of a servlet filter
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="form-login-configType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The form-login-configType specifies the login and error
+	pages that should be used in form based login. If form based
+	authentication is not used, these elements are ignored.
+
+	Used in: login-config
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+
+      <xsd:element name="form-login-page"
+		   type="j2ee:war-pathType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The form-login-page element defines the location in the web
+	    app where the page that can be used for login can be
+	    found.  The path begins with a leading / and is interpreted
+	    relative to the root of the WAR.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="form-error-page"
+		   type="j2ee:war-pathType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The form-error-page element defines the location in
+	    the web app where the error page that is displayed
+	    when login is not successful can be found.
+	    The path begins with a leading / and is interpreted
+	    relative to the root of the WAR.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="http-methodType">
+    <xsd:annotation>
+
+      <xsd:documentation>
+
+	The http-method contains an HTTP method recognized by the
+	web-app, for example GET, POST, ...
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+	<xsd:enumeration value="GET"/>
+	<xsd:enumeration value="POST"/>
+	<xsd:enumeration value="PUT"/>
+	<xsd:enumeration value="DELETE"/>
+	<xsd:enumeration value="HEAD"/>
+	<xsd:enumeration value="OPTIONS"/>
+	<xsd:enumeration value="TRACE"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="locale-encoding-mapping-listType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The locale-encoding-mapping-list contains one or more
+	locale-encoding-mapping(s).
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="locale-encoding-mapping"
+		   type="j2ee:locale-encoding-mappingType"
+		   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="locale-encoding-mappingType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The locale-encoding-mapping contains locale name and
+	encoding name. The locale name must be either "Language-code",
+	such as "ja", defined by ISO-639 or "Language-code_Country-code",
+	such as "ja_JP".  "Country code" is defined by ISO-3166.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="locale"
+		   type="j2ee:localeType"/>
+      <xsd:element name="encoding"
+		   type="j2ee:encodingType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:simpleType name="localeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The localeType defines valid locale defined by ISO-639-1
+	and ISO-3166.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:restriction base="xsd:string">
+      <xsd:pattern value="[a-z]{2}(_|-)?([\p{L}\-\p{Nd}]{2})?"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="login-configType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The login-configType is used to configure the authentication
+	method that should be used, the realm name that should be
+	used for this application, and the attributes that are
+	needed by the form login mechanism.
+
+	Used in: web-app
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="auth-method"
+		   type="j2ee:auth-methodType"
+		   minOccurs="0"/>
+      <xsd:element name="realm-name"
+		   type="j2ee:string" minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The realm name element specifies the realm name to
+	    use in HTTP Basic authorization.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="form-login-config"
+		   type="j2ee:form-login-configType"
+		   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="mime-mappingType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The mime-mappingType defines a mapping between an extension
+	and a mime type.
+
+	Used in: web-app
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The extension element contains a string describing an
+	  extension. example: "txt"
+
+	</xsd:documentation>
+      </xsd:annotation>
+
+      <xsd:element name="extension"
+		   type="j2ee:string"/>
+      <xsd:element name="mime-type"
+		   type="j2ee:mime-typeType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="mime-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The mime-typeType is used to indicate a defined mime type.
+
+	Example:
+	"text/plain"
+
+	Used in: mime-mapping
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+        <xsd:pattern value="[^\p{Cc}^\s]+/[^\p{Cc}^\s]+"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="nonEmptyStringType">
+    <xsd:annotation>
+      <xsd:documentation>
+	This type defines a string which contains at least one
+	character.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+	<xsd:minLength value="1"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="security-constraintType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The security-constraintType is used to associate
+	security constraints with one or more web resource
+	collections
+
+	Used in: web-app
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="display-name"
+		   type="j2ee:display-nameType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="web-resource-collection"
+		   type="j2ee:web-resource-collectionType"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="auth-constraint"
+		   type="j2ee:auth-constraintType"
+		   minOccurs="0"/>
+      <xsd:element name="user-data-constraint"
+		   type="j2ee:user-data-constraintType"
+		   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="servlet-mappingType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The servlet-mappingType defines a mapping between a
+	servlet and a url pattern.
+
+	Used in: web-app
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="servlet-name"
+		   type="j2ee:servlet-nameType"/>
+      <xsd:element name="url-pattern"
+		   type="j2ee:url-patternType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="servlet-nameType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The servlet-name element contains the canonical name of the
+	servlet. Each servlet name is unique within the web
+	application.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:extension base="j2ee:nonEmptyStringType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="servletType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The servletType is used to declare a servlet.
+	It contains the declarative data of a
+	servlet. If a jsp-file is specified and the load-on-startup
+	element is present, then the JSP should be precompiled and
+	loaded.
+
+	Used in: web-app
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="j2ee:descriptionGroup"/>
+      <xsd:element name="servlet-name"
+		   type="j2ee:servlet-nameType"/>
+      <xsd:choice>
+	<xsd:element name="servlet-class"
+		     type="j2ee:fully-qualified-classType">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The servlet-class element contains the fully
+	      qualified class name of the servlet.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+
+	<xsd:element name="jsp-file"
+		     type="j2ee:jsp-fileType"/>
+
+      </xsd:choice>
+
+      <xsd:element name="init-param"
+		   type="j2ee:param-valueType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="load-on-startup"
+		   type="j2ee:xsdIntegerType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The load-on-startup element indicates that this
+	    servlet should be loaded (instantiated and have
+	    its init() called) on the startup of the web
+	    application. The optional contents of these
+	    element must be an integer indicating the order in
+	    which the servlet should be loaded. If the value
+	    is a negative integer, or the element is not
+	    present, the container is free to load the servlet
+	    whenever it chooses. If the value is a positive
+	    integer or 0, the container must load and
+	    initialize the servlet as the application is
+	    deployed. The container must guarantee that
+	    servlets marked with lower integers are loaded
+	    before servlets marked with higher integers. The
+	    container may choose the order of loading of
+	    servlets with the same load-on-start-up value.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="run-as"
+		   type="j2ee:run-asType"
+		   minOccurs="0"/>
+      <xsd:element name="security-role-ref"
+		   type="j2ee:security-role-refType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="session-configType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The session-configType defines the session parameters
+	for this web application.
+
+	Used in: web-app
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="session-timeout"
+		   type="j2ee:xsdIntegerType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The session-timeout element defines the default
+	    session timeout interval for all sessions created
+	    in this web application. The specified timeout
+	    must be expressed in a whole number of minutes.
+	    If the timeout is 0 or less, the container ensures
+	    the default behaviour of sessions is never to time
+	    out. If this element is not specified, the container
+	    must set its default timeout period.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="transport-guaranteeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The transport-guaranteeType specifies that the communication
+	between client and server should be NONE, INTEGRAL, or
+	CONFIDENTIAL. NONE means that the application does not
+	require any transport guarantees. A value of INTEGRAL means
+	that the application requires that the data sent between the
+	client and server be sent in such a way that it can't be
+	changed in transit. CONFIDENTIAL means that the application
+	requires that the data be transmitted in a fashion that
+	prevents other entities from observing the contents of the
+	transmission. In most cases, the presence of the INTEGRAL or
+	CONFIDENTIAL flag will indicate that the use of SSL is
+	required.
+
+	Used in: user-data-constraint
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+	<xsd:enumeration value="NONE"/>
+	<xsd:enumeration value="INTEGRAL"/>
+	<xsd:enumeration value="CONFIDENTIAL"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="user-data-constraintType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The user-data-constraintType is used to indicate how
+	data communicated between the client and container should be
+	protected.
+
+	Used in: security-constraint
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="transport-guarantee"
+		   type="j2ee:transport-guaranteeType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="war-pathType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The elements that use this type designate a path starting
+	with a "/" and interpreted relative to the root of a WAR
+	file.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+	<xsd:pattern value="/.*"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:simpleType name="web-app-versionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	This type contains the recognized versions of
+	web-application supported. It is used to designate the
+	version of the web application.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:token">
+      <xsd:enumeration value="2.4"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="web-appType">
+
+    <xsd:choice minOccurs="0" maxOccurs="unbounded">
+      <xsd:group ref="j2ee:descriptionGroup"/>
+      <xsd:element name="distributable"
+		   type="j2ee:emptyType"/>
+      <xsd:element name="context-param"
+		   type="j2ee:param-valueType">
+
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The context-param element contains the declaration
+	    of a web application's servlet context
+	    initialization parameters.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="filter"
+		   type="j2ee:filterType"/>
+      <xsd:element name="filter-mapping"
+		   type="j2ee:filter-mappingType"/>
+      <xsd:element name="listener"
+		   type="j2ee:listenerType"/>
+      <xsd:element name="servlet"
+		   type="j2ee:servletType"/>
+      <xsd:element name="servlet-mapping"
+		   type="j2ee:servlet-mappingType"/>
+      <xsd:element name="session-config"
+		   type="j2ee:session-configType"/>
+      <xsd:element name="mime-mapping"
+		   type="j2ee:mime-mappingType"/>
+      <xsd:element name="welcome-file-list"
+		   type="j2ee:welcome-file-listType"/>
+      <xsd:element name="error-page"
+		   type="j2ee:error-pageType"/>
+      <xsd:element name="jsp-config"
+		   type="j2ee:jsp-configType"/>
+      <xsd:element name="security-constraint"
+		   type="j2ee:security-constraintType"/>
+      <xsd:element name="login-config"
+		   type="j2ee:login-configType"/>
+      <xsd:element name="security-role"
+		   type="j2ee:security-roleType"/>
+      <xsd:group ref="j2ee:jndiEnvironmentRefsGroup"/>
+      <xsd:element name="message-destination"
+		   type="j2ee:message-destinationType"/>
+      <xsd:element name="locale-encoding-mapping-list"
+		   type="j2ee:locale-encoding-mapping-listType"/>
+    </xsd:choice>
+
+    <xsd:attribute name="version"
+		   type="j2ee:web-app-versionType"
+		   use="required"/>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="web-resource-collectionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The web-resource-collectionType is used to identify a subset
+	of the resources and HTTP methods on those resources within
+	a web application to which a security constraint applies. If
+	no HTTP methods are specified, then the security constraint
+	applies to all HTTP methods.
+
+	Used in: security-constraint
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="web-resource-name"
+		   type="j2ee:string">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The web-resource-name contains the name of this web
+	    resource collection.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="url-pattern"
+		   type="j2ee:url-patternType"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="http-method"
+		   type="j2ee:http-methodType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="welcome-file-listType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The welcome-file-list contains an ordered list of welcome
+	files elements.
+
+	Used in: web-app
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="welcome-file"
+		   type="xsd:string"
+		   maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The welcome-file element contains file name to use
+	    as a default welcome file, such as index.html
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+</xsd:schema>
+

Modified: projects/metadata/web/trunk/src/main/resources/schema/web-app_2_5.xsd
===================================================================
--- projects/metadata/web/trunk/src/main/resources/schema/web-app_2_5.xsd	2009-10-20 15:38:37 UTC (rev 95185)
+++ projects/metadata/web/trunk/src/main/resources/schema/web-app_2_5.xsd	2009-10-20 15:42:08 UTC (rev 95186)
@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
+
 <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
 	    targetNamespace="http://java.sun.com/xml/ns/javaee"
 	    xmlns:javaee="http://java.sun.com/xml/ns/javaee"
@@ -15,7 +16,7 @@
   <xsd:annotation>
     <xsd:documentation>
 
-      Copyright 2003-2006 Sun Microsystems, Inc.
+      Copyright 2003-2005 Sun Microsystems, Inc.
       4150 Network Circle
       Santa Clara, California 95054
       U.S.A
@@ -629,7 +630,7 @@
     </xsd:annotation>
 
      <xsd:restriction base="xsd:token">
-         <xsd:pattern value="[\p{L}-[\p{Cc}\p{Z}]]+"/>
+         <xsd:pattern value="[&#33;-&#126;-[\(\)&#60;&#62;@,;:&#34;/\[\]?=\{\}\\\p{Z}]]+"/>
      </xsd:restriction>
 
   </xsd:simpleType>
@@ -883,6 +884,8 @@
 	The servlet-name element contains the canonical name of the
 	servlet. Each servlet name is unique within the web
 	application.
+        The special servlet name of "*" may be used to reference all
+        servlets.
 
       </xsd:documentation>
     </xsd:annotation>

Modified: projects/metadata/web/trunk/src/main/resources/schema/web-common_3_0.xsd
===================================================================
--- projects/metadata/web/trunk/src/main/resources/schema/web-common_3_0.xsd	2009-10-20 15:38:37 UTC (rev 95185)
+++ projects/metadata/web/trunk/src/main/resources/schema/web-common_3_0.xsd	2009-10-20 15:42:08 UTC (rev 95186)
@@ -60,7 +60,7 @@
 
   <xsd:annotation>
     <xsd:documentation>
-<![CDATA[[
+      <![CDATA[[
       This is the common XML Schema for the Servlet 3.0 deployment descriptor.
       This file is in turn used by web.xml and web-fragment.xml
       web application's war file.  All Servlet deployment descriptors
@@ -85,7 +85,7 @@
       
       http://java.sun.com/xml/ns/javaee/web-common_3_0.xsd
       
-]]>
+      ]]>
     </xsd:documentation>
   </xsd:annotation>
 
@@ -204,10 +204,10 @@
   <xsd:complexType name="web-appType">
     <xsd:choice minOccurs="0"
                 maxOccurs="unbounded">
-      <xsd:group ref="javaee:web-commonType"/>
       <xsd:element name="module-name"
                    type="javaee:string"
                    minOccurs="0"/>
+      <xsd:group ref="javaee:web-commonType"/>
       <xsd:element name="absolute-ordering"
                    type="javaee:absoluteOrderingType"/>
     </xsd:choice>
@@ -1522,12 +1522,8 @@
     <xsd:annotation>
       <xsd:documentation>
 
-        This element contains a sequence of "name" elements, each of which
-        refers to an application configuration resource by the "name"
-        declared on its web.xml fragment.  This element can also contain
-        a single "others" element which specifies that this document comes
-        before or after other documents within the application.
-        See section 8.2.2 of the specification for details.
+        This element specifies configuration information related to the
+        handling of multipart/form-data requests.
         
       </xsd:documentation>
     </xsd:annotation>
@@ -1535,19 +1531,52 @@
       <xsd:element name="location"
                    type="javaee:string"
                    minOccurs="0"
-                   maxOccurs="1"/>
+                   maxOccurs="1">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The directory location where uploaded files will be stored
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
       <xsd:element name="max-file-size"
                    type="xsd:long"
                    minOccurs="0"
-                   maxOccurs="1"/>
+                   maxOccurs="1">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The maximum size limit of uploaded files
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
       <xsd:element name="max-request-size"
                    type="xsd:long"
                    minOccurs="0"
-                   maxOccurs="1"/>
+                   maxOccurs="1">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The maximum size limit of multipart/form-data requests
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
       <xsd:element name="file-size-threshold"
                    type="xsd:integer"
                    minOccurs="0"
-                   maxOccurs="1"/>
+                   maxOccurs="1">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The size threshold after which an uploaded file will be
+            written to disk
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
     </xsd:sequence>
   </xsd:complexType>
 

Modified: projects/metadata/web/trunk/src/main/resources/schema/web-facesconfig_1_2.xsd
===================================================================
--- projects/metadata/web/trunk/src/main/resources/schema/web-facesconfig_1_2.xsd	2009-10-20 15:38:37 UTC (rev 95185)
+++ projects/metadata/web/trunk/src/main/resources/schema/web-facesconfig_1_2.xsd	2009-10-20 15:42:08 UTC (rev 95186)
@@ -1,5 +1,42 @@
 <?xml version = "1.0" encoding = "UTF-8"?>
 
+<!--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either the GNU
+ General Public License Version 2 only ("GPL") or the Common Development
+ and Distribution License("CDDL") (collectively, the "License").  You
+ may not use this file except in compliance with the License. You can obtain
+ a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
+ or glassfish/bootstrap/legal/LICENSE.txt.  See the License for the specific
+ language governing permissions and limitations under the License.
+
+ When distributing the software, include this License Header Notice in each
+ file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
+ Sun designates this particular file as subject to the "Classpath" exception
+ as provided by Sun in the GPL Version 2 section of the License file that
+ accompanied this code.  If applicable, add the following below the License
+ Header, with the fields enclosed by brackets [] replaced by your own
+ identifying information: "Portions Copyrighted [year]
+ [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by only the CDDL or
+ only the GPL Version 2, indicate your decision by adding "[Contributor]
+ elects to include this software in this distribution under the [CDDL or GPL
+ Version 2] license."  If you don't indicate a single choice of license, a
+ recipient has the option to distribute your version of this file under
+ either the CDDL, the GPL Version 2 or to extend the choice of license to
+ its licensees as provided above.  However, if you add GPL Version 2 code
+ and therefore, elected the GPL Version 2 license, then the option applies
+ only if the new code is made subject to such option by the copyright
+ holder.
+-->
+
+
 <xsd:schema
      targetNamespace="http://java.sun.com/xml/ns/javaee"
      xmlns:javaee="http://java.sun.com/xml/ns/javaee"
@@ -11,7 +48,7 @@
 
     <xsd:annotation>
         <xsd:documentation>
-            $Id: web-facesconfig_1_2.xsd,v 1.11 2006/03/27 00:12:24 rogerk Exp $
+            $Id: web-facesconfig_1_2.xsd,v 1.15 2008/03/26 17:46:42 rlubke Exp $
         </xsd:documentation>
     </xsd:annotation>
 
@@ -1085,7 +1122,7 @@
         </xsd:annotation>
 
         <xsd:restriction base="xsd:string">
-            <xsd:pattern value="[a-z]{2}(_|-)?([\p{L}\-\p{Nd}]{2})?"/>
+            <xsd:pattern value="([a-z]{2})[_|\-]?([\p{L}]{2})?[_|\-]?(\w+)?"/>
         </xsd:restriction>
   </xsd:simpleType>
 

Modified: projects/metadata/web/trunk/src/main/resources/schema/web-jsptaglibrary_2_0.xsd
===================================================================
--- projects/metadata/web/trunk/src/main/resources/schema/web-jsptaglibrary_2_0.xsd	2009-10-20 15:38:37 UTC (rev 95185)
+++ projects/metadata/web/trunk/src/main/resources/schema/web-jsptaglibrary_2_0.xsd	2009-10-20 15:42:08 UTC (rev 95186)
@@ -1,989 +1,1010 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-<xsd:schema
-     targetNamespace="http://java.sun.com/xml/ns/j2ee"
-     xmlns:j2ee="http://java.sun.com/xml/ns/j2ee"
-     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-     xmlns:xml="http://www.w3.org/XML/1998/namespace"
-     elementFormDefault="qualified"
-     attributeFormDefault="unqualified"
-     version="2.0">
-
-  <xsd:annotation>
-    <xsd:documentation>
-      %W% %G%
-    </xsd:documentation>
-  </xsd:annotation>
-  <xsd:annotation>
-    <xsd:documentation>
-      <![CDATA[
-
-    This is the XML Schema for the JSP Taglibrary
-    descriptor.  All Taglibrary descriptors must
-    indicate the tag library schema by using the Taglibrary
-    namespace:
-
-    http://java.sun.com/xml/ns/j2ee
-
-    and by indicating the version of the schema by
-    using the version element as shown below:
-
-        <taglib xmlns="http://java.sun.com/xml/ns/j2ee"
-          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="..."
-          version="2.0">
-          ...
-        </taglib>
-
-    The instance documents may indicate the published
-    version of the schema using xsi:schemaLocation attribute
-    for J2EE namespace with the following location:
-
-    http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd
-
-    ]]>
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:include schemaLocation="j2ee_1_4.xsd"/>
-
-
-<!-- **************************************************** -->
-
-
-  <xsd:element name="taglib" type="j2ee:tldTaglibType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-    The taglib tag is the document root.
-    The definition of taglib is provided
-    by the tldTaglibType.
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:unique name="tag-name-uniqueness">
-      <xsd:annotation>
-    <xsd:documentation>
-
-      The taglib element contains, among other things, tag and
-      tag-file elements.
-      The name subelements of these elements must each be unique.
-
-    </xsd:documentation>
-      </xsd:annotation>
-      <xsd:selector xpath="j2ee:tag|j2ee:tag-file"/>
-      <xsd:field    xpath="j2ee:name"/>
-    </xsd:unique>
-
-    <xsd:unique name="function-name-uniqueness">
-      <xsd:annotation>
-    <xsd:documentation>
-
-      The taglib element contains function elements.
-      The name subelements of these elements must each be unique.
-
-    </xsd:documentation>
-      </xsd:annotation>
-      <xsd:selector xpath="j2ee:function"/>
-      <xsd:field    xpath="j2ee:name"/>
-    </xsd:unique>
-
-  </xsd:element>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="body-contentType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Specifies the type of body that is valid for a tag.
-    This value is used by the JSP container to validate
-    that a tag invocation has the correct body syntax and
-    by page composition tools to assist the page author
-    in providing a valid tag body.
-
-    There are currently four values specified:
-
-    tagdependent    The body of the tag is interpreted by the tag
-            implementation itself, and is most likely
-            in a different "language", e.g embedded SQL
-            statements.
-
-    JSP             The body of the tag contains nested JSP
-            syntax.
-
-    empty           The body must be empty
-
-    scriptless      The body accepts only template text, EL
-            Expressions, and JSP action elements.  No
-            scripting elements are allowed.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:simpleContent>
-      <xsd:restriction base="j2ee:string">
-    <xsd:enumeration value="tagdependent"/>
-    <xsd:enumeration value="JSP"/>
-    <xsd:enumeration value="empty"/>
-    <xsd:enumeration value="scriptless"/>
-      </xsd:restriction>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="extensibleType" abstract="true">
-    <xsd:annotation>
-      <xsd:documentation>
-
-    The extensibleType is an abstract base type that is used to
-    define the type of extension-elements. Instance documents
-    must substitute a known type to define the extension by
-    using xsi:type attribute to define the actual type of
-    extension-elements.
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="functionType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-    The function element is used to provide information on each
-    function in the tag library that is to be exposed to the EL.
-
-    The function element may have several subelements defining:
-
-    description         Optional tag-specific information
-
-    display-name        A short name that is intended to be
-                displayed by tools
-
-    icon                Optional icon element that can be used
-                by tools
-
-    name                A unique name for this function
-
-    function-class      Provides the name of the Java class that
-                implements the function
-
-    function-signature  Provides the signature, as in the Java
-                Language Specification, of the Java
-                method that is to be used to implement
-                the function.
-
-    example             Optional informal description of an
-                example of a use of this function
-
-    function-extension  Zero or more extensions that provide extra
-                information about this function, for tool
-                consumption
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:group ref="j2ee:descriptionGroup"/>
-      <xsd:element name="name"
-           type="j2ee:tld-canonical-nameType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        A unique name for this function.
-
-      </xsd:documentation>
-    </xsd:annotation>
-      </xsd:element>
-      <xsd:element name="function-class"
-           type="j2ee:fully-qualified-classType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Provides the fully-qualified class name of the Java
-        class containing the static method that implements
-        the function.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-      </xsd:element>
-      <xsd:element name="function-signature"
-           type="j2ee:string">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Provides the signature, of the static Java method that is
-        to be used to implement the function.  The syntax of the
-        function-signature element is as follows:
-
-        FunctionSignature ::= ReturnType S MethodName S?
-                      '(' S? Parameters? S? ')'
-
-                ReturnType        ::= Type
-
-        MethodName        ::= Identifier
-
-        Parameters        ::=   Parameter
-                      | ( Parameter S? ',' S? Parameters )
-
-                Parameter         ::= Type
-
-        Where:
-
-            * Type is a basic type or a fully qualified Java class name
-              (including package name), as per the 'Type' production
-              in the Java Language Specification, Second Edition,
-              Chapter 18.
-
-                    * Identifier is a Java identifier, as per the 'Identifier'
-              production in the Java Language Specification, Second
-              Edition, Chapter 18.
-
-        Example:
-
-        java.lang.String nickName( java.lang.String, int )
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-      </xsd:element>
-      <xsd:element name="example"
-           type="j2ee:xsdStringType"
-           minOccurs="0">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The example element contains an informal description
-        of an example of the use of this function.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-      </xsd:element>
-      <xsd:element name="function-extension"
-           type="j2ee:tld-extensionType"
-           minOccurs="0"
-           maxOccurs="unbounded">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Function extensions are for tool use only and must not affect
-        the behavior of a container.
-
-      </xsd:documentation>
-    </xsd:annotation>
-      </xsd:element>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="tagFileType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-    Defines an action in this tag library that is implemented
-    as a .tag file.
-
-    The tag-file element has two required subelements:
-
-    description       Optional tag-specific information
-
-    display-name      A short name that is intended to be
-              displayed by tools
-
-    icon              Optional icon element that can be used
-              by tools
-
-    name              The unique action name
-
-    path              Where to find the .tag file implementing this
-              action, relative to the root of the web
-              application or the root of the JAR file for a
-              tag library packaged in a JAR.  This must
-              begin with /WEB-INF/tags if the .tag file
-              resides in the WAR, or /META-INF/tags if the
-              .tag file resides in a JAR.
-
-    example           Optional informal description of an
-              example of a use of this tag
-
-    tag-extension     Zero or more extensions that provide extra
-              information about this tag, for tool
-              consumption
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:group ref="j2ee:descriptionGroup"/>
-      <xsd:element name="name"
-           type="j2ee:tld-canonical-nameType"/>
-      <xsd:element name="path"
-           type="j2ee:pathType"/>
-      <xsd:element name="example"
-           type="j2ee:xsdStringType"
-           minOccurs="0">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The example element contains an informal description
-        of an example of the use of a tag.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-      </xsd:element>
-      <xsd:element name="tag-extension"
-           type="j2ee:tld-extensionType"
-           minOccurs="0"
-           maxOccurs="unbounded">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Tag extensions are for tool use only and must not affect
-        the behavior of a container.
-
-      </xsd:documentation>
-    </xsd:annotation>
-      </xsd:element>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="tagType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-    The tag defines a unique tag in this tag library.  It has one
-    attribute, id.
-
-    The tag element may have several subelements defining:
-
-    description       Optional tag-specific information
-
-    display-name      A short name that is intended to be
-              displayed by tools
-
-    icon              Optional icon element that can be used
-              by tools
-
-    name              The unique action name
-
-    tag-class         The tag handler class implementing
-              javax.servlet.jsp.tagext.JspTag
-
-    tei-class         An optional subclass of
-              javax.servlet.jsp.tagext.TagExtraInfo
-
-    body-content      The body content type
-
-    variable          Optional scripting variable information
-
-    attribute         All attributes of this action that are
-              evaluated prior to invocation.
-
-    dynamic-attributes Whether this tag supports additional
-               attributes with dynamic names.  If
-               true, the tag-class must implement the
-               javax.servlet.jsp.tagext.DynamicAttributes
-               interface.  Defaults to false.
-
-    example           Optional informal description of an
-              example of a use of this tag
-
-    tag-extension     Zero or more extensions that provide extra
-              information about this tag, for tool
-              consumption
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:group ref="j2ee:descriptionGroup"/>
-      <xsd:element name="name"
-           type="j2ee:tld-canonical-nameType"/>
-      <xsd:element name="tag-class"
-           type="j2ee:fully-qualified-classType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Defines the subclass of javax.serlvet.jsp.tagext.JspTag
-        that implements the request time semantics for
-        this tag. (required)
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-      </xsd:element>
-      <xsd:element name="tei-class"
-           type="j2ee:fully-qualified-classType"
-           minOccurs="0">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Defines the subclass of javax.servlet.jsp.tagext.TagExtraInfo
-        for this tag. (optional)
-
-        If this is not given, the class is not consulted at
-        translation time.
-
-      </xsd:documentation>
-    </xsd:annotation>
-      </xsd:element>
-      <xsd:element name="body-content"
-           type="j2ee:body-contentType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Specifies the format for the body of this tag.
-        The default in JSP 1.2 was "JSP" but because this
-        is an invalid setting for simple tag handlers, there
-        is no longer a default in JSP 2.0.  A reasonable
-        default for simple tag handlers is "scriptless" if
-        the tag can have a body.
-
-      </xsd:documentation>
-    </xsd:annotation>
-      </xsd:element>
-      <xsd:element name="variable"
-           type="j2ee:variableType"
-           minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="attribute"
-           type="j2ee:tld-attributeType"
-           minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="dynamic-attributes"
-           type="j2ee:generic-booleanType"
-           minOccurs="0"/>
-      <xsd:element name="example"
-           type="j2ee:xsdStringType"
-           minOccurs="0">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The example element contains an informal description
-        of an example of the use of a tag.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-      </xsd:element>
-      <xsd:element name="tag-extension"
-           type="j2ee:tld-extensionType"
-           minOccurs="0"
-           maxOccurs="unbounded">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Tag extensions are for tool use only and must not affect
-        the behavior of a container.
-
-      </xsd:documentation>
-    </xsd:annotation>
-      </xsd:element>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="tld-attributeType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-    The attribute element defines an attribute for the nesting
-    tag.  The attributre element may have several subelements
-    defining:
-
-    description     a description of the attribute
-
-    name            the name of the attribute
-
-    required        whether the attribute is required or
-            optional
-
-    rtexprvalue     whether the attribute is a runtime attribute
-
-    type            the type of the attributes
-
-    fragment        whether this attribute is a fragment
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="description"
-           type="j2ee:descriptionType"
-           minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="name"
-           type="j2ee:java-identifierType"/>
-      <xsd:element name="required"
-           type="j2ee:generic-booleanType"
-           minOccurs="0">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Defines if the nesting attribute is required or
-        optional.
-
-        If not present then the default is "false", i.e
-        the attribute is optional.
-
-      </xsd:documentation>
-    </xsd:annotation>
-      </xsd:element>
-
-      <xsd:choice>
-    <xsd:sequence>
-      <xsd:element name="rtexprvalue"
-               type="j2ee:generic-booleanType"
-               minOccurs="0">
-        <xsd:annotation>
-          <xsd:documentation>
-
-        Defines if the nesting attribute can have scriptlet
-        expressions as a value, i.e the value of the
-        attribute may be dynamically calculated at request
-        time, as opposed to a static value determined at
-        translation time.
-
-        If not present then the default is "false", i.e the
-        attribute has a static value
-
-          </xsd:documentation>
-        </xsd:annotation>
-
-      </xsd:element>
-      <xsd:element name="type"
-               type="j2ee:fully-qualified-classType"
-               minOccurs="0">
-        <xsd:annotation>
-          <xsd:documentation>
-
-        Defines the Java type of the attributes value.  For
-        static values (those determined at translation time)
-        the type is always java.lang.String.
-
-          </xsd:documentation>
-        </xsd:annotation>
-      </xsd:element>
-    </xsd:sequence>
-    <xsd:element name="fragment"
-             type="j2ee:generic-booleanType"
-             minOccurs="0">
-      <xsd:annotation>
-        <xsd:documentation>
-
-          "true" if this attribute is of type
-          javax.jsp.tagext.JspFragment, representing dynamic
-          content that can be re-evaluated as many times
-          as needed by the tag handler.  If omitted or "false",
-          the default is still type="java.lang.String"
-
-        </xsd:documentation>
-      </xsd:annotation>
-    </xsd:element>
-      </xsd:choice>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="tld-canonical-nameType">
-
-    <xsd:annotation>
-      <xsd:documentation>
-
-    Defines the canonical name of a tag or attribute being
-    defined.
-
-    The name must conform to the lexical rules for an NMTOKEN.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:simpleContent>
-      <xsd:restriction base="j2ee:xsdNMTOKENType"/>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="tld-extensionType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-    The tld-extensionType is used to indicate
-    extensions to a specific TLD element.
-
-    It is used by elements to designate an extension block
-    that is targeted to a specific extension designated by
-    a set of extension elements that are declared by a
-    namespace. The namespace identifies the extension to
-    the tool that processes the extension.
-
-    The type of the extension-element is abstract. Therefore,
-    a concrete type must be specified by the TLD using
-    xsi:type attribute for each extension-element.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="extension-element"
-           type="j2ee:extensibleType"
-           maxOccurs="unbounded"/>
-    </xsd:sequence>
-
-    <xsd:attribute name="namespace"
-           use="required"
-           type="xsd:anyURI"/>
-    <xsd:attribute name="id" type="xsd:ID"/>
-
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="tldTaglibType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-    The taglib tag is the document root, it defines:
-
-    description     a simple string describing the "use" of this taglib,
-            should be user discernable
-
-    display-name    the display-name element contains a
-            short name that is intended to be displayed
-            by tools
-
-    icon            optional icon that can be used by tools
-
-    tlib-version    the version of the tag library implementation
-
-    short-name      a simple default short name that could be
-            used by a JSP authoring tool to create
-            names with a mnemonic value; for example,
-            the it may be used as the prefered prefix
-            value in taglib directives
-
-    uri             a uri uniquely identifying this taglib
-
-    validator       optional TagLibraryValidator information
-
-    listener        optional event listener specification
-
-    tag             tags in this tag library
-
-    tag-file        tag files in this tag library
-
-    function        zero or more EL functions defined in this
-            tag library
-
-    taglib-extension zero or more extensions that provide extra
-            information about this taglib, for tool
-            consumption
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:group ref="j2ee:descriptionGroup"/>
-      <xsd:element name="tlib-version"
-           type="j2ee:dewey-versionType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Describes this version (number) of the taglibrary.
-        It is described as a dewey decimal.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-      </xsd:element>
-
-      <xsd:element name="short-name"
-           type="j2ee:tld-canonical-nameType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Defines a simple default name that could be used by
-        a JSP authoring tool to create names with a
-        mnemonicvalue; for example, it may be used as the
-        preferred prefix value in taglib directives.  Do
-        not use white space, and do not start with digits
-        or underscore.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-      </xsd:element>
-      <xsd:element name="uri"
-           type="j2ee:xsdAnyURIType"
-           minOccurs="0">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Defines a public URI that uniquely identifies this
-        version of the taglibrary.  Leave it empty if it
-        does not apply.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-      </xsd:element>
-      <xsd:element name="validator"
-           type="j2ee:validatorType"
-           minOccurs="0">
-      </xsd:element>
-      <xsd:element name="listener"
-           type="j2ee:listenerType"
-           minOccurs="0" maxOccurs="unbounded">
-      </xsd:element>
-      <xsd:element name="tag"
-           type="j2ee:tagType"
-           minOccurs="0"
-           maxOccurs="unbounded"/>
-      <xsd:element name="tag-file"
-           type="j2ee:tagFileType"
-           minOccurs="0"
-           maxOccurs="unbounded"/>
-      <xsd:element name="function"
-           type="j2ee:functionType"
-           minOccurs="0"
-           maxOccurs="unbounded"/>
-      <xsd:element name="taglib-extension"
-           type="j2ee:tld-extensionType"
-           minOccurs="0"
-           maxOccurs="unbounded">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Taglib extensions are for tool use only and must not affect
-        the behavior of a container.
-
-      </xsd:documentation>
-    </xsd:annotation>
-      </xsd:element>
-    </xsd:sequence>
-    <xsd:attribute name="version"
-           type="j2ee:dewey-versionType"
-           fixed="2.0"
-           use="required">
-      <xsd:annotation>
-    <xsd:documentation>
-
-      Describes the JSP version (number) this taglibrary
-      requires in order to function (dewey decimal)
-
-    </xsd:documentation>
-      </xsd:annotation>
-
-    </xsd:attribute>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="validatorType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-    A validator that can be used to validate
-    the conformance of a JSP page to using this tag library is
-    defined by a validatorType.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="description"
-           type="j2ee:descriptionType"
-           minOccurs="0"
-           maxOccurs="unbounded"/>
-      <xsd:element name="validator-class"
-           type="j2ee:fully-qualified-classType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Defines the TagLibraryValidator class that can be used
-        to validate the conformance of a JSP page to using this
-        tag library.
-
-      </xsd:documentation>
-    </xsd:annotation>
-      </xsd:element>
-      <xsd:element name="init-param"
-           type="j2ee:param-valueType"
-           minOccurs="0" maxOccurs="unbounded">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The init-param element contains a name/value pair as an
-        initialization param.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-      </xsd:element>
-
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="variable-scopeType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-    This type defines scope of the scripting variable.  See
-    TagExtraInfo for details.  The allowed values are,
-    "NESTED", "AT_BEGIN" and "AT_END".
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:simpleContent>
-      <xsd:restriction base="j2ee:string">
-    <xsd:enumeration value="NESTED"/>
-    <xsd:enumeration value="AT_BEGIN"/>
-    <xsd:enumeration value="AT_END"/>
-      </xsd:restriction>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="variableType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-    The variableType provides information on the scripting
-    variables defined by using this tag.  It is a (translation
-    time) error for a tag that has one or more variable
-    subelements to have a TagExtraInfo class that returns a
-    non-null value from a call to getVariableInfo().
-
-    The subelements of variableType are of the form:
-
-    description              Optional description of this
-                 variable
-
-    name-given               The variable name as a constant
-
-    name-from-attribute      The name of an attribute whose
-                 (translation time) value will
-                 give the name of the
-                 variable.  One of name-given or
-                 name-from-attribute is required.
-
-    variable-class           Name of the class of the variable.
-                 java.lang.String is default.
-
-    declare                  Whether the variable is declared
-                 or not.  True is the default.
-
-    scope                    The scope of the scripting varaible
-                 defined.  NESTED is default.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="description"
-           type="j2ee:descriptionType"
-           minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:choice>
-    <xsd:element name="name-given"
-             type="j2ee:java-identifierType">
-      <xsd:annotation>
-        <xsd:documentation>
-
-          The name for the scripting variable.
-
-        </xsd:documentation>
-      </xsd:annotation>
-    </xsd:element>
-
-    <xsd:element name="name-from-attribute"
-             type="j2ee:java-identifierType">
-      <xsd:annotation>
-        <xsd:documentation>
-
-          The name of an attribute whose
-          (translation-time) value will give the name of
-          the variable.
-
-        </xsd:documentation>
-      </xsd:annotation>
-    </xsd:element>
-      </xsd:choice>
-      <xsd:element name="variable-class"
-           type="j2ee:fully-qualified-classType"
-           minOccurs="0">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The optional name of the class for the scripting
-        variable.  The default is java.lang.String.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-      </xsd:element>
-
-      <xsd:element name="declare"
-           type="j2ee:generic-booleanType"
-           minOccurs="0">
-
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Whether the scripting variable is to be defined
-        or not.  See TagExtraInfo for details.  This
-        element is optional and "true" is the default.
-
-      </xsd:documentation>
-    </xsd:annotation>
-      </xsd:element>
-      <xsd:element name="scope"
-           type="j2ee:variable-scopeType"
-           minOccurs="0">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The element is optional and "NESTED" is the default.
-
-      </xsd:documentation>
-    </xsd:annotation>
-      </xsd:element>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-</xsd:schema>
-
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsd:schema
+     targetNamespace="http://java.sun.com/xml/ns/j2ee"
+     xmlns:j2ee="http://java.sun.com/xml/ns/j2ee"
+     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+     xmlns:xml="http://www.w3.org/XML/1998/namespace"
+     elementFormDefault="qualified"
+     attributeFormDefault="unqualified"
+     version="2.0">
+
+  <xsd:annotation>
+    <xsd:documentation>
+      @(#)web-jsptaglibrary_2_0.xsds	1.36 08/18/03
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      Copyright 2003 Sun Microsystems, Inc., 901 San Antonio
+      Road, Palo Alto, California 94303, U.S.A. All rights
+      reserved.
+
+      Sun Microsystems, Inc. has intellectual property rights
+      relating to technology described in this document. In
+      particular, and without limitation, these intellectual
+      property rights may include one or more of the U.S. patents
+      listed at http://www.sun.com/patents and one or more
+      additional patents or pending patent applications in the
+      U.S. and other countries.
+
+      This document and the technology which it describes are
+      distributed under licenses restricting their use, copying,
+      distribution, and decompilation. No part of this document
+      may be reproduced in any form by any means without prior
+      written authorization of Sun and its licensors, if any.
+
+      Third-party software, including font technology, is
+      copyrighted and licensed from Sun suppliers.
+
+      Sun, Sun Microsystems, the Sun logo, Solaris, Java, J2EE,
+      JavaServer Pages, Enterprise JavaBeans and the Java Coffee
+      Cup logo are trademarks or registered trademarks of Sun
+      Microsystems, Inc. in the U.S. and other countries.
+
+      Federal Acquisitions: Commercial Software - Government Users
+      Subject to Standard License Terms and Conditions.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+      <![CDATA[
+
+	This is the XML Schema for the JSP Taglibrary
+	descriptor.  All Taglibrary descriptors must
+	indicate the tag library schema by using the Taglibrary
+	namespace:
+
+	http://java.sun.com/xml/ns/j2ee
+
+	and by indicating the version of the schema by
+	using the version element as shown below:
+
+	    <taglib xmlns="http://java.sun.com/xml/ns/j2ee"
+	      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	      xsi:schemaLocation="..."
+	      version="2.0">
+	      ...
+	    </taglib>
+
+	The instance documents may indicate the published
+	version of the schema using xsi:schemaLocation attribute
+	for J2EE namespace with the following location:
+
+	http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd
+
+	]]>
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:include schemaLocation="j2ee_1_4.xsd"/>
+
+
+<!-- **************************************************** -->
+
+
+  <xsd:element name="taglib" type="j2ee:tldTaglibType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The taglib tag is the document root.
+	The definition of taglib is provided
+	by the tldTaglibType.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:unique name="tag-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The taglib element contains, among other things, tag and
+	  tag-file elements.
+	  The name subelements of these elements must each be unique.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:tag|j2ee:tag-file"/>
+      <xsd:field    xpath="j2ee:name"/>
+    </xsd:unique>
+
+    <xsd:unique name="function-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The taglib element contains function elements.
+	  The name subelements of these elements must each be unique.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:function"/>
+      <xsd:field    xpath="j2ee:name"/>
+    </xsd:unique>
+
+  </xsd:element>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="body-contentType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        Specifies the type of body that is valid for a tag.
+	This value is used by the JSP container to validate
+	that a tag invocation has the correct body syntax and
+	by page composition tools to assist the page author
+	in providing a valid tag body.
+
+	There are currently four values specified:
+
+	tagdependent    The body of the tag is interpreted by the tag
+			implementation itself, and is most likely
+			in a different "language", e.g embedded SQL
+			statements.
+
+	JSP             The body of the tag contains nested JSP
+			syntax.
+
+	empty           The body must be empty
+
+	scriptless      The body accepts only template text, EL
+			Expressions, and JSP action elements.  No
+			scripting elements are allowed.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+	<xsd:enumeration value="tagdependent"/>
+	<xsd:enumeration value="JSP"/>
+	<xsd:enumeration value="empty"/>
+	<xsd:enumeration value="scriptless"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="extensibleType" abstract="true">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The extensibleType is an abstract base type that is used to
+	define the type of extension-elements. Instance documents
+	must substitute a known type to define the extension by
+	using xsi:type attribute to define the actual type of
+	extension-elements.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="functionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The function element is used to provide information on each
+	function in the tag library that is to be exposed to the EL.
+
+	The function element may have several subelements defining:
+
+	description         Optional tag-specific information
+
+	display-name        A short name that is intended to be
+			    displayed by tools
+
+	icon                Optional icon element that can be used
+			    by tools
+
+	name                A unique name for this function
+
+	function-class      Provides the name of the Java class that
+			    implements the function
+
+	function-signature  Provides the signature, as in the Java
+			    Language Specification, of the Java
+			    method that is to be used to implement
+			    the function.
+
+	example             Optional informal description of an
+			    example of a use of this function
+
+	function-extension  Zero or more extensions that provide extra
+			    information about this function, for tool
+			    consumption
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="j2ee:descriptionGroup"/>
+      <xsd:element name="name"
+		   type="j2ee:tld-canonical-nameType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    A unique name for this function.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="function-class"
+		   type="j2ee:fully-qualified-classType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Provides the fully-qualified class name of the Java
+	    class containing the static method that implements
+	    the function.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+      <xsd:element name="function-signature"
+		   type="j2ee:string">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Provides the signature, of the static Java method that is
+	    to be used to implement the function.  The syntax of the
+	    function-signature element is as follows:
+
+		FunctionSignature ::= ReturnType S MethodName S?
+				      '(' S? Parameters? S? ')'
+
+                ReturnType        ::= Type
+
+		MethodName        ::= Identifier
+
+		Parameters        ::=   Parameter
+				      | ( Parameter S? ',' S? Parameters )
+
+                Parameter         ::= Type
+
+		Where:
+
+ 		    * Type is a basic type or a fully qualified Java class name
+		      (including package name), as per the 'Type' production
+		      in the Java Language Specification, Second Edition,
+		      Chapter 18.
+
+                    * Identifier is a Java identifier, as per the 'Identifier'
+		      production in the Java Language Specification, Second
+		      Edition, Chapter 18.
+
+	    Example:
+
+	    java.lang.String nickName( java.lang.String, int )
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+      <xsd:element name="example"
+		   type="j2ee:xsdStringType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The example element contains an informal description
+	    of an example of the use of this function.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+      <xsd:element name="function-extension"
+		   type="j2ee:tld-extensionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Function extensions are for tool use only and must not affect
+	    the behavior of a container.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="tagFileType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	Defines an action in this tag library that is implemented
+	as a .tag file.
+
+	The tag-file element has two required subelements:
+
+	description       Optional tag-specific information
+
+	display-name      A short name that is intended to be
+			  displayed by tools
+
+	icon              Optional icon element that can be used
+			  by tools
+
+	name              The unique action name
+
+	path              Where to find the .tag file implementing this
+			  action, relative to the root of the web
+			  application or the root of the JAR file for a
+			  tag library packaged in a JAR.  This must
+			  begin with /WEB-INF/tags if the .tag file
+			  resides in the WAR, or /META-INF/tags if the
+			  .tag file resides in a JAR.
+
+	example           Optional informal description of an
+			  example of a use of this tag
+
+	tag-extension     Zero or more extensions that provide extra
+			  information about this tag, for tool
+			  consumption
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="j2ee:descriptionGroup"/>
+      <xsd:element name="name"
+		   type="j2ee:tld-canonical-nameType"/>
+      <xsd:element name="path"
+		   type="j2ee:pathType"/>
+      <xsd:element name="example"
+		   type="j2ee:xsdStringType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The example element contains an informal description
+	    of an example of the use of a tag.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+      <xsd:element name="tag-extension"
+		   type="j2ee:tld-extensionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Tag extensions are for tool use only and must not affect
+	    the behavior of a container.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="tagType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The tag defines a unique tag in this tag library.  It has one
+	attribute, id.
+
+	The tag element may have several subelements defining:
+
+	description       Optional tag-specific information
+
+	display-name      A short name that is intended to be
+			  displayed by tools
+
+	icon              Optional icon element that can be used
+			  by tools
+
+	name              The unique action name
+
+	tag-class         The tag handler class implementing
+			  javax.servlet.jsp.tagext.JspTag
+
+	tei-class         An optional subclass of
+			  javax.servlet.jsp.tagext.TagExtraInfo
+
+	body-content      The body content type
+
+	variable          Optional scripting variable information
+
+	attribute         All attributes of this action that are
+			  evaluated prior to invocation.
+
+	dynamic-attributes Whether this tag supports additional
+			   attributes with dynamic names.  If
+			   true, the tag-class must implement the
+			   javax.servlet.jsp.tagext.DynamicAttributes
+			   interface.  Defaults to false.
+
+	example           Optional informal description of an
+			  example of a use of this tag
+
+	tag-extension     Zero or more extensions that provide extra
+			  information about this tag, for tool
+			  consumption
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="j2ee:descriptionGroup"/>
+      <xsd:element name="name"
+		   type="j2ee:tld-canonical-nameType"/>
+      <xsd:element name="tag-class"
+		   type="j2ee:fully-qualified-classType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Defines the subclass of javax.serlvet.jsp.tagext.JspTag
+	    that implements the request time semantics for
+	    this tag. (required)
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+      <xsd:element name="tei-class"
+		   type="j2ee:fully-qualified-classType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Defines the subclass of javax.servlet.jsp.tagext.TagExtraInfo
+	    for this tag. (optional)
+
+	    If this is not given, the class is not consulted at
+	    translation time.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="body-content"
+		   type="j2ee:body-contentType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Specifies the format for the body of this tag.
+	    The default in JSP 1.2 was "JSP" but because this
+	    is an invalid setting for simple tag handlers, there
+	    is no longer a default in JSP 2.0.  A reasonable
+	    default for simple tag handlers is "scriptless" if
+	    the tag can have a body.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="variable"
+		   type="j2ee:variableType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="attribute"
+		   type="j2ee:tld-attributeType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="dynamic-attributes"
+		   type="j2ee:generic-booleanType"
+		   minOccurs="0"/>
+      <xsd:element name="example"
+		   type="j2ee:xsdStringType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The example element contains an informal description
+	    of an example of the use of a tag.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+      <xsd:element name="tag-extension"
+		   type="j2ee:tld-extensionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Tag extensions are for tool use only and must not affect
+	    the behavior of a container.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="tld-attributeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The attribute element defines an attribute for the nesting
+	tag.  The attributre element may have several subelements
+	defining:
+
+	description     a description of the attribute
+
+	name            the name of the attribute
+
+	required        whether the attribute is required or
+			optional
+
+	rtexprvalue     whether the attribute is a runtime attribute
+
+	type            the type of the attributes
+
+	fragment        whether this attribute is a fragment
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="name"
+		   type="j2ee:java-identifierType"/>
+      <xsd:element name="required"
+		   type="j2ee:generic-booleanType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Defines if the nesting attribute is required or
+	    optional.
+
+	    If not present then the default is "false", i.e
+	    the attribute is optional.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:choice>
+	<xsd:sequence>
+	  <xsd:element name="rtexprvalue"
+		       type="j2ee:generic-booleanType"
+		       minOccurs="0">
+	    <xsd:annotation>
+	      <xsd:documentation>
+
+		Defines if the nesting attribute can have scriptlet
+		expressions as a value, i.e the value of the
+		attribute may be dynamically calculated at request
+		time, as opposed to a static value determined at
+		translation time.
+
+		If not present then the default is "false", i.e the
+		attribute has a static value
+
+	      </xsd:documentation>
+	    </xsd:annotation>
+
+	  </xsd:element>
+	  <xsd:element name="type"
+		       type="j2ee:fully-qualified-classType"
+		       minOccurs="0">
+	    <xsd:annotation>
+	      <xsd:documentation>
+
+		Defines the Java type of the attributes value.  For
+		static values (those determined at translation time)
+		the type is always java.lang.String.
+
+	      </xsd:documentation>
+	    </xsd:annotation>
+	  </xsd:element>
+	</xsd:sequence>
+	<xsd:element name="fragment"
+		     type="j2ee:generic-booleanType"
+		     minOccurs="0">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      "true" if this attribute is of type
+	      javax.jsp.tagext.JspFragment, representing dynamic
+	      content that can be re-evaluated as many times
+	      as needed by the tag handler.  If omitted or "false",
+	      the default is still type="java.lang.String"
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+      </xsd:choice>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="tld-canonical-nameType">
+
+    <xsd:annotation>
+      <xsd:documentation>
+
+	Defines the canonical name of a tag or attribute being
+	defined.
+
+	The name must conform to the lexical rules for an NMTOKEN.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:xsdNMTOKENType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="tld-extensionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The tld-extensionType is used to indicate
+	extensions to a specific TLD element.
+
+	It is used by elements to designate an extension block
+	that is targeted to a specific extension designated by
+	a set of extension elements that are declared by a
+	namespace. The namespace identifies the extension to
+	the tool that processes the extension.
+
+	The type of the extension-element is abstract. Therefore,
+	a concrete type must be specified by the TLD using
+	xsi:type attribute for each extension-element.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="extension-element"
+		   type="j2ee:extensibleType"
+		   maxOccurs="unbounded"/>
+    </xsd:sequence>
+
+    <xsd:attribute name="namespace"
+		   use="required"
+		   type="xsd:anyURI"/>
+    <xsd:attribute name="id" type="xsd:ID"/>
+
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="tldTaglibType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The taglib tag is the document root, it defines:
+
+	description     a simple string describing the "use" of this taglib,
+			should be user discernable
+
+	display-name    the display-name element contains a
+			short name that is intended to be displayed
+			by tools
+
+	icon            optional icon that can be used by tools
+
+	tlib-version    the version of the tag library implementation
+
+	short-name      a simple default short name that could be
+			used by a JSP authoring tool to create
+			names with a mnemonic value; for example,
+			the it may be used as the prefered prefix
+			value in taglib directives
+
+	uri             a uri uniquely identifying this taglib
+
+	validator       optional TagLibraryValidator information
+
+	listener        optional event listener specification
+
+	tag             tags in this tag library
+
+	tag-file        tag files in this tag library
+
+	function        zero or more EL functions defined in this
+			tag library
+
+	taglib-extension zero or more extensions that provide extra
+			information about this taglib, for tool
+			consumption
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:group ref="j2ee:descriptionGroup"/>
+      <xsd:element name="tlib-version"
+		   type="j2ee:dewey-versionType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Describes this version (number) of the taglibrary.
+	    It is described as a dewey decimal.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+
+      <xsd:element name="short-name"
+		   type="j2ee:tld-canonical-nameType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Defines a simple default name that could be used by
+	    a JSP authoring tool to create names with a
+	    mnemonicvalue; for example, it may be used as the
+	    preferred prefix value in taglib directives.  Do
+	    not use white space, and do not start with digits
+	    or underscore.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+      <xsd:element name="uri"
+		   type="j2ee:xsdAnyURIType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Defines a public URI that uniquely identifies this
+	    version of the taglibrary.  Leave it empty if it
+	    does not apply.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+      <xsd:element name="validator"
+		   type="j2ee:validatorType"
+		   minOccurs="0">
+      </xsd:element>
+      <xsd:element name="listener"
+		   type="j2ee:listenerType"
+		   minOccurs="0" maxOccurs="unbounded">
+      </xsd:element>
+      <xsd:element name="tag"
+		   type="j2ee:tagType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="tag-file"
+		   type="j2ee:tagFileType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="function"
+		   type="j2ee:functionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="taglib-extension"
+		   type="j2ee:tld-extensionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Taglib extensions are for tool use only and must not affect
+	    the behavior of a container.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="version"
+		   type="j2ee:dewey-versionType"
+		   fixed="2.0"
+		   use="required">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  Describes the JSP version (number) this taglibrary
+	  requires in order to function (dewey decimal)
+
+	</xsd:documentation>
+      </xsd:annotation>
+
+    </xsd:attribute>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="validatorType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	A validator that can be used to validate
+	the conformance of a JSP page to using this tag library is
+	defined by a validatorType.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="validator-class"
+		   type="j2ee:fully-qualified-classType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Defines the TagLibraryValidator class that can be used
+	    to validate the conformance of a JSP page to using this
+	    tag library.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="init-param"
+		   type="j2ee:param-valueType"
+		   minOccurs="0" maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The init-param element contains a name/value pair as an
+	    initialization param.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="variable-scopeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	This type defines scope of the scripting variable.  See
+	TagExtraInfo for details.  The allowed values are,
+	"NESTED", "AT_BEGIN" and "AT_END".
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+	<xsd:enumeration value="NESTED"/>
+	<xsd:enumeration value="AT_BEGIN"/>
+	<xsd:enumeration value="AT_END"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="variableType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The variableType provides information on the scripting
+	variables defined by using this tag.  It is a (translation
+	time) error for a tag that has one or more variable
+	subelements to have a TagExtraInfo class that returns a
+	non-null value from a call to getVariableInfo().
+
+	The subelements of variableType are of the form:
+
+	description              Optional description of this
+				 variable
+
+	name-given               The variable name as a constant
+
+	name-from-attribute      The name of an attribute whose
+				 (translation time) value will
+				 give the name of the
+				 variable.  One of name-given or
+				 name-from-attribute is required.
+
+	variable-class           Name of the class of the variable.
+				 java.lang.String is default.
+
+	declare                  Whether the variable is declared
+				 or not.  True is the default.
+
+	scope                    The scope of the scripting varaible
+				 defined.  NESTED is default.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:choice>
+	<xsd:element name="name-given"
+		     type="j2ee:java-identifierType">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The name for the scripting variable.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+
+	<xsd:element name="name-from-attribute"
+		     type="j2ee:java-identifierType">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The name of an attribute whose
+	      (translation-time) value will give the name of
+	      the variable.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+      </xsd:choice>
+      <xsd:element name="variable-class"
+		   type="j2ee:fully-qualified-classType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The optional name of the class for the scripting
+	    variable.  The default is java.lang.String.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+
+      <xsd:element name="declare"
+		   type="j2ee:generic-booleanType"
+		   minOccurs="0">
+
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Whether the scripting variable is to be defined
+	    or not.  See TagExtraInfo for details.  This
+	    element is optional and "true" is the default.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="scope"
+		   type="j2ee:variable-scopeType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The element is optional and "NESTED" is the default.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+</xsd:schema>
+

Modified: projects/metadata/web/trunk/src/main/resources/schema/web-jsptaglibrary_2_1.xsd
===================================================================
--- projects/metadata/web/trunk/src/main/resources/schema/web-jsptaglibrary_2_1.xsd	2009-10-20 15:38:37 UTC (rev 95185)
+++ projects/metadata/web/trunk/src/main/resources/schema/web-jsptaglibrary_2_1.xsd	2009-10-20 15:42:08 UTC (rev 95186)
@@ -1,229 +1,1144 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
+<xsd:schema
+     targetNamespace="http://java.sun.com/xml/ns/javaee"
+     xmlns:javaee="http://java.sun.com/xml/ns/javaee"
+     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+     elementFormDefault="qualified"
+     attributeFormDefault="unqualified"
+     version="2.1">
 
-      http://www.apache.org/licenses/LICENSE-2.0
+  <xsd:annotation>
+    <xsd:documentation>
+      @(#)web-jsptaglibrary_2_1.xsds	1.1
+    </xsd:documentation>
+  </xsd:annotation>
 
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
+  <xsd:annotation>
+    <xsd:documentation>
 
-<!--
-  ** This XSD contains only the programatic elements required for an implementation.
-  ** For the XSD from Sun that includes documentation and other copyrighted information
-  ** please refer to http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd for a fully documented and latest
-  **  XSD.
--->
+      Copyright 2003-2005 Sun Microsystems, Inc.
+      4150 Network Circle
+      Santa Clara, California 95054
+      U.S.A
+      All rights reserved.
 
-<xsd:schema targetNamespace="http://java.sun.com/xml/ns/javaee" 
-            xmlns:javaee="http://java.sun.com/xml/ns/javaee" 
-            xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
-            elementFormDefault="qualified" 
-            attributeFormDefault="unqualified" 
-            version="2.1">
+      Sun Microsystems, Inc. has intellectual property rights
+      relating to technology described in this document. In
+      particular, and without limitation, these intellectual
+      property rights may include one or more of the U.S. patents
+      listed at http://www.sun.com/patents and one or more
+      additional patents or pending patent applications in the
+      U.S. and other countries.
 
-    <xsd:include schemaLocation="javaee_5.xsd" />
+      This document and the technology which it describes are
+      distributed under licenses restricting their use, copying,
+      distribution, and decompilation. No part of this document
+      may be reproduced in any form by any means without prior
+      written authorization of Sun and its licensors, if any.
 
-    <xsd:element name="taglib" type="javaee:tldTaglibType">
-        <xsd:unique name="tag-name-uniqueness">
-            <xsd:selector xpath="javaee:tag|javaee:tag-file" />
-            <xsd:field xpath="javaee:name" />
-        </xsd:unique>
+      Third-party software, including font technology, is
+      copyrighted and licensed from Sun suppliers.
 
-        <xsd:unique name="function-name-uniqueness">
-            <xsd:selector xpath="javaee:function" />
-            <xsd:field xpath="javaee:name" />
-        </xsd:unique>
-    </xsd:element>
+      Sun, Sun Microsystems, the Sun logo, Solaris, Java, J2EE,
+      JavaServer Pages, Enterprise JavaBeans and the Java Coffee
+      Cup logo are trademarks or registered trademarks of Sun
+      Microsystems, Inc. in the U.S. and other countries.
 
-    <xsd:complexType name="body-contentType">
-        <xsd:simpleContent>
-            <xsd:restriction base="javaee:string">
-                <xsd:enumeration value="tagdependent" />
-                <xsd:enumeration value="JSP" />
-                <xsd:enumeration value="empty" />
-                <xsd:enumeration value="scriptless" />
-            </xsd:restriction>
-        </xsd:simpleContent>
-    </xsd:complexType>
+      Federal Acquisitions: Commercial Software - Government Users
+      Subject to Standard License Terms and Conditions.
 
-    <xsd:complexType name="extensibleType" abstract="true">
-        <xsd:attribute name="id" type="xsd:ID" />
-    </xsd:complexType>
+    </xsd:documentation>
+  </xsd:annotation>
 
-    <xsd:complexType name="functionType">
-        <xsd:sequence>
-            <xsd:group ref="javaee:descriptionGroup" />
-            <xsd:element name="name" type="javaee:tld-canonical-nameType"></xsd:element>
-            <xsd:element name="function-class" type="javaee:fully-qualified-classType"></xsd:element>
-            <xsd:element name="function-signature" type="javaee:string"></xsd:element>
-            <xsd:element name="example" type="javaee:xsdStringType" minOccurs="0"></xsd:element>
-            <xsd:element name="function-extension" type="javaee:tld-extensionType" minOccurs="0" maxOccurs="unbounded"></xsd:element>
+  <xsd:annotation>
+    <xsd:documentation>
+      <![CDATA[
 
-        </xsd:sequence>
-        <xsd:attribute name="id" type="xsd:ID" />
-    </xsd:complexType>
+	This is the XML Schema for the JSP Taglibrary
+	descriptor.  All Taglibrary descriptors must
+	indicate the tag library schema by using the Taglibrary
+	namespace:
 
-    <xsd:complexType name="tagFileType">
-        <xsd:sequence>
-            <xsd:group ref="javaee:descriptionGroup" />
-            <xsd:element name="name" type="javaee:tld-canonical-nameType" />
-            <xsd:element name="path" type="javaee:pathType" />
-            <xsd:element name="example" type="javaee:xsdStringType" minOccurs="0"></xsd:element>
-            <xsd:element name="tag-extension" type="javaee:tld-extensionType" minOccurs="0" maxOccurs="unbounded"></xsd:element>
-        </xsd:sequence>
-        <xsd:attribute name="id" type="xsd:ID" />
-    </xsd:complexType>
+	http://java.sun.com/xml/ns/javaee
 
-    <xsd:complexType name="tagType">
-        <xsd:sequence>
-            <xsd:group ref="javaee:descriptionGroup" />
-            <xsd:element name="name" type="javaee:tld-canonical-nameType" />
-            <xsd:element name="tag-class" type="javaee:fully-qualified-classType"></xsd:element>
-            <xsd:element name="tei-class" type="javaee:fully-qualified-classType" minOccurs="0"></xsd:element>
-            <xsd:element name="body-content" type="javaee:body-contentType"></xsd:element>
-            <xsd:element name="variable" type="javaee:variableType" minOccurs="0" maxOccurs="unbounded" />
-            <xsd:element name="attribute" type="javaee:tld-attributeType" minOccurs="0" maxOccurs="unbounded" />
-            <xsd:element name="dynamic-attributes" type="javaee:generic-booleanType" minOccurs="0" />
-            <xsd:element name="example" type="javaee:xsdStringType" minOccurs="0" />
-            <xsd:element name="tag-extension" type="javaee:tld-extensionType" minOccurs="0" maxOccurs="unbounded" />
-        </xsd:sequence>
-        <xsd:attribute name="id" type="xsd:ID" />
-    </xsd:complexType>
+	and by indicating the version of the schema by
+	using the version element as shown below:
 
-    <xsd:complexType name="tld-attributeType">
-        <xsd:sequence>
-            <xsd:element name="description" type="javaee:descriptionType" minOccurs="0" maxOccurs="unbounded" />
+	    <taglib xmlns="http://java.sun.com/xml/ns/javaee"
+	      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	      xsi:schemaLocation="..."
+	      version="2.1">
+	      ...
+	    </taglib>
 
-            <xsd:element name="name" type="javaee:java-identifierType" />
-            <xsd:element name="required" type="javaee:generic-booleanType" minOccurs="0"></xsd:element>
-            <xsd:choice>
+	The instance documents may indicate the published
+	version of the schema using xsi:schemaLocation attribute
+	for Java EE namespace with the following location:
 
-                <xsd:sequence>
-                    <xsd:sequence minOccurs="0">
-                        <xsd:element name="rtexprvalue" type="javaee:generic-booleanType"></xsd:element>
+	http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd
 
-                        <xsd:element name="type" type="javaee:fully-qualified-classType" minOccurs="0"></xsd:element>
-                    </xsd:sequence>
+	]]>
+    </xsd:documentation>
+  </xsd:annotation>
 
-                    <xsd:choice>
-                        <xsd:element name="deferred-value" type="javaee:tld-deferred-valueType" minOccurs="0"></xsd:element>
-                        <xsd:element name="deferred-method" type="javaee:tld-deferred-methodType" minOccurs="0"></xsd:element>
-                    </xsd:choice>
-                </xsd:sequence>
+  <xsd:include schemaLocation="javaee_5.xsd"/>
 
-                <xsd:element name="fragment" type="javaee:generic-booleanType" minOccurs="0"></xsd:element>
 
-            </xsd:choice>
+<!-- **************************************************** -->
 
-        </xsd:sequence>
-        <xsd:attribute name="id" type="xsd:ID" />
-    </xsd:complexType>
+  <xsd:element name="taglib" type="javaee:tldTaglibType">
+    <xsd:annotation>
+      <xsd:documentation>
 
-    <xsd:complexType name="tld-canonical-nameType">
-        <xsd:simpleContent>
-            <xsd:restriction base="javaee:xsdNMTOKENType" />
-        </xsd:simpleContent>
-    </xsd:complexType>
+	The taglib tag is the document root.
+	The definition of taglib is provided
+	by the tldTaglibType.
 
-    <xsd:complexType name="tld-deferred-methodType">
-        <xsd:sequence>
-            <xsd:element name="method-signature" type="javaee:string" minOccurs="0"></xsd:element>
-        </xsd:sequence>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:unique name="tag-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
 
-        <xsd:attribute name="id" type="xsd:ID" />
+	  The taglib element contains, among other things, tag and
+	  tag-file elements.
+	  The name subelements of these elements must each be unique.
 
-    </xsd:complexType>
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:tag|javaee:tag-file"/>
+      <xsd:field    xpath="javaee:name"/>
+    </xsd:unique>
 
-    <xsd:complexType name="tld-deferred-valueType">
+    <xsd:unique name="function-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
 
-        <xsd:sequence>
-            <xsd:element name="type" type="javaee:fully-qualified-classType" minOccurs="0"></xsd:element>
+	  The taglib element contains function elements.
+	  The name subelements of these elements must each be unique.
 
-        </xsd:sequence>
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:function"/>
+      <xsd:field    xpath="javaee:name"/>
+    </xsd:unique>
 
-        <xsd:attribute name="id" type="xsd:ID" />
-    </xsd:complexType>
+  </xsd:element>
 
-    <xsd:complexType name="tld-extensionType">
-        <xsd:sequence>
-            <xsd:element name="extension-element" type="javaee:extensibleType" maxOccurs="unbounded" />
-        </xsd:sequence>
 
-        <xsd:attribute name="namespace" use="required" type="xsd:anyURI" />
-        <xsd:attribute name="id" type="xsd:ID" />
+<!-- **************************************************** -->
 
-    </xsd:complexType>
+  <xsd:complexType name="body-contentType">
+    <xsd:annotation>
+      <xsd:documentation>
 
-    <xsd:complexType name="tldTaglibType">
-        <xsd:sequence>
-            <xsd:group ref="javaee:descriptionGroup" />
-            <xsd:element name="tlib-version" type="javaee:dewey-versionType"></xsd:element>
+        Specifies the type of body that is valid for a tag.
+	This value is used by the JSP container to validate
+	that a tag invocation has the correct body syntax and
+	by page composition tools to assist the page author
+	in providing a valid tag body.
 
-            <xsd:element name="short-name" type="javaee:tld-canonical-nameType">
+	There are currently four values specified:
 
-            </xsd:element>
+	tagdependent    The body of the tag is interpreted by the tag
+			implementation itself, and is most likely
+			in a different "language", e.g embedded SQL
+			statements.
 
-            <xsd:element name="uri" type="javaee:xsdAnyURIType" minOccurs="0">
+	JSP             The body of the tag contains nested JSP
+			syntax.
 
-            </xsd:element>
-            <xsd:element name="validator" type="javaee:validatorType" minOccurs="0">
+	empty           The body must be empty
 
-            </xsd:element>
-            <xsd:element name="listener" type="javaee:listenerType" minOccurs="0" maxOccurs="unbounded"></xsd:element>
-            <xsd:element name="tag" type="javaee:tagType" minOccurs="0" maxOccurs="unbounded" />
-            <xsd:element name="tag-file" type="javaee:tagFileType" minOccurs="0" maxOccurs="unbounded" />
-            <xsd:element name="function" type="javaee:functionType" minOccurs="0" maxOccurs="unbounded" />
-            <xsd:element name="taglib-extension" type="javaee:tld-extensionType" minOccurs="0" maxOccurs="unbounded"></xsd:element>
-        </xsd:sequence>
-        <xsd:attribute name="version" type="javaee:dewey-versionType" fixed="2.1" use="required"></xsd:attribute>
-        <xsd:attribute name="id" type="xsd:ID" />
-    </xsd:complexType>
+	scriptless      The body accepts only template text, EL
+			Expressions, and JSP action elements.  No
+			scripting elements are allowed.
 
-    <xsd:complexType name="validatorType">
-        <xsd:sequence>
-            <xsd:element name="description" type="javaee:descriptionType" minOccurs="0" maxOccurs="unbounded" />
-            <xsd:element name="validator-class" type="javaee:fully-qualified-classType"></xsd:element>
-            <xsd:element name="init-param" type="javaee:param-valueType" minOccurs="0" maxOccurs="unbounded"></xsd:element>
+      </xsd:documentation>
+    </xsd:annotation>
 
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:enumeration value="tagdependent"/>
+	<xsd:enumeration value="JSP"/>
+	<xsd:enumeration value="empty"/>
+	<xsd:enumeration value="scriptless"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="extensibleType" abstract="true">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The extensibleType is an abstract base type that is used to
+	define the type of extension-elements. Instance documents
+	must substitute a known type to define the extension by
+	using xsi:type attribute to define the actual type of
+	extension-elements.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="functionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The function element is used to provide information on each
+	function in the tag library that is to be exposed to the EL.
+
+	The function element may have several subelements defining:
+
+	description         Optional tag-specific information
+
+	display-name        A short name that is intended to be
+			    displayed by tools
+
+	icon                Optional icon element that can be used
+			    by tools
+
+	name                A unique name for this function
+
+	function-class      Provides the name of the Java class that
+			    implements the function
+
+	function-signature  Provides the signature, as in the Java
+			    Language Specification, of the Java
+			    method that is to be used to implement
+			    the function.
+
+	example             Optional informal description of an
+			    example of a use of this function
+
+	function-extension  Zero or more extensions that provide extra
+			    information about this function, for tool
+			    consumption
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="name"
+		   type="javaee:tld-canonical-nameType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    A unique name for this function.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="function-class"
+		   type="javaee:fully-qualified-classType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Provides the fully-qualified class name of the Java
+	    class containing the static method that implements
+	    the function.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+      <xsd:element name="function-signature"
+		   type="javaee:string">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Provides the signature, of the static Java method that is
+	    to be used to implement the function.  The syntax of the
+	    function-signature element is as follows:
+
+		FunctionSignature ::= ReturnType S MethodName S?
+				      '(' S? Parameters? S? ')'
+
+                ReturnType        ::= Type
+
+		MethodName        ::= Identifier
+
+		Parameters        ::=   Parameter
+				      | ( Parameter S? ',' S? Parameters )
+
+                Parameter         ::= Type
+
+		Where:
+
+ 		    * Type is a basic type or a fully qualified
+		      Java class name (including package name),
+		      as per the 'Type' production in the Java
+		      Language Specification, Second Edition,
+		      Chapter 18.
+
+                    * Identifier is a Java identifier, as per
+		      the 'Identifier' production in the Java
+		      Language Specification, Second
+		      Edition, Chapter 18.
+
+	    Example:
+
+	    java.lang.String nickName( java.lang.String, int )
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+      <xsd:element name="example"
+		   type="javaee:xsdStringType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The example element contains an informal description
+	    of an example of the use of this function.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+      <xsd:element name="function-extension"
+		   type="javaee:tld-extensionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Function extensions are for tool use only and must not
+            affect the behavior of a container.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="tagFileType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	Defines an action in this tag library that is implemented
+	as a .tag file.
+
+	The tag-file element has two required subelements:
+
+	description       Optional tag-specific information
+
+	display-name      A short name that is intended to be
+			  displayed by tools
+
+	icon              Optional icon element that can be used
+			  by tools
+
+	name              The unique action name
+
+	path              Where to find the .tag file implementing this
+			  action, relative to the root of the web
+			  application or the root of the JAR file for a
+			  tag library packaged in a JAR.  This must
+			  begin with /WEB-INF/tags if the .tag file
+			  resides in the WAR, or /META-INF/tags if the
+			  .tag file resides in a JAR.
+
+	example           Optional informal description of an
+			  example of a use of this tag
+
+	tag-extension     Zero or more extensions that provide extra
+			  information about this tag, for tool
+			  consumption
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="name"
+		   type="javaee:tld-canonical-nameType"/>
+      <xsd:element name="path"
+		   type="javaee:pathType"/>
+      <xsd:element name="example"
+		   type="javaee:xsdStringType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The example element contains an informal description
+	    of an example of the use of a tag.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+      <xsd:element name="tag-extension"
+		   type="javaee:tld-extensionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Tag extensions are for tool use only and must not affect
+	    the behavior of a container.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="tagType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The tag defines a unique tag in this tag library.  It has one
+	attribute, id.
+
+	The tag element may have several subelements defining:
+
+	description       Optional tag-specific information
+
+	display-name      A short name that is intended to be
+			  displayed by tools
+
+	icon              Optional icon element that can be used
+			  by tools
+
+	name              The unique action name
+
+	tag-class         The tag handler class implementing
+			  javax.servlet.jsp.tagext.JspTag
+
+	tei-class         An optional subclass of
+			  javax.servlet.jsp.tagext.TagExtraInfo
+
+	body-content      The body content type
+
+	variable          Optional scripting variable information
+
+	attribute         All attributes of this action that are
+			  evaluated prior to invocation.
+
+	dynamic-attributes Whether this tag supports additional
+			   attributes with dynamic names.  If
+			   true, the tag-class must implement the
+			   javax.servlet.jsp.tagext.DynamicAttributes
+			   interface.  Defaults to false.
+
+	example           Optional informal description of an
+			  example of a use of this tag
+
+	tag-extension     Zero or more extensions that provide extra
+			  information about this tag, for tool
+			  consumption
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="name"
+		   type="javaee:tld-canonical-nameType"/>
+      <xsd:element name="tag-class"
+		   type="javaee:fully-qualified-classType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Defines the subclass of javax.serlvet.jsp.tagext.JspTag
+	    that implements the request time semantics for
+	    this tag. (required)
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+      <xsd:element name="tei-class"
+		   type="javaee:fully-qualified-classType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Defines the subclass of javax.servlet.jsp.tagext.TagExtraInfo
+	    for this tag. (optional)
+
+	    If this is not given, the class is not consulted at
+	    translation time.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="body-content"
+		   type="javaee:body-contentType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Specifies the format for the body of this tag.
+	    The default in JSP 1.2 was "JSP" but because this
+	    is an invalid setting for simple tag handlers, there
+	    is no longer a default in JSP 2.0.  A reasonable
+	    default for simple tag handlers is "scriptless" if
+	    the tag can have a body.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="variable"
+		   type="javaee:variableType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="attribute"
+		   type="javaee:tld-attributeType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="dynamic-attributes"
+		   type="javaee:generic-booleanType"
+		   minOccurs="0"/>
+      <xsd:element name="example"
+		   type="javaee:xsdStringType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The example element contains an informal description
+	    of an example of the use of a tag.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+      <xsd:element name="tag-extension"
+		   type="javaee:tld-extensionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Tag extensions are for tool use only and must not affect
+	    the behavior of a container.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="tld-attributeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The attribute element defines an attribute for the nesting
+	tag.  The attribute element may have several subelements
+	defining:
+
+	description     a description of the attribute
+
+	name            the name of the attribute
+
+	required        whether the attribute is required or
+			optional
+
+	rtexprvalue     whether the attribute is a runtime attribute
+
+	type            the type of the attributes
+
+	fragment        whether this attribute is a fragment
+
+        deferred-value  present if this attribute is to be parsed as a
+                        javax.el.ValueExpression
+
+        deferred-method present if this attribute is to be parsed as a
+                        javax.el.MethodExpression
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="name"
+		   type="javaee:java-identifierType"/>
+      <xsd:element name="required"
+		   type="javaee:generic-booleanType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Defines if the nesting attribute is required or
+	    optional.
+
+	    If not present then the default is "false", i.e
+	    the attribute is optional.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:choice>
+	<xsd:sequence>
+          <xsd:sequence minOccurs="0">
+	    <xsd:element name="rtexprvalue"
+		         type="javaee:generic-booleanType">
+	      <xsd:annotation>
+	        <xsd:documentation>
+
+		  Defines if the nesting attribute can have scriptlet
+		  expressions as a value, i.e the value of the
+		  attribute may be dynamically calculated at request
+		  time, as opposed to a static value determined at
+		  translation time.
+		  If not present then the default is "false", i.e the
+		  attribute has a static value
+
+	        </xsd:documentation>
+	      </xsd:annotation>
+	    </xsd:element>
+	    <xsd:element name="type"
+		         type="javaee:fully-qualified-classType"
+		         minOccurs="0">
+	      <xsd:annotation>
+	        <xsd:documentation>
+
+		  Defines the Java type of the attributes value.
+                  If this element is omitted, the expected type is
+                  assumed to be "java.lang.Object".
+
+	        </xsd:documentation>
+	      </xsd:annotation>
+	    </xsd:element>
+	  </xsd:sequence>
+
+          <xsd:choice>
+	    <xsd:element name="deferred-value"
+		         type="javaee:tld-deferred-valueType"
+		         minOccurs="0">
+	      <xsd:annotation>
+	        <xsd:documentation>
+
+                  Present if the value for this attribute is to be
+                  passed to the tag handler as a
+                  javax.el.ValueExpression. This allows for deferred
+                  evaluation of EL expressions. An optional subelement
+                  will contain the expected type that the value will
+                  be coerced to after evaluation of the expression.
+                  The type defaults to Object if one is not provided.
+
+	        </xsd:documentation>
+	      </xsd:annotation>
+	    </xsd:element>
+	    <xsd:element name="deferred-method"
+		       type="javaee:tld-deferred-methodType"
+		       minOccurs="0">
+	      <xsd:annotation>
+	        <xsd:documentation>
+
+                Present if the value for this attribute is to be
+                passed to the tag handler as a
+                javax.el.MethodExpression. This allows for deferred
+                evaluation of an EL expression that identifies a
+                method to be invoked on an Object. An optional
+                subelement will contain the expected method
+                signature. The signature defaults to "void method()"
+                if one is not provided.
+
+	        </xsd:documentation>
+	      </xsd:annotation>
+	    </xsd:element>
+          </xsd:choice>
         </xsd:sequence>
-        <xsd:attribute name="id" type="xsd:ID" />
-    </xsd:complexType>
 
-    <xsd:complexType name="variable-scopeType">
-        <xsd:simpleContent>
+	<xsd:element name="fragment"
+		     type="javaee:generic-booleanType"
+		     minOccurs="0">
+	  <xsd:annotation>
+	    <xsd:documentation>
 
-            <xsd:restriction base="javaee:string">
-                <xsd:enumeration value="NESTED" />
-                <xsd:enumeration value="AT_BEGIN" />
-                <xsd:enumeration value="AT_END" />
-            </xsd:restriction>
-        </xsd:simpleContent>
-    </xsd:complexType>
+	      "true" if this attribute is of type
+	      javax.jsp.tagext.JspFragment, representing dynamic
+	      content that can be re-evaluated as many times
+	      as needed by the tag handler.  If omitted or "false",
+	      the default is still type="java.lang.String"
 
-    <xsd:complexType name="variableType">
-        <xsd:sequence>
-            <xsd:element name="description" type="javaee:descriptionType" minOccurs="0" maxOccurs="unbounded" />
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
 
-            <xsd:choice>
-                <xsd:element name="name-given" type="javaee:java-identifierType"></xsd:element>
+      </xsd:choice>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
 
-                <xsd:element name="name-from-attribute" type="javaee:java-identifierType"></xsd:element>
-            </xsd:choice>
-            <xsd:element name="variable-class" type="javaee:fully-qualified-classType" minOccurs="0"></xsd:element>
+<!-- **************************************************** -->
 
-            <xsd:element name="declare" type="javaee:generic-booleanType" minOccurs="0"></xsd:element>
-            <xsd:element name="scope" type="javaee:variable-scopeType" minOccurs="0"></xsd:element>
-        </xsd:sequence>
-        <xsd:attribute name="id" type="xsd:ID" />
-    </xsd:complexType>
+  <xsd:complexType name="tld-canonical-nameType">
+
+    <xsd:annotation>
+      <xsd:documentation>
+
+	Defines the canonical name of a tag or attribute being
+	defined.
+
+	The name must conform to the lexical rules for an NMTOKEN.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:xsdNMTOKENType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="tld-deferred-methodType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        Defines information about how to provide the value for a
+        tag handler attribute that accepts a javax.el.MethodExpression.
+
+	The deferred-method element has one optional subelement:
+
+	method-signature  Provides the signature, as in the Java
+                          Language Specifies, that is expected for
+                          the method being identified by the
+                          expression.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="method-signature"
+                   type="javaee:string"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            Provides the expected signature of the method identified
+            by the javax.el.MethodExpression.
+
+            This disambiguates overloaded methods and ensures that
+            the return value is of the expected type.
+
+            The syntax of the method-signature element is identical
+            to that of the function-signature element.  See the
+            documentation for function-signature for more details.
+
+	    The name of the method is for documentation purposes only
+	    and is ignored by the JSP container.
+
+            Example:
+
+              boolean validate(java.lang.String)
+
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="tld-deferred-valueType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        Defines information about how to provide the value for a
+        tag handler attribute that accepts a javax.el.ValueExpression.
+
+	The deferred-value element has one optional subelement:
+
+	type            the expected type of the attribute
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="type"
+                   type="javaee:fully-qualified-classType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The fully-qualified name of the Java type that is the
+            expected type for this deferred expression.  If this
+            element is omitted, the expected type is assumed to be
+            "java.lang.Object".
+
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="tld-extensionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The tld-extensionType is used to indicate
+	extensions to a specific TLD element.
+
+	It is used by elements to designate an extension block
+	that is targeted to a specific extension designated by
+	a set of extension elements that are declared by a
+	namespace. The namespace identifies the extension to
+	the tool that processes the extension.
+
+	The type of the extension-element is abstract. Therefore,
+	a concrete type must be specified by the TLD using
+	xsi:type attribute for each extension-element.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="extension-element"
+		   type="javaee:extensibleType"
+		   maxOccurs="unbounded"/>
+    </xsd:sequence>
+
+    <xsd:attribute name="namespace"
+		   use="required"
+		   type="xsd:anyURI"/>
+    <xsd:attribute name="id" type="xsd:ID"/>
+
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="tldTaglibType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The taglib tag is the document root, it defines:
+
+	description     a simple string describing the "use" of this
+			taglib, should be user discernable
+
+	display-name    the display-name element contains a
+			short name that is intended to be displayed
+			by tools
+
+	icon            optional icon that can be used by tools
+
+	tlib-version    the version of the tag library implementation
+
+	short-name      a simple default short name that could be
+			used by a JSP authoring tool to create
+			names with a mnemonic value; for example,
+			the it may be used as the prefered prefix
+			value in taglib directives
+
+	uri             a uri uniquely identifying this taglib
+
+	validator       optional TagLibraryValidator information
+
+	listener        optional event listener specification
+
+	tag             tags in this tag library
+
+	tag-file        tag files in this tag library
+
+	function        zero or more EL functions defined in this
+			tag library
+
+	taglib-extension zero or more extensions that provide extra
+			information about this taglib, for tool
+			consumption
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="tlib-version"
+		   type="javaee:dewey-versionType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Describes this version (number) of the taglibrary.
+	    It is described as a dewey decimal.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+
+      <xsd:element name="short-name"
+		   type="javaee:tld-canonical-nameType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Defines a simple default name that could be used by
+	    a JSP authoring tool to create names with a
+	    mnemonicvalue; for example, it may be used as the
+	    preferred prefix value in taglib directives.  Do
+	    not use white space, and do not start with digits
+	    or underscore.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+      <xsd:element name="uri"
+		   type="javaee:xsdAnyURIType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Defines a public URI that uniquely identifies this
+	    version of the taglibrary.  Leave it empty if it
+	    does not apply.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+      <xsd:element name="validator"
+		   type="javaee:validatorType"
+		   minOccurs="0">
+      </xsd:element>
+      <xsd:element name="listener"
+		   type="javaee:listenerType"
+		   minOccurs="0" maxOccurs="unbounded">
+      </xsd:element>
+      <xsd:element name="tag"
+		   type="javaee:tagType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="tag-file"
+		   type="javaee:tagFileType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="function"
+		   type="javaee:functionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="taglib-extension"
+		   type="javaee:tld-extensionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Taglib extensions are for tool use only and must not
+            affect the behavior of a container.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="version"
+		   type="javaee:dewey-versionType"
+		   fixed="2.1"
+		   use="required">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  Describes the JSP version (number) this taglibrary
+	  requires in order to function (dewey decimal)
+
+	</xsd:documentation>
+      </xsd:annotation>
+
+    </xsd:attribute>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="validatorType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	A validator that can be used to validate
+	the conformance of a JSP page to using this tag library is
+	defined by a validatorType.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="validator-class"
+		   type="javaee:fully-qualified-classType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Defines the TagLibraryValidator class that can be used
+	    to validate the conformance of a JSP page to using this
+	    tag library.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="init-param"
+		   type="javaee:param-valueType"
+		   minOccurs="0" maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The init-param element contains a name/value pair as an
+	    initialization param.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="variable-scopeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	This type defines scope of the scripting variable.  See
+	TagExtraInfo for details.  The allowed values are,
+	"NESTED", "AT_BEGIN" and "AT_END".
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:enumeration value="NESTED"/>
+	<xsd:enumeration value="AT_BEGIN"/>
+	<xsd:enumeration value="AT_END"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="variableType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The variableType provides information on the scripting
+	variables defined by using this tag.  It is a (translation
+	time) error for a tag that has one or more variable
+	subelements to have a TagExtraInfo class that returns a
+	non-null value from a call to getVariableInfo().
+
+	The subelements of variableType are of the form:
+
+	description              Optional description of this
+				 variable
+
+	name-given               The variable name as a constant
+
+	name-from-attribute      The name of an attribute whose
+				 (translation time) value will
+				 give the name of the
+				 variable.  One of name-given or
+				 name-from-attribute is required.
+
+	variable-class           Name of the class of the variable.
+				 java.lang.String is default.
+
+	declare                  Whether the variable is declared
+				 or not.  True is the default.
+
+	scope                    The scope of the scripting varaible
+				 defined.  NESTED is default.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:choice>
+	<xsd:element name="name-given"
+		     type="javaee:java-identifierType">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The name for the scripting variable.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+
+	<xsd:element name="name-from-attribute"
+		     type="javaee:java-identifierType">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The name of an attribute whose
+	      (translation-time) value will give the name of
+	      the variable.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+      </xsd:choice>
+      <xsd:element name="variable-class"
+		   type="javaee:fully-qualified-classType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The optional name of the class for the scripting
+	    variable.  The default is java.lang.String.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+
+      <xsd:element name="declare"
+		   type="javaee:generic-booleanType"
+		   minOccurs="0">
+
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Whether the scripting variable is to be defined
+	    or not.  See TagExtraInfo for details.  This
+	    element is optional and "true" is the default.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="scope"
+		   type="javaee:variable-scopeType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The element is optional and "NESTED" is the default.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
 </xsd:schema>
+




More information about the jboss-cvs-commits mailing list