Missing files. Not sure if that's the right version, I took it from servlet2.4.
authorcostin <costin@13f79535-47bb-0310-9956-ffa450edef68>
Tue, 28 Mar 2006 06:40:58 +0000 (06:40 +0000)
committercostin <costin@13f79535-47bb-0310-9956-ffa450edef68>
Tue, 28 Mar 2006 06:40:58 +0000 (06:40 +0000)
git-svn-id: https://svn.apache.org/repos/asf/tomcat/tc6.0.x/trunk@389418 13f79535-47bb-0310-9956-ffa450edef68

18 files changed:
java/javax/servlet/jsp/resources/jsp_2_0.xsd [new file with mode: 0755]
java/javax/servlet/jsp/resources/jspxml.dtd [new file with mode: 0755]
java/javax/servlet/jsp/resources/jspxml.xsd [new file with mode: 0755]
java/javax/servlet/jsp/resources/web-jsptaglibrary_1_1.dtd [new file with mode: 0755]
java/javax/servlet/jsp/resources/web-jsptaglibrary_1_2.dtd [new file with mode: 0755]
java/javax/servlet/jsp/resources/web-jsptaglibrary_2_0.xsd [new file with mode: 0755]
java/javax/servlet/resources/XMLSchema.dtd [new file with mode: 0644]
java/javax/servlet/resources/datatypes.dtd [new file with mode: 0644]
java/javax/servlet/resources/j2ee_1_4.xsd [new file with mode: 0644]
java/javax/servlet/resources/j2ee_web_services_1_1.xsd [new file with mode: 0644]
java/javax/servlet/resources/j2ee_web_services_client_1_1.xsd [new file with mode: 0644]
java/javax/servlet/resources/jsp_2_0.xsd [new file with mode: 0644]
java/javax/servlet/resources/jspxml.dtd [new file with mode: 0644]
java/javax/servlet/resources/jspxml.xsd [new file with mode: 0644]
java/javax/servlet/resources/web-app_2_2.dtd [new file with mode: 0644]
java/javax/servlet/resources/web-app_2_3.dtd [new file with mode: 0644]
java/javax/servlet/resources/web-app_2_4.xsd [new file with mode: 0644]
java/javax/servlet/resources/xml.xsd [new file with mode: 0644]

diff --git a/java/javax/servlet/jsp/resources/jsp_2_0.xsd b/java/javax/servlet/jsp/resources/jsp_2_0.xsd
new file mode 100755 (executable)
index 0000000..799bbaa
--- /dev/null
@@ -0,0 +1,322 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Copyright 2004 The Apache Software Foundation
+
+  Licensed 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 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>
+
diff --git a/java/javax/servlet/jsp/resources/jspxml.dtd b/java/javax/servlet/jsp/resources/jspxml.dtd
new file mode 100755 (executable)
index 0000000..dffe046
--- /dev/null
@@ -0,0 +1,189 @@
+<!--
+  Copyright 2004 The Apache Software Foundation
+
+  Licensed 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.
+-->
+<!-- DTD for JSP 2.0
+     thanks to Bob Foster, WebGain
+-->
+
+<!-- 
+     This DTD is not conditional on any parameter entities in the internal
+     subset and does not export any general entities.
+-->
+
+<!--================== Constrained Names ====================================-->
+
+<!ENTITY % URI "CDATA">
+    <!-- a Uniform Resource Identifier, see [RFC2396] -->
+
+<!ENTITY % UriList "CDATA">
+    <!-- a space separated list of Uniform Resource Identifiers -->
+
+<!ENTITY % URL "CDATA">
+    <!-- a relative urlSpec is as in Section 2.10.2. -->
+
+<!ENTITY % BeanID "IDREF">
+    <!-- a previously declared bean ID in the current scope. -->
+
+<!ENTITY % Prefix "CDATA">
+    <!-- a Name that contains no : characters. -->
+
+<!ENTITY % ClassName "CDATA">
+    <!-- a fully qualified class name. -->
+
+<!ENTITY % TypeName "CDATA">
+    <!-- a fully qualified class or interface name. -->
+
+<!ENTITY % BeanName "CDATA">
+    <!-- a bean name as expected by java.beans.Beans instantiate(). -->
+
+<!ENTITY % Content "CDATA">
+    <!-- a MIME type followed by an IANA charset, as " type [; S? ['charset='] charset] " -->
+
+<!ENTITY % Length "CDATA">
+    <!-- nn for pixels or nn% for percentage length -->
+
+<!ENTITY % Pixels "CDATA">
+    <!-- integer representing length in pixels -->
+
+<!ENTITY % Bool "(true|false|yes|no)">
+    <!-- boolean -->
+
+<!-- used for object, applet, img, input and iframe -->
+<!ENTITY % ImgAlign "(top|middle|bottom|left|right)">
+
+<!--=================== Element Groups ====================================-->
+
+<!ENTITY % Directives "jsp:directive.page|jsp:directive.include">
+
+<!ENTITY % Scripts "jsp:scriptlet|jsp:declaration|jsp:expression">
+
+<!ENTITY % Actions
+    "jsp:useBean
+    |jsp:setProperty
+    |jsp:getProperty
+    |jsp:include
+    |jsp:forward
+    |jsp:plugin"
+>
+
+<!ENTITY % Body "(jsp:text|%Directives;|%Scripts;|%Actions;)*">
+
+
+<!-- ============================ Elements ============================ -->
+
+<!--    Root element of a JSP page.
+-->
+<!ELEMENT jsp:root %Body;>
+<!ATTLIST jsp:root
+    xmlns:jsp       CDATA           "http://java.sun.com/JSP/Page"
+    version         CDATA           #REQUIRED
+>
+
+<!ELEMENT jsp:directive.page EMPTY>
+<!ATTLIST jsp:directive.page
+    language        CDATA           "java"
+    extends         %ClassName;     #IMPLIED
+    contentType     %Content;       "text/html; ISO-8859-1"
+    import          CDATA           #IMPLIED
+    session         %Bool;          "true"
+    buffer          CDATA           "8kb"
+    autoFlush       %Bool;          "true"
+    isThreadSafe    %Bool;          "true"
+    info            CDATA           #IMPLIED
+    errorPage       %URL;           #IMPLIED
+    isErrorPage     %Bool;          "false"
+    pageEncoding    CDATA           #IMPLIED
+    isELIgnored     %Bool;          #IMPLIED
+>
+
+<!-- the jsp:directive.include only appears in JSP documents and does
+     not appear in the XML views of JSP pages.
+-->
+
+<!ELEMENT jsp:directive.include EMPTY>
+<!ATTLIST jsp:directive.include
+    file            %URI;           #REQUIRED
+>
+
+<!ELEMENT jsp:scriptlet (#PCDATA)>
+
+<!ELEMENT jsp:declaration (#PCDATA)>
+
+<!ELEMENT jsp:expression (#PCDATA)>
+
+<!ELEMENT jsp:useBean %Body;>
+<!ATTLIST jsp:useBean
+    id              ID              #REQUIRED
+    class           %ClassName;     #IMPLIED
+    type            %TypeName;      #IMPLIED
+    beanName        %BeanName;      #IMPLIED
+    scope           (page
+                    |session
+                    |request
+                    |application)   "page"
+>
+
+<!ELEMENT jsp:setProperty EMPTY>
+<!ATTLIST jsp:setProperty
+    name            %BeanID;        #REQUIRED
+    property        CDATA           #REQUIRED
+    value           CDATA           #IMPLIED
+    param           CDATA           #IMPLIED
+>
+
+<!ELEMENT jsp:getProperty EMPTY>
+<!ATTLIST jsp:getProperty
+    name            %BeanID;        #REQUIRED
+    property        CDATA           #REQUIRED
+>
+
+<!ELEMENT jsp:include (jsp:param*)>
+<!ATTLIST jsp:include
+    flush           %Bool;          "false"
+    page            %URL;           #REQUIRED
+>
+
+<!ELEMENT jsp:forward (jsp:param*)>
+<!ATTLIST jsp:forward
+    page            %URL;           #REQUIRED
+>
+
+<!ELEMENT jsp:plugin (jsp:params?, jsp:fallback?)>
+<!ATTLIST jsp:plugin
+    type            (bean|applet)   #REQUIRED
+    code            %URI;           #IMPLIED
+    codebase        %URI;           #IMPLIED
+    align           %ImgAlign;      #IMPLIED
+    archive         %UriList;       #IMPLIED
+    height          %Length;        #IMPLIED
+    hspace          %Pixels;        #IMPLIED
+    jreversion      CDATA           "1.2"
+    name            NMTOKEN         #IMPLIED
+    vspace          %Pixels;        #IMPLIED
+    width           %Length;        #IMPLIED
+    nspluginurl     %URI;           #IMPLIED
+    iepluginurl     %URI;           #IMPLIED
+>
+
+<!ELEMENT jsp:params (jsp:param+)>
+
+<!ELEMENT jsp:param EMPTY>
+<!ATTLIST jsp:param
+    name            CDATA           #REQUIRED
+    value           CDATA           #REQUIRED
+>
+
+<!ELEMENT jsp:text #PCDATA>
+
diff --git a/java/javax/servlet/jsp/resources/jspxml.xsd b/java/javax/servlet/jsp/resources/jspxml.xsd
new file mode 100755 (executable)
index 0000000..886ee65
--- /dev/null
@@ -0,0 +1,513 @@
+<?xml version ="1.0"?>
+<!--
+  Copyright 2004 The Apache Software Foundation
+
+  Licensed 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.
+-->
+<!DOCTYPE schema [
+<!-- Patterns -->
+<!ENTITY Identifier   "(\p{L}|_|$)(\p{N}|\p{L}|_|$)*">
+<!ENTITY TypeName     "&Identifier;(\.&Identifier;)*">
+<!ENTITY WS       "\s*">
+<!ENTITY Import     "&TypeName;(\.\*)?">
+<!ENTITY ImportList   "&Import;(&WS;,&WS;&Import;)*">
+<!ENTITY SetProp    "(&Identifier;|\*)">
+<!ENTITY RelativeURL  "[^:#/\?]*(:{0,0}|[#/\?].*)">
+<!ENTITY Length     "[0-9]*&#x25;?">
+<!ENTITY AsciiName    "[A-Za-z0-9_-]*">
+<!ENTITY ValidContentType  "&AsciiName;/&AsciiName;(;&WS;(charset=)?&AsciiName;)?">
+<!ENTITY ValidPageEncoding  "&AsciiName;/&AsciiName;">
+<!ENTITY Buffer     "[0-9]+kb">
+<!ENTITY RTexpr     "&#x25;=.*&#x25;">
+]>
+
+
+<!--Conforms to w3c http://www.w3.org/2001/XMLSchema -->
+
+<xsd:schema
+    xmlns = "http://java.sun.com/JSP/Page"
+    xmlns:xsd = "http://www.w3.org/2001/XMLSchema"
+    xmlns:jsp = "http://java.sun.com/JSP/Page"
+    targetNamespace = "http://java.sun.com/JSP/Page"
+    elementFormDefault = "qualified"
+    attributeFormDefault = "unqualified">
+
+  <xsd:annotation>
+    <xsd:documentation>
+      XML Schema for JSP 2.0.
+
+      This schema is based upon the recent (May 5th, 2001)
+      W3C recommendation for XML Schema.
+
+      A JSP translator should reject an XML-format file that is
+      not strictly valid according to this schema or does not observe
+      the constraints documented here. A translator is not required
+      to use this schema for validation or to use a validating parser.
+    </xsd:documentation>
+  </xsd:annotation>
+
+
+  <!-- Complex Types -->
+
+  <xsd:complexType name = "Body">
+    <xsd:annotation>
+      <xsd:documentation>
+        Body defines the "top-level" elements in root and beanInfo.
+        There are probably other elements that should use it.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:group ref = "Bodygroup" minOccurs = "0" maxOccurs = "unbounded"/>
+  </xsd:complexType>
+
+  <!-- groups -->
+
+  <xsd:group name = "Bodygroup">
+    <xsd:choice>
+      <xsd:element ref = "directive.page"/>
+      <xsd:element ref = "directive.include"/>
+      <xsd:element ref = "scriptlet"/>
+      <xsd:element ref = "declaration"/>
+      <xsd:element ref = "expression"/>
+      <xsd:element ref = "useBean"/>
+      <xsd:element ref = "setProperty"/>
+      <xsd:element ref = "getProperty"/>
+      <xsd:element ref = "include"/>
+      <xsd:element ref = "forward"/>
+      <xsd:element ref = "plugin"/>
+      <xsd:element ref = "text"/>
+      <xsd:any namespace="##other" processContents = "lax"/>
+    </xsd:choice>
+  </xsd:group>
+
+
+  <!-- Simple types are next -->
+
+  <xsd:simpleType name = "RTE">
+    <xsd:annotation>
+      <xsd:documentation>
+        A request-time expression value
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base = "xsd:string">
+      <xsd:pattern value = "&RTexpr;"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name = "Bool">
+    <xsd:annotation>
+      <xsd:documentation>
+        Bool would be boolean except it does not accept 1 and 0.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base = "xsd:NMTOKEN" >
+      <xsd:enumeration value = "true"/>
+      <xsd:enumeration value = "false"/>
+      <xsd:enumeration value = "yes"/>
+      <xsd:enumeration value = "no"/>
+    </xsd:restriction>     
+  </xsd:simpleType>
+
+  <xsd:simpleType name = "Identifier">
+    <xsd:annotation>
+      <xsd:documentation>
+        Identifier is an unqualified Java identifier.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base = "xsd:string">
+      <xsd:pattern value = "&Identifier;"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+  
+  <xsd:simpleType name = "TypeName">
+    <xsd:annotation>
+      <xsd:documentation>
+        TypeName is one or more Java identifiers separated by dots
+        with no whitespace.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base = "xsd:string">
+      <xsd:pattern value = "&TypeName;"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+  
+  <xsd:simpleType name = "ImportList">
+    <xsd:annotation>
+      <xsd:documentation>
+        ImportList is one or more typeNames separated by commas.
+        Whitespace is allowed before and after the comma.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base = "xsd:string">
+      <xsd:pattern value = "&ImportList;"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+  
+  <xsd:simpleType name = "SetProp">
+    <xsd:annotation>
+      <xsd:documentation>
+        SetProp is an Identifier or *.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base = "xsd:string">
+      <xsd:pattern value = "&SetProp;"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+  
+  <xsd:simpleType name = "RelativeURL">
+    <xsd:annotation>
+      <xsd:documentation>
+        RelativeURL is a uriReference with no colon character
+        before the first /, ? or #, if any (RFC2396).
+      </xsd:documentation>
+    </xsd:annotation>
+       <xsd:restriction base = "xsd:anyURI">
+      <xsd:pattern value = "&RelativeURL;"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name = "RTERelativeURL">
+    <xsd:union memberTypes = "RelativeURL RTE"/>
+  </xsd:simpleType>
+
+  <xsd:simpleType name = "Length">
+    <xsd:annotation>
+      <xsd:documentation>
+        Length is nn or nn%.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base = "xsd:string">
+      <xsd:pattern value = "&Length;"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+  
+
+  <xsd:simpleType name = "ExplicitBufferSize">
+    <xsd:annotation>
+      <xsd:documentation>
+         Buffer Size with an explicit value
+      </xsd:documentation>
+    </xsd:annotation> 
+    <xsd:restriction base = "xsd:string">
+      <xsd:pattern value = "&Buffer;"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name = "NoneBufferSize">
+    <xsd:annotation>
+      <xsd:documentation>
+         Buffer Size with a "none" value
+      </xsd:documentation>
+    </xsd:annotation> 
+       <xsd:restriction base = "xsd:string">
+         <xsd:enumeration value = "none"/>
+       </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name = "BufferSize">
+    <xsd:annotation>
+      <xsd:documentation>
+        Buffer size is xkb or none.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:union memberTypes = "ExplicitBufferSize NoneBufferSize"/>
+  </xsd:simpleType>
+  
+  <xsd:simpleType name = "ContentType">
+    <xsd:annotation>
+      <xsd:documentation>
+        Content type and character encoding for this page.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base = "xsd:string">
+      <xsd:pattern value = "&ValidContentType;"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name = "PageEncoding">
+    <xsd:annotation>
+      <xsd:documentation>
+        Page Encoding for this page.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base = "xsd:string">
+      <xsd:pattern value = "&ValidPageEncoding;"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name = "Scope">
+    <xsd:annotation>
+      <xsd:documentation>
+        valid scope values
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base = "xsd:NMTOKEN">
+      <xsd:enumeration value = "page"/>
+      <xsd:enumeration value = "session"/>
+      <xsd:enumeration value = "request"/>
+      <xsd:enumeration value = "application"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name = "PlugInType">
+    <xsd:annotation>
+      <xsd:documentation>
+        valid values for a plugin type
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base = "xsd:NMTOKEN">
+      <xsd:enumeration value = "bean"/>
+      <xsd:enumeration value = "applet"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name = "AlignType">
+    <xsd:annotation>
+      <xsd:documentation>
+        Buffer size is xkb.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base = "xsd:NMTOKEN">
+      <xsd:enumeration value = "top"/>
+      <xsd:enumeration value = "middle"/>
+      <xsd:enumeration value = "bottom"/>
+      <xsd:enumeration value = "left"/>
+      <xsd:enumeration value = "right"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <!-- Elements follow -->
+
+  <xsd:element name = "root">
+    <xsd:annotation>
+      <xsd:documentation>
+        The root element of all JSP documents is named root.
+        
+        Authors may, if they wish, include schema location information.
+        If specified, the information may appear as attributes of
+        the root element as follows:
+
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="http://java.sun.com/JSP/Page xsd-file-location"
+
+        Documents should not specify the system identifier of a DTD
+        in a DOCTYPE declaration.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:complexType>
+      <xsd:complexContent>
+        <xsd:extension base = "Body">
+          <xsd:attribute name = "version" fixed = "2.0" type = "xsd:string"/>
+        </xsd:extension>
+      </xsd:complexContent>
+    </xsd:complexType>
+  </xsd:element>
+  
+  <xsd:element name = "directive.page">
+    <xsd:annotation>
+      <xsd:documentation>
+        directive.page is the "page directive".
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:complexType>
+      <xsd:attribute name = "language" default = "java" type = "xsd:string"/>
+      <xsd:attribute name = "extends" type = "TypeName"/>
+      <xsd:attribute name = "contentType" default = "text/html; ISO-8859-1" type = "ContentType"/>
+      <xsd:attribute name = "pageEncoding" use = "optional" type = "PageEncoding"/>
+      <xsd:attribute name = "import" type = "ImportList"/>
+      <xsd:attribute name = "session" default = "true" type = "Bool"/>
+      <xsd:attribute name = "buffer" default = "8kb" type = "BufferSize"/>
+      <xsd:attribute name = "autoFlush" default = "true" type = "Bool"/>
+      <xsd:attribute name = "isThreadSafe" default = "true" type = "Bool"/>
+      <xsd:attribute name = "info" type = "xsd:string"/>
+      <xsd:attribute name = "errorPage" type = "RelativeURL"/>
+      <xsd:attribute name = "isErrorPage" default = "false" type = "Bool"/>
+      <xsd:attribute name = "isELIgnored" type = "Bool"/>
+    </xsd:complexType>
+  </xsd:element>
+  
+  <xsd:element name = "directive.include">
+    <xsd:annotation>
+      <xsd:documentation>
+        directive.include is the "include directive".
+       This element does not appear on XML views of JSP pages.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:complexType>
+      <xsd:attribute name = "file" use = "required" type = "RelativeURL"/>
+    </xsd:complexType>
+  </xsd:element>
+
+  <xsd:element name = "scriptlet" type = "xsd:string">
+    <xsd:annotation>
+      <xsd:documentation>
+        The representation of a scriplet.
+      </xsd:documentation>
+    </xsd:annotation>
+  </xsd:element>
+  
+  <xsd:element name = "declaration" type = "xsd:string">
+    <xsd:annotation>
+      <xsd:documentation>
+        The reprsentation of a declaration.
+      </xsd:documentation>
+    </xsd:annotation>
+  </xsd:element>
+  
+  <xsd:element name = "expression" type = "xsd:string">
+    <xsd:annotation>
+      <xsd:documentation>
+        The representation of an expression.
+      </xsd:documentation>
+    </xsd:annotation>
+  </xsd:element>
+  <xsd:element name = "text" type = "xsd:string">
+    <xsd:annotation>
+      <xsd:documentation>
+        Verbatim template text.
+      </xsd:documentation>
+    </xsd:annotation>
+  </xsd:element>
+
+  <xsd:element name = "useBean">
+    <xsd:annotation>
+      <xsd:documentation>
+        useBean instantiates or accesses a bean in the specified scope.
+        
+        Constraint: The allowed combinations of attributes are:
+        
+          class [type] | type [( class | beanName)]
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:complexType>
+      <xsd:complexContent>
+        <xsd:extension base="Body">
+          <xsd:attribute name = "id" use = "required" type = "Identifier"/>
+          <xsd:attribute name = "class" type = "TypeName"/>
+          <xsd:attribute name = "type" type = "TypeName"/>
+          <xsd:attribute name = "beanName" type = "TypeName"/>
+          <xsd:attribute name = "scope" default = "page" type = "Scope"/>
+        </xsd:extension>
+      </xsd:complexContent>
+    </xsd:complexType>
+  </xsd:element>
+  
+  <xsd:element name = "setProperty">
+    <xsd:annotation>
+      <xsd:documentation>
+        setProperty changes the value of an object property.
+        
+        Constraint: The object named by the name must have been
+        "introduced" to the JSP processor using either the
+        jsp:useBean action or a custom action with an associated
+        VariableInfo entry for this name.
+
+        Exact valid combinations are not expressable in XML Schema.
+        They are:
+
+        name="Identifier" property="*"
+        name="Identifier" property="Identfiier" param="string"
+        name="Identifier" property="Identifier" value="string"
+                
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:complexType>
+      <xsd:attribute name = "name" use = "required" type = "Identifier"/>
+      <xsd:attribute name = "property" use = "required" type = "SetProp"/>
+      <xsd:attribute name = "param" type = "xsd:string"/>
+      <xsd:attribute name = "value" type = "xsd:string"/>
+    </xsd:complexType>
+  </xsd:element>
+
+  <xsd:element name = "getProperty">
+    <xsd:annotation>
+      <xsd:documentation>
+        getProperty obtains the value of an object property.
+        
+        Constraint: The object named by the name must have been
+        "introduced" to the JSP processor using either the
+        jsp:useBean action or a custom action with an associated
+        VariableInfo entry for this name.
+        
+        ???The spec is interpreted as restricting the values of
+        property to Identifier.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:complexType>
+      <xsd:attribute name = "name" use = "required" type = "Identifier"/>
+      <xsd:attribute name = "property" use = "required" type = "Identifier"/>
+    </xsd:complexType>
+  </xsd:element>
+  
+  <xsd:element name = "include">
+    <xsd:complexType>
+      <xsd:sequence>
+        <xsd:element ref = "param" minOccurs = "0" maxOccurs = "unbounded"/>
+      </xsd:sequence>
+      <xsd:attribute name = "flush" default = "false" type = "Bool"/>
+      <xsd:attribute name = "page" use = "required" type = "RTERelativeURL"/>
+    </xsd:complexType>
+  </xsd:element>
+
+  <xsd:element name = "forward">
+    <xsd:complexType>
+      <xsd:sequence>
+        <xsd:element ref = "param" minOccurs = "0" maxOccurs = "unbounded"/>
+      </xsd:sequence>
+      <xsd:attribute name = "page" use = "required" type = "RTERelativeURL"/>
+     </xsd:complexType>
+  </xsd:element>
+  
+  <xsd:element name = "plugin">
+    <xsd:complexType> <!-- content only! -->
+      <xsd:sequence>
+        <xsd:element ref = "params" minOccurs = "0" maxOccurs = "1"/>
+        <xsd:element name = "fallback" minOccurs = "0" maxOccurs = "1" type = "Body"/>
+      </xsd:sequence>
+      <xsd:attribute name = "type" use = "required" type = "PlugInType"/>
+      <xsd:attribute name = "code" type = "xsd:anyURI"/>
+      <xsd:attribute name = "codebase" type = "xsd:anyURI"/>
+      <xsd:attribute name = "align" type = "AlignType"/>
+      <xsd:attribute name = "archive">
+        <xsd:simpleType>
+           <xsd:list itemType="xsd:anyURI"/>
+        </xsd:simpleType>
+      </xsd:attribute>
+      <xsd:attribute name = "height" type = "Length"/>
+      <xsd:attribute name = "hspace" type = "xsd:int"/>
+      <xsd:attribute name = "jreversion" default = "1.2" type = "xsd:string"/>
+      <xsd:attribute name = "name" type = "xsd:NMTOKEN"/>
+      <xsd:attribute name = "vspace" type = "xsd:int"/>
+      <xsd:attribute name = "width" type = "Length"/>
+      <xsd:attribute name = "nspluginurl" type = "xsd:anyURI"/>
+      <xsd:attribute name = "iepluginurl" type = "xsd:anyURI"/>
+    </xsd:complexType>
+  </xsd:element>
+  
+  <xsd:element name = "params">
+    <xsd:complexType>
+       <xsd:sequence>
+         <xsd:element ref = "param" minOccurs = "1" maxOccurs = "unbounded"/>
+       </xsd:sequence>
+    </xsd:complexType>
+  </xsd:element>
+
+  <xsd:element name = "param">
+    <xsd:complexType>
+      <xsd:attribute name = "name" use = "required" type = "xsd:NMTOKEN"/>
+      <xsd:attribute name = "value" use = "required" type = "xsd:string"/>
+    </xsd:complexType>
+  </xsd:element>
+  
+</xsd:schema>
diff --git a/java/javax/servlet/jsp/resources/web-jsptaglibrary_1_1.dtd b/java/javax/servlet/jsp/resources/web-jsptaglibrary_1_1.dtd
new file mode 100755 (executable)
index 0000000..4a5fc7a
--- /dev/null
@@ -0,0 +1,206 @@
+<!--
+  Copyright 2004 The Apache Software Foundation
+
+  Licensed 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.
+-->
+<!--
+
+   This is the DTD defining the JavaServer Pages 1.1 Tag Library
+   descriptor (.tld) (XML) file format/syntax.
+
+   A Tag Library is a JAR file containing a valid instance of a Tag Library
+   Descriptor (taglib.tld) file in the META-INF subdirectory, along with the
+   appropriate implementing classes, and other resources required to
+   implement the tags defined therein.
+
+   Use is subject to license terms.
+  -->
+
+<!--
+The taglib tag is the document root, it defines:
+
+tlibversion    the version of the tag library implementation
+jspversion     the version of JSP the tag library depends upon
+
+shortname      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
+info           a simple string describing the "use" of this taglib,
+               should be user discernable
+-->
+
+<!ELEMENT taglib (tlibversion, jspversion?, shortname, uri?, info?, tag+) >
+<!ATTLIST taglib id ID #IMPLIED
+         xmlns CDATA #FIXED
+               "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"
+>
+
+<!--
+Describes this version (number) of the taglibrary (dewey decimal)
+
+#PCDATA ::= [0-9]*{ "."[0-9] }0..3
+-->
+
+<!ELEMENT tlibversion (#PCDATA) >
+
+<!--
+Describes the JSP version (number) this taglibrary requires in
+order to function (dewey decimal)
+
+The default is 1.1
+
+#PCDATA ::= [0-9]*{ "."[0-9] }0..3
+-->
+
+<!ELEMENT jspversion  (#PCDATA) >
+
+<!--
+Defines a short (default) shortname to be used for tags and
+variable names used/created by this tag library.  Do not use
+white space, and do not start with digits or underscore.
+
+#PCDATA ::= NMTOKEN
+-->
+
+<!ELEMENT shortname      (#PCDATA) >
+
+<!--
+Defines a public URI that uniquely identifies this version of
+the taglibrary Leave it empty if it does not apply.
+-->
+
+<!ELEMENT uri   (#PCDATA) >
+
+<!--
+Defines an arbitrary text string descirbing the tag library
+-->
+
+<!ELEMENT info (#PCDATA) >
+
+<!--
+The tag defines a unique tag in this tag library, defining:
+
+- the unique tag/element name
+- the subclass of javax.servlet.jsp.tagext.Tag implementation class
+- an optional subclass of javax.servlet.jsp.tagext.TagExtraInfo
+- the body content type (hint)
+- optional tag-specific information
+- any attributes
+-->
+
+<!ELEMENT tag (name, tagclass, teiclass?, bodycontent?, info?, attribute*) >
+
+<!--
+Defines the subclass of javax.serlvet.jsp.tagext.Tag that implements
+the request time semantics for this tag. (required)
+
+#PCDATA ::= fully qualified Java class name
+-->
+
+<!ELEMENT tagclass (#PCDATA) >
+
+<!--
+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.
+
+#PCDATA ::= fully qualified Java class name
+-->
+
+<!ELEMENT teiclass (#PCDATA) >
+
+<!--
+Provides a hint as to the content of the body of this tag. Primarily
+intended for use by page composition tools.
+
+There are currently three values specified:
+
+tagdependent   The body of the tag is interpreted by the tag
+               implementation itself, and is most likely in a
+               different "langage", e.g embedded SQL statements.
+
+JSP            The body of the tag contains nested JSP syntax
+
+empty          The body must be empty
+
+The default (if not defined) is JSP
+
+#PCDATA ::=  tagdependent | JSP | empty
+
+-->
+
+<!ELEMENT bodycontent (#PCDATA) >
+
+<!--
+The attribute tag defines an attribute for the nesting tag
+
+An attribute definition is composed of:
+
+- the attributes name (required)
+- if the attribute is required or optional (optional)
+- if the attributes value may be dynamically calculated at runtime
+  by a scriptlet expression (optional)
+
+-->
+
+<!ELEMENT attribute (name, required? , rtexprvalue?) >
+
+<!--
+Defines the canonical name of a tag or attribute being defined
+
+#PCDATA ::= NMTOKEN
+-->
+
+<!ELEMENT name (#PCDATA) >
+
+<!--
+Defines if the nesting attribute is required or optional.
+
+#PCDATA ::= true | false | yes | no
+
+If not present then the default is "false", i.e the attribute
+is optional.
+-->
+
+<!ELEMENT required    (#PCDATA) >
+
+<!--
+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.
+
+#PCDATA ::= true | false | yes | no
+
+If not present then the default is "false", i.e the attribute
+has a static value
+-->
+
+<!ELEMENT rtexprvalue (#PCDATA) >
+
+<!ATTLIST tlibversion id ID #IMPLIED>
+<!ATTLIST jspversion id ID #IMPLIED>
+<!ATTLIST shortname id ID #IMPLIED>
+<!ATTLIST uri id ID #IMPLIED>
+<!ATTLIST info id ID #IMPLIED>
+<!ATTLIST tag id ID #IMPLIED>
+<!ATTLIST tagclass id ID #IMPLIED>
+<!ATTLIST teiclass id ID #IMPLIED>
+<!ATTLIST bodycontent id ID #IMPLIED>
+<!ATTLIST attribute id ID #IMPLIED>
+<!ATTLIST name id ID #IMPLIED>
+<!ATTLIST required id ID #IMPLIED>
+<!ATTLIST rtexprvalue id ID #IMPLIED>
diff --git a/java/javax/servlet/jsp/resources/web-jsptaglibrary_1_2.dtd b/java/javax/servlet/jsp/resources/web-jsptaglibrary_1_2.dtd
new file mode 100755 (executable)
index 0000000..41165b2
--- /dev/null
@@ -0,0 +1,477 @@
+<!--
+  Copyright 2004 The Apache Software Foundation
+
+  Licensed 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.
+-->
+<!--
+
+   This is the DTD defining the JavaServer Pages 1.2 Tag Library
+   descriptor (.tld) (XML) file format/syntax.
+
+   A Tag Library is a JAR file containing a valid instance of a Tag Library
+   Descriptor (taglib.tld) file in the META-INF subdirectory, along with the
+   appropriate implementing classes, and other resources required to
+   implement the tags defined therein.
+
+   Use is subject to license terms.
+  -->
+
+<!NOTATION WEB-JSPTAGLIB.1_2 PUBLIC
+          "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN">
+
+<!--
+This is the XML DTD for the JSP 1.2 Tag Library Descriptor.
+All JSP 1.2 tag library descriptors must include a DOCTYPE
+of the following form:
+
+  <!DOCTYPE taglib
+        PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
+       "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
+
+-->
+
+<!--
+The taglib tag is the document root, it defines:
+
+tlib-version   the version of the tag library implementation
+
+jsp-version    the version of JSP the tag library depends upon
+
+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
+
+display-name    the display-name element contains a short name that
+                is intended to be displayed by tools
+small-icon      optional small-icon that can be used by tools
+
+large-icon      optional large-icon that can be used by tools
+
+description    a simple string describing the "use" of this taglib,
+               should be user discernable
+
+validator       optional TagLibraryValidator information
+
+listener        optional event listener specification
+
+
+-->
+
+<!ELEMENT taglib (tlib-version, jsp-version, short-name, uri?,
+                  display-name?, small-icon?, large-icon?, description?,
+                  validator?, listener*, tag+) >
+
+<!ATTLIST taglib id ID #IMPLIED
+         xmlns CDATA #FIXED
+               "http://java.sun.com/JSP/TagLibraryDescriptor"
+>
+
+<!--
+Describes this version (number) of the taglibrary (dewey decimal)
+
+#PCDATA ::= [0-9]*{ "."[0-9] }0..3
+-->
+
+<!ELEMENT tlib-version (#PCDATA) >
+
+<!--
+Describes the JSP version (number) this taglibrary requires in
+order to function (dewey decimal)
+
+The default is 1.2
+
+#PCDATA ::= [0-9]*{ "."[0-9] }0..3
+-->
+
+<!ELEMENT jsp-version  (#PCDATA) >
+
+<!--
+Defines a short (default) short-name to be used for tags and
+variable names used/created by this tag library.  Do not use
+white space, and do not start with digits or underscore.
+
+#PCDATA ::= NMTOKEN
+-->
+
+<!ELEMENT short-name      (#PCDATA) >
+
+<!--
+Defines a public URI that uniquely identifies this version of
+the taglibrary.  Leave it empty if it does not apply.
+-->
+
+<!ELEMENT uri   (#PCDATA) >
+
+<!--
+Defines an arbitrary text string descirbing the tag library
+-->
+
+<!ELEMENT description  (#PCDATA) >
+
+<!--
+
+Defines an optional validator that can be used to
+validate the conformance of a JSP page to using this tag library.
+-->
+
+<!ELEMENT validator (validator-class, init-param*, description?) >
+
+
+<!--
+
+Defines the TagLibraryValidator class that can be used to
+validate the conformance of a JSP page to using this tag library.
+-->
+
+<!ELEMENT validator-class (#PCDATA) >
+
+
+<!--
+
+The init-param element contains a name/value pair as an
+initialization param
+-->
+
+<!ELEMENT init-param (param-name, param-value, description?)>
+
+<!--
+
+The param-name element contains the name of a parameter.
+-->
+
+<!ELEMENT param-name (#PCDATA)>
+
+<!--
+
+The param-value element contains the value of a parameter.
+-->
+
+<!ELEMENT param-value (#PCDATA)>
+
+
+<!--
+
+Defines an optional event listener object to be instantiated and
+registered automatically.
+-->
+
+<!ELEMENT listener (listener-class) >
+
+<!--
+
+The listener-class element declares a class in the application that
+must be registered as a web application listener bean.  See the
+Servlet 2.3 specification for details.
+-->
+
+<!ELEMENT listener-class (#PCDATA) >
+
+
+<!--
+The tag defines a unique tag in this tag library.  It has one
+attribute, id.
+
+The tag element may have several subelements defining:
+
+name              The unique action name
+
+tag-class         The tag handler class implementing
+                  javax.servlet.jsp.tagext.Tag
+
+tei-class         An optional subclass of
+                  javax.servlet.jsp.tagext.TagExtraInfo
+
+body-content      The body content type
+
+display-name      A short name that is intended to be displayed
+                  by tools
+
+small-icon        Optional small-icon that can be used by tools
+
+large-icon        Optional large-icon that can be used by tools
+
+description       Optional tag-specific information
+
+variable          Optional scripting variable information
+
+attribute         All attributes of this action
+
+example           Optional informal description of an example of a
+                  use of this tag
+
+-->
+
+<!ELEMENT tag (name, tag-class, tei-class?, body-content?, display-name?,
+               small-icon?, large-icon?, description?, variable*, attribute*,
+               example?) >
+
+<!--
+Defines the subclass of javax.serlvet.jsp.tagext.Tag that implements
+the request time semantics for this tag. (required)
+
+#PCDATA ::= fully qualified Java class name
+-->
+
+<!ELEMENT tag-class (#PCDATA) >
+
+<!--
+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.
+
+#PCDATA ::= fully qualified Java class name
+-->
+
+<!ELEMENT tei-class (#PCDATA) >
+
+<!--
+Provides a hint as to the content of the body of this tag. Primarily
+intended for use by page composition tools.
+
+There are currently three values specified:
+
+tagdependent   The body of the tag is interpreted by the tag
+               implementation itself, and is most likely in a
+               different "langage", e.g embedded SQL statements.
+
+JSP            The body of the tag contains nested JSP syntax
+
+empty          The body must be empty
+
+The default (if not defined) is JSP
+
+#PCDATA ::=  tagdependent | JSP | empty
+
+-->
+
+<!ELEMENT body-content (#PCDATA) >
+
+<!--
+
+The display-name element contains a short name that is intended
+to be displayed by tools.
+-->
+
+<!ELEMENT display-name (#PCDATA) >
+
+
+<!--
+
+The large-icon element contains the name of a file containing a large
+(32 x 32) icon image.  The file name is a relative path within the
+tag library.  The image must be either in the JPEG or GIF format, and
+the file name must end with the suffix ".jpg" or ".gif" respectively.
+The icon can be used by tools.
+-->
+
+<!ELEMENT large-icon (#PCDATA) >
+
+<!--
+
+The small-icon element contains the name of a file containing a large
+(32 x 32) icon image.  The file name is a relative path within the
+tag library.  The image must be either in the JPEG or GIF format, and
+the file name must end with the suffix ".jpg" or ".gif" respectively.
+The icon can be used by tools.
+-->
+
+<!ELEMENT small-icon (#PCDATA) >
+
+<!--
+
+The example element contains an informal description of an example
+of the use of a tag.
+-->
+
+<!ELEMENT example (#PCDATA) >
+
+<!--
+
+The variable tag provides information on the scripting variables
+defined by 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 object.
+
+The subelements of variable are of the form:
+
+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.
+
+description              Optional description of this variable
+
+-->
+
+<!ELEMENT variable ( (name-given | name-from-attribute), variable-class?,
+                    declare?, scope?, description?) >
+
+<!--
+
+The name for the scripting variable.  One of name-given or
+name-from-attribute is required.
+-->
+
+<!ELEMENT name-given (#PCDATA) >
+
+<!--
+
+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.
+-->
+
+<!ELEMENT name-from-attribute (#PCDATA) >
+
+<!--
+
+The optional name of the class for the scripting variable.  The
+default is java.lang.String.
+-->
+
+<!ELEMENT variable-class (#PCDATA) >
+
+<!--
+
+Whether the scripting variable is to be defined or not.  See
+TagExtraInfo for details.  This element is optional and "true"
+is the default.
+-->
+
+<!ELEMENT declare (#PCDATA) >
+
+<!--
+
+The scope of the scripting variable.  See TagExtraInfo for details.
+The element is optional and "NESTED" is the default.  Other legal
+values are "AT_BEGIN" and "AT_END".
+-->
+
+<!ELEMENT scope (#PCDATA) >
+
+<!--
+
+The attribute tag defines an attribute for the nesting tag
+
+An attribute definition is composed of:
+       
+- the attributes name (required)
+- if the attribute is required or optional (optional)
+- if the attributes value may be dynamically calculated at runtime
+  by a scriptlet expression (optional)
+- the type of the attributes value (optional)
+- an informal description of the meaning of the attribute (optional)
+
+-->
+
+
+<!--
+The attribute tag defines an attribute for the nesting tag
+
+An attribute definition is composed of:
+
+- the attributes name (required)
+
+- if the attribute is required or optional (optional)
+
+- if the attributes value may be dynamically calculated at runtime
+  by a scriptlet expression (optional)
+
+- the type of the attributes value (optional)
+
+- an informal description of the meaning of the attribute (optional)
+-->
+
+<!ELEMENT attribute (name, required? , rtexprvalue?, type?, description?) >
+
+<!--
+Defines the canonical name of a tag or attribute being defined
+
+#PCDATA ::= NMTOKEN
+-->
+
+<!ELEMENT name (#PCDATA) >
+
+<!--
+Defines if the nesting attribute is required or optional.
+
+#PCDATA ::= true | false | yes | no
+
+If not present then the default is "false", i.e the attribute
+is optional.
+-->
+
+<!ELEMENT required    (#PCDATA) >
+
+<!--
+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.
+
+#PCDATA ::= true | false | yes | no
+
+If not present then the default is "false", i.e the attribute
+has a static value
+-->
+
+<!ELEMENT rtexprvalue (#PCDATA) >
+
+
+<!--
+
+Defines the Java type of the attributes value.  For static values
+(those determined at translation time) the type is always
+java.lang.String.
+-->
+
+<!ELEMENT type (#PCDATA) >
+
+
+<!-- ID attributes -->
+
+<!ATTLIST tlib-version id ID #IMPLIED>
+<!ATTLIST jsp-version id ID #IMPLIED>
+<!ATTLIST short-name id ID #IMPLIED>
+<!ATTLIST uri id ID #IMPLIED>
+<!ATTLIST description id ID #IMPLIED>
+<!ATTLIST example id ID #IMPLIED>
+<!ATTLIST tag id ID #IMPLIED>
+<!ATTLIST tag-class id ID #IMPLIED>
+<!ATTLIST tei-class id ID #IMPLIED>
+<!ATTLIST body-content id ID #IMPLIED>
+<!ATTLIST attribute id ID #IMPLIED>
+<!ATTLIST name id ID #IMPLIED>
+<!ATTLIST required id ID #IMPLIED>
+<!ATTLIST rtexprvalue id ID #IMPLIED>
+
+
+<!ATTLIST param-name id ID #IMPLIED>
+<!ATTLIST param-value id ID #IMPLIED>
+<!ATTLIST listener id ID #IMPLIED>
+<!ATTLIST listener-class id ID #IMPLIED>
diff --git a/java/javax/servlet/jsp/resources/web-jsptaglibrary_2_0.xsd b/java/javax/servlet/jsp/resources/web-jsptaglibrary_2_0.xsd
new file mode 100755 (executable)
index 0000000..8113b09
--- /dev/null
@@ -0,0 +1,1025 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Copyright 2004 The Apache Software Foundation
+
+  Licensed 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"
+     elementFormDefault="qualified"
+     attributeFormDefault="unqualified"
+     version="2.0">
+
+  <xsd:annotation>
+    <xsd:documentation>
+      %W% %G%
+    </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>
+
diff --git a/java/javax/servlet/resources/XMLSchema.dtd b/java/javax/servlet/resources/XMLSchema.dtd
new file mode 100644 (file)
index 0000000..c21a93a
--- /dev/null
@@ -0,0 +1,417 @@
+<!--
+  Copyright 2004 The Apache Software Foundation
+
+  Licensed 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.
+-->
+<!-- DTD for XML Schemas: Part 1: Structures
+     Public Identifier: "-//W3C//DTD XMLSCHEMA 200102//EN"
+     Official Location: http://www.w3.org/2001/XMLSchema.dtd -->
+<!-- $Id: XMLSchema.dtd 267129 2004-03-18 16:40:35Z jfarcand $ -->
+<!-- Note this DTD is NOT normative, or even definitive. -->           <!--d-->
+<!-- prose copy in the structures REC is the definitive version -->    <!--d-->
+<!-- (which shouldn't differ from this one except for this -->         <!--d-->
+<!-- comment and entity expansions, but just in case) -->              <!--d-->
+<!-- With the exception of cases with multiple namespace
+     prefixes for the XML Schema namespace, any XML document which is
+     not valid per this DTD given redefinitions in its internal subset of the
+     'p' and 's' parameter entities below appropriate to its namespace
+     declaration of the XML Schema namespace is almost certainly not
+     a valid schema. -->
+
+<!-- The simpleType element and its constituent parts
+     are defined in XML Schema: Part 2: Datatypes -->
+<!ENTITY % xs-datatypes PUBLIC 'datatypes' 'datatypes.dtd' >
+
+<!ENTITY % p 'xs:'> <!-- can be overriden in the internal subset of a
+                         schema document to establish a different
+                         namespace prefix -->
+<!ENTITY % s ':xs'> <!-- if %p is defined (e.g. as foo:) then you must
+                         also define %s as the suffix for the appropriate
+                         namespace declaration (e.g. :foo) -->
+<!ENTITY % nds 'xmlns%s;'>
+
+<!-- Define all the element names, with optional prefix -->
+<!ENTITY % schema "%p;schema">
+<!ENTITY % complexType "%p;complexType">
+<!ENTITY % complexContent "%p;complexContent">
+<!ENTITY % simpleContent "%p;simpleContent">
+<!ENTITY % extension "%p;extension">
+<!ENTITY % element "%p;element">
+<!ENTITY % unique "%p;unique">
+<!ENTITY % key "%p;key">
+<!ENTITY % keyref "%p;keyref">
+<!ENTITY % selector "%p;selector">
+<!ENTITY % field "%p;field">
+<!ENTITY % group "%p;group">
+<!ENTITY % all "%p;all">
+<!ENTITY % choice "%p;choice">
+<!ENTITY % sequence "%p;sequence">
+<!ENTITY % any "%p;any">
+<!ENTITY % anyAttribute "%p;anyAttribute">
+<!ENTITY % attribute "%p;attribute">
+<!ENTITY % attributeGroup "%p;attributeGroup">
+<!ENTITY % include "%p;include">
+<!ENTITY % import "%p;import">
+<!ENTITY % redefine "%p;redefine">
+<!ENTITY % notation "%p;notation">
+
+<!-- annotation elements -->
+<!ENTITY % annotation "%p;annotation">
+<!ENTITY % appinfo "%p;appinfo">
+<!ENTITY % documentation "%p;documentation">
+
+<!-- Customisation entities for the ATTLIST of each element type.
+     Define one of these if your schema takes advantage of the
+     anyAttribute='##other' in the schema for schemas -->
+
+<!ENTITY % schemaAttrs ''>
+<!ENTITY % complexTypeAttrs ''>
+<!ENTITY % complexContentAttrs ''>
+<!ENTITY % simpleContentAttrs ''>
+<!ENTITY % extensionAttrs ''>
+<!ENTITY % elementAttrs ''>
+<!ENTITY % groupAttrs ''>
+<!ENTITY % allAttrs ''>
+<!ENTITY % choiceAttrs ''>
+<!ENTITY % sequenceAttrs ''>
+<!ENTITY % anyAttrs ''>
+<!ENTITY % anyAttributeAttrs ''>
+<!ENTITY % attributeAttrs ''>
+<!ENTITY % attributeGroupAttrs ''>
+<!ENTITY % uniqueAttrs ''>
+<!ENTITY % keyAttrs ''>
+<!ENTITY % keyrefAttrs ''>
+<!ENTITY % selectorAttrs ''>
+<!ENTITY % fieldAttrs ''>
+<!ENTITY % includeAttrs ''>
+<!ENTITY % importAttrs ''>
+<!ENTITY % redefineAttrs ''>
+<!ENTITY % notationAttrs ''>
+<!ENTITY % annotationAttrs ''>
+<!ENTITY % appinfoAttrs ''>
+<!ENTITY % documentationAttrs ''>
+
+<!ENTITY % complexDerivationSet "CDATA">
+      <!-- #all or space-separated list drawn from derivationChoice -->
+<!ENTITY % blockSet "CDATA">
+      <!-- #all or space-separated list drawn from
+                      derivationChoice + 'substitution' -->
+
+<!ENTITY % mgs '%all; | %choice; | %sequence;'>
+<!ENTITY % cs '%choice; | %sequence;'>
+<!ENTITY % formValues '(qualified|unqualified)'>
+
+
+<!ENTITY % attrDecls    '((%attribute;| %attributeGroup;)*,(%anyAttribute;)?)'>
+
+<!ENTITY % particleAndAttrs '((%mgs; | %group;)?, %attrDecls;)'>
+
+<!-- This is used in part2 -->
+<!ENTITY % restriction1 '((%mgs; | %group;)?)'>
+
+%xs-datatypes;
+
+<!-- the duplication below is to produce an unambiguous content model
+     which allows annotation everywhere -->
+<!ELEMENT %schema; ((%include; | %import; | %redefine; | %annotation;)*,
+                    ((%simpleType; | %complexType;
+                      | %element; | %attribute;
+                      | %attributeGroup; | %group;
+                      | %notation; ),
+                     (%annotation;)*)* )>
+<!ATTLIST %schema;
+   targetNamespace      %URIref;               #IMPLIED
+   version              CDATA                  #IMPLIED
+   %nds;                %URIref;               #FIXED 'http://www.w3.org/2001/XMLSchema'
+   xmlns                CDATA                  #IMPLIED
+   finalDefault         %complexDerivationSet; ''
+   blockDefault         %blockSet;             ''
+   id                   ID                     #IMPLIED
+   elementFormDefault   %formValues;           'unqualified'
+   attributeFormDefault %formValues;           'unqualified'
+   xml:lang             CDATA                  #IMPLIED
+   %schemaAttrs;>
+<!-- Note the xmlns declaration is NOT in the Schema for Schemas,
+     because at the Infoset level where schemas operate,
+     xmlns(:prefix) is NOT an attribute! -->
+<!-- The declaration of xmlns is a convenience for schema authors -->
+<!-- The id attribute here and below is for use in external references
+     from non-schemas using simple fragment identifiers.
+     It is NOT used for schema-to-schema reference, internal or
+     external. -->
+
+<!-- a type is a named content type specification which allows attribute
+     declarations-->
+<!-- -->
+
+<!ELEMENT %complexType; ((%annotation;)?,
+                         (%simpleContent;|%complexContent;|
+                          %particleAndAttrs;))>
+
+<!ATTLIST %complexType;
+          name      %NCName;                        #IMPLIED
+          id        ID                              #IMPLIED
+          abstract  %boolean;                       #IMPLIED
+          final     %complexDerivationSet;          #IMPLIED
+          block     %complexDerivationSet;          #IMPLIED
+          mixed (true|false) 'false'
+          %complexTypeAttrs;>
+
+<!-- particleAndAttrs is shorthand for a root type -->
+<!-- mixed is disallowed if simpleContent, overriden if complexContent
+     has one too. -->
+
+<!-- If anyAttribute appears in one or more referenced attributeGroups
+     and/or explicitly, the intersection of the permissions is used -->
+
+<!ELEMENT %complexContent; ((%annotation;)?, (%restriction;|%extension;))>
+<!ATTLIST %complexContent;
+          mixed (true|false) #IMPLIED
+          id    ID           #IMPLIED
+          %complexContentAttrs;>
+
+<!-- restriction should use the branch defined above, not the simple
+     one from part2; extension should use the full model  -->
+
+<!ELEMENT %simpleContent; ((%annotation;)?, (%restriction;|%extension;))>
+<!ATTLIST %simpleContent;
+          id    ID           #IMPLIED
+          %simpleContentAttrs;>
+
+<!-- restriction should use the simple branch from part2, not the 
+     one defined above; extension should have no particle  -->
+
+<!ELEMENT %extension; ((%annotation;)?, (%particleAndAttrs;))>
+<!ATTLIST %extension;
+          base  %QName;      #REQUIRED
+          id    ID           #IMPLIED
+          %extensionAttrs;>
+
+<!-- an element is declared by either:
+ a name and a type (either nested or referenced via the type attribute)
+ or a ref to an existing element declaration -->
+
+<!ELEMENT %element; ((%annotation;)?, (%complexType;| %simpleType;)?,
+                     (%unique; | %key; | %keyref;)*)>
+<!-- simpleType or complexType only if no type|ref attribute -->
+<!-- ref not allowed at top level -->
+<!ATTLIST %element;
+            name               %NCName;               #IMPLIED
+            id                 ID                     #IMPLIED
+            ref                %QName;                #IMPLIED
+            type               %QName;                #IMPLIED
+            minOccurs          %nonNegativeInteger;   #IMPLIED
+            maxOccurs          CDATA                  #IMPLIED
+            nillable           %boolean;              #IMPLIED
+            substitutionGroup  %QName;                #IMPLIED
+            abstract           %boolean;              #IMPLIED
+            final              %complexDerivationSet; #IMPLIED
+            block              %blockSet;             #IMPLIED
+            default            CDATA                  #IMPLIED
+            fixed              CDATA                  #IMPLIED
+            form               %formValues;           #IMPLIED
+            %elementAttrs;>
+<!-- type and ref are mutually exclusive.
+     name and ref are mutually exclusive, one is required -->
+<!-- In the absence of type AND ref, type defaults to type of
+     substitutionGroup, if any, else the ur-type, i.e. unconstrained -->
+<!-- default and fixed are mutually exclusive -->
+
+<!ELEMENT %group; ((%annotation;)?,(%mgs;)?)>
+<!ATTLIST %group; 
+          name        %NCName;               #IMPLIED
+          ref         %QName;                #IMPLIED
+          minOccurs   %nonNegativeInteger;   #IMPLIED
+          maxOccurs   CDATA                  #IMPLIED
+          id          ID                     #IMPLIED
+          %groupAttrs;>
+
+<!ELEMENT %all; ((%annotation;)?, (%element;)*)>
+<!ATTLIST %all;
+          minOccurs   (1)                    #IMPLIED
+          maxOccurs   (1)                    #IMPLIED
+          id          ID                     #IMPLIED
+          %allAttrs;>
+
+<!ELEMENT %choice; ((%annotation;)?, (%element;| %group;| %cs; | %any;)*)>
+<!ATTLIST %choice;
+          minOccurs   %nonNegativeInteger;   #IMPLIED
+          maxOccurs   CDATA                  #IMPLIED
+          id          ID                     #IMPLIED
+          %choiceAttrs;>
+
+<!ELEMENT %sequence; ((%annotation;)?, (%element;| %group;| %cs; | %any;)*)>
+<!ATTLIST %sequence;
+          minOccurs   %nonNegativeInteger;   #IMPLIED
+          maxOccurs   CDATA                  #IMPLIED
+          id          ID                     #IMPLIED
+          %sequenceAttrs;>
+
+<!-- an anonymous grouping in a model, or
+     a top-level named group definition, or a reference to same -->
+
+<!-- Note that if order is 'all', group is not allowed inside.
+     If order is 'all' THIS group must be alone (or referenced alone) at
+     the top level of a content model -->
+<!-- If order is 'all', minOccurs==maxOccurs==1 on element/any inside -->
+<!-- Should allow minOccurs=0 inside order='all' . . . -->
+
+<!ELEMENT %any; (%annotation;)?>
+<!ATTLIST %any;
+            namespace       CDATA                  '##any'
+            processContents (skip|lax|strict)      'strict'
+            minOccurs       %nonNegativeInteger;   '1'
+            maxOccurs       CDATA                  '1'
+            id              ID                     #IMPLIED
+            %anyAttrs;>
+
+<!-- namespace is interpreted as follows:
+                  ##any      - - any non-conflicting WFXML at all
+
+                  ##other    - - any non-conflicting WFXML from namespace other
+                                  than targetNamespace
+
+                  ##local    - - any unqualified non-conflicting WFXML/attribute
+                  one or     - - any non-conflicting WFXML from
+                  more URI        the listed namespaces
+                  references
+
+                  ##targetNamespace ##local may appear in the above list,
+                    with the obvious meaning -->
+
+<!ELEMENT %anyAttribute; (%annotation;)?>
+<!ATTLIST %anyAttribute;
+            namespace       CDATA              '##any'
+            processContents (skip|lax|strict)  'strict'
+            id              ID                 #IMPLIED
+            %anyAttributeAttrs;>
+<!-- namespace is interpreted as for 'any' above -->
+
+<!-- simpleType only if no type|ref attribute -->
+<!-- ref not allowed at top level, name iff at top level -->
+<!ELEMENT %attribute; ((%annotation;)?, (%simpleType;)?)>
+<!ATTLIST %attribute;
+          name      %NCName;      #IMPLIED
+          id        ID            #IMPLIED
+          ref       %QName;       #IMPLIED
+          type      %QName;       #IMPLIED
+          use       (prohibited|optional|required) #IMPLIED
+          default   CDATA         #IMPLIED
+          fixed     CDATA         #IMPLIED
+          form      %formValues;  #IMPLIED
+          %attributeAttrs;>
+<!-- type and ref are mutually exclusive.
+     name and ref are mutually exclusive, one is required -->
+<!-- default for use is optional when nested, none otherwise -->
+<!-- default and fixed are mutually exclusive -->
+<!-- type attr and simpleType content are mutually exclusive -->
+
+<!-- an attributeGroup is a named collection of attribute decls, or a
+     reference thereto -->
+<!ELEMENT %attributeGroup; ((%annotation;)?,
+                       (%attribute; | %attributeGroup;)*,
+                       (%anyAttribute;)?) >
+<!ATTLIST %attributeGroup;
+                 name       %NCName;       #IMPLIED
+                 id         ID             #IMPLIED
+                 ref        %QName;        #IMPLIED
+                 %attributeGroupAttrs;>
+
+<!-- ref iff no content, no name.  ref iff not top level -->
+
+<!-- better reference mechanisms -->
+<!ELEMENT %unique; ((%annotation;)?, %selector;, (%field;)+)>
+<!ATTLIST %unique;
+          name     %NCName;       #REQUIRED
+         id       ID             #IMPLIED
+         %uniqueAttrs;>
+
+<!ELEMENT %key;    ((%annotation;)?, %selector;, (%field;)+)>
+<!ATTLIST %key;
+          name     %NCName;       #REQUIRED
+         id       ID             #IMPLIED
+         %keyAttrs;>
+
+<!ELEMENT %keyref; ((%annotation;)?, %selector;, (%field;)+)>
+<!ATTLIST %keyref;
+          name     %NCName;       #REQUIRED
+         refer    %QName;        #REQUIRED
+         id       ID             #IMPLIED
+         %keyrefAttrs;>
+
+<!ELEMENT %selector; ((%annotation;)?)>
+<!ATTLIST %selector;
+          xpath %XPathExpr; #REQUIRED
+          id    ID          #IMPLIED
+          %selectorAttrs;>
+<!ELEMENT %field; ((%annotation;)?)>
+<!ATTLIST %field;
+          xpath %XPathExpr; #REQUIRED
+          id    ID          #IMPLIED
+          %fieldAttrs;>
+
+<!-- Schema combination mechanisms -->
+<!ELEMENT %include; (%annotation;)?>
+<!ATTLIST %include;
+          schemaLocation %URIref; #REQUIRED
+          id             ID       #IMPLIED
+          %includeAttrs;>
+
+<!ELEMENT %import; (%annotation;)?>
+<!ATTLIST %import;
+          namespace      %URIref; #IMPLIED
+          schemaLocation %URIref; #IMPLIED
+          id             ID       #IMPLIED
+          %importAttrs;>
+
+<!ELEMENT %redefine; (%annotation; | %simpleType; | %complexType; |
+                      %attributeGroup; | %group;)*>
+<!ATTLIST %redefine;
+          schemaLocation %URIref; #REQUIRED
+          id             ID       #IMPLIED
+          %redefineAttrs;>
+
+<!ELEMENT %notation; (%annotation;)?>
+<!ATTLIST %notation;
+         name        %NCName;    #REQUIRED
+         id          ID          #IMPLIED
+         public      CDATA       #REQUIRED
+         system      %URIref;    #IMPLIED
+         %notationAttrs;>
+
+<!-- Annotation is either application information or documentation -->
+<!-- By having these here they are available for datatypes as well
+     as all the structures elements -->
+
+<!ELEMENT %annotation; (%appinfo; | %documentation;)*>
+<!ATTLIST %annotation; %annotationAttrs;>
+
+<!-- User must define annotation elements in internal subset for this
+     to work -->
+<!ELEMENT %appinfo; ANY>   <!-- too restrictive -->
+<!ATTLIST %appinfo;
+          source     %URIref;      #IMPLIED
+          id         ID         #IMPLIED
+          %appinfoAttrs;>
+<!ELEMENT %documentation; ANY>   <!-- too restrictive -->
+<!ATTLIST %documentation;
+          source     %URIref;   #IMPLIED
+          id         ID         #IMPLIED
+          xml:lang   CDATA      #IMPLIED
+          %documentationAttrs;>
+
+<!NOTATION XMLSchemaStructures PUBLIC
+           'structures' 'http://www.w3.org/2001/XMLSchema.xsd' >
+<!NOTATION XML PUBLIC
+           'REC-xml-1998-0210' 'http://www.w3.org/TR/1998/REC-xml-19980210' >
diff --git a/java/javax/servlet/resources/datatypes.dtd b/java/javax/servlet/resources/datatypes.dtd
new file mode 100644 (file)
index 0000000..1288da9
--- /dev/null
@@ -0,0 +1,218 @@
+<!--
+  Copyright 2004 The Apache Software Foundation
+
+  Licensed 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.
+-->
+<!--
+        DTD for XML Schemas: Part 2: Datatypes
+        $Id: datatypes.dtd 267129 2004-03-18 16:40:35Z jfarcand $
+        Note this DTD is NOT normative, or even definitive. - - the
+        prose copy in the datatypes REC is the definitive version
+        (which shouldn't differ from this one except for this comment
+        and entity expansions, but just in case)
+  -->
+
+<!--
+        This DTD cannot be used on its own, it is intended
+        only for incorporation in XMLSchema.dtd, q.v.
+  -->
+
+<!-- Define all the element names, with optional prefix -->
+<!ENTITY % simpleType "%p;simpleType">
+<!ENTITY % restriction "%p;restriction">
+<!ENTITY % list "%p;list">
+<!ENTITY % union "%p;union">
+<!ENTITY % maxExclusive "%p;maxExclusive">
+<!ENTITY % minExclusive "%p;minExclusive">
+<!ENTITY % maxInclusive "%p;maxInclusive">
+<!ENTITY % minInclusive "%p;minInclusive">
+<!ENTITY % totalDigits "%p;totalDigits">
+<!ENTITY % fractionDigits "%p;fractionDigits">
+<!ENTITY % length "%p;length">
+<!ENTITY % minLength "%p;minLength">
+<!ENTITY % maxLength "%p;maxLength">
+<!ENTITY % enumeration "%p;enumeration">
+<!ENTITY % whiteSpace "%p;whiteSpace">
+<!ENTITY % pattern "%p;pattern">
+
+<!--
+        Customisation entities for the ATTLIST of each element
+        type. Define one of these if your schema takes advantage
+        of the anyAttribute='##other' in the schema for schemas
+  -->
+
+<!ENTITY % simpleTypeAttrs "">
+<!ENTITY % restrictionAttrs "">
+<!ENTITY % listAttrs "">
+<!ENTITY % unionAttrs "">
+<!ENTITY % maxExclusiveAttrs "">
+<!ENTITY % minExclusiveAttrs "">
+<!ENTITY % maxInclusiveAttrs "">
+<!ENTITY % minInclusiveAttrs "">
+<!ENTITY % totalDigitsAttrs "">
+<!ENTITY % fractionDigitsAttrs "">
+<!ENTITY % lengthAttrs "">
+<!ENTITY % minLengthAttrs "">
+<!ENTITY % maxLengthAttrs "">
+<!ENTITY % enumerationAttrs "">
+<!ENTITY % whiteSpaceAttrs "">
+<!ENTITY % patternAttrs "">
+
+<!-- Define some entities for informative use as attribute
+        types -->
+<!ENTITY % URIref "CDATA">
+<!ENTITY % XPathExpr "CDATA">
+<!ENTITY % QName "NMTOKEN">
+<!ENTITY % QNames "NMTOKENS">
+<!ENTITY % NCName "NMTOKEN">
+<!ENTITY % nonNegativeInteger "NMTOKEN">
+<!ENTITY % boolean "(true|false)">
+<!ENTITY % simpleDerivationSet "CDATA">
+<!--
+        #all or space-separated list drawn from derivationChoice
+  -->
+
+<!--
+        Note that the use of 'facet' below is less restrictive
+        than is really intended:  There should in fact be no
+        more than one of each of minInclusive, minExclusive,
+        maxInclusive, maxExclusive, totalDigits, fractionDigits,
+        length, maxLength, minLength within datatype,
+        and the min- and max- variants of Inclusive and Exclusive
+        are mutually exclusive. On the other hand,  pattern and
+        enumeration may repeat.
+  -->
+<!ENTITY % minBound "(%minInclusive; | %minExclusive;)">
+<!ENTITY % maxBound "(%maxInclusive; | %maxExclusive;)">
+<!ENTITY % bounds "%minBound; | %maxBound;">
+<!ENTITY % numeric "%totalDigits; | %fractionDigits;">
+<!ENTITY % ordered "%bounds; | %numeric;">
+<!ENTITY % unordered
+   "%pattern; | %enumeration; | %whiteSpace; | %length; |
+   %maxLength; | %minLength;">
+<!ENTITY % facet "%ordered; | %unordered;">
+<!ENTITY % facetAttr 
+        "value CDATA #REQUIRED
+        id ID #IMPLIED">
+<!ENTITY % fixedAttr "fixed %boolean; #IMPLIED">
+<!ENTITY % facetModel "(%annotation;)?">
+<!ELEMENT %simpleType;
+        ((%annotation;)?, (%restriction; | %list; | %union;))>
+<!ATTLIST %simpleType;
+    name      %NCName; #IMPLIED
+    final     %simpleDerivationSet; #IMPLIED
+    id        ID       #IMPLIED
+    %simpleTypeAttrs;>
+<!-- name is required at top level -->
+<!ELEMENT %restriction; ((%annotation;)?,
+                         (%restriction1; |
+                          ((%simpleType;)?,(%facet;)*)),
+                         (%attrDecls;))>
+<!ATTLIST %restriction;
+    base      %QName;                  #IMPLIED
+    id        ID       #IMPLIED
+    %restrictionAttrs;>
+<!--
+        base and simpleType child are mutually exclusive,
+        one is required.
+
+        restriction is shared between simpleType and
+        simpleContent and complexContent (in XMLSchema.xsd).
+        restriction1 is for the latter cases, when this
+        is restricting a complex type, as is attrDecls.
+  -->
+<!ELEMENT %list; ((%annotation;)?,(%simpleType;)?)>
+<!ATTLIST %list;
+    itemType      %QName;             #IMPLIED
+    id        ID       #IMPLIED
+    %listAttrs;>
+<!--
+        itemType and simpleType child are mutually exclusive,
+        one is required
+  -->
+<!ELEMENT %union; ((%annotation;)?,(%simpleType;)*)>
+<!ATTLIST %union;
+    id            ID       #IMPLIED
+    memberTypes   %QNames;            #IMPLIED
+    %unionAttrs;>
+<!--
+        At least one item in memberTypes or one simpleType
+        child is required
+  -->
+
+<!ELEMENT %maxExclusive; %facetModel;>
+<!ATTLIST %maxExclusive;
+        %facetAttr;
+        %fixedAttr;
+        %maxExclusiveAttrs;>
+<!ELEMENT %minExclusive; %facetModel;>
+<!ATTLIST %minExclusive;
+        %facetAttr;
+        %fixedAttr;
+        %minExclusiveAttrs;>
+
+<!ELEMENT %maxInclusive; %facetModel;>
+<!ATTLIST %maxInclusive;
+        %facetAttr;
+        %fixedAttr;
+        %maxInclusiveAttrs;>
+<!ELEMENT %minInclusive; %facetModel;>
+<!ATTLIST %minInclusive;
+        %facetAttr;
+        %fixedAttr;
+        %minInclusiveAttrs;>
+
+<!ELEMENT %totalDigits; %facetModel;>
+<!ATTLIST %totalDigits;
+        %facetAttr;
+        %fixedAttr;
+        %totalDigitsAttrs;>
+<!ELEMENT %fractionDigits; %facetModel;>
+<!ATTLIST %fractionDigits;
+        %facetAttr;
+        %fixedAttr;
+        %fractionDigitsAttrs;>
+
+<!ELEMENT %length; %facetModel;>
+<!ATTLIST %length;
+        %facetAttr;
+        %fixedAttr;
+        %lengthAttrs;>
+<!ELEMENT %minLength; %facetModel;>
+<!ATTLIST %minLength;
+        %facetAttr;
+        %fixedAttr;
+        %minLengthAttrs;>
+<!ELEMENT %maxLength; %facetModel;>
+<!ATTLIST %maxLength;
+        %facetAttr;
+        %fixedAttr;
+        %maxLengthAttrs;>
+
+<!-- This one can be repeated -->
+<!ELEMENT %enumeration; %facetModel;>
+<!ATTLIST %enumeration;
+        %facetAttr;
+        %enumerationAttrs;>
+
+<!ELEMENT %whiteSpace; %facetModel;>
+<!ATTLIST %whiteSpace;
+        %facetAttr;
+        %fixedAttr;
+        %whiteSpaceAttrs;>
+
+<!-- This one can be repeated -->
+<!ELEMENT %pattern; %facetModel;>
+<!ATTLIST %pattern;
+        %facetAttr;
+        %patternAttrs;>
diff --git a/java/javax/servlet/resources/j2ee_1_4.xsd b/java/javax/servlet/resources/j2ee_1_4.xsd
new file mode 100644 (file)
index 0000000..0f9f2eb
--- /dev/null
@@ -0,0 +1,1621 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Copyright 2004 The Apache Software Foundation
+
+  Licensed 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"
+     elementFormDefault="qualified"
+     attributeFormDefault="unqualified"
+     version="1.4">
+  <xsd:annotation>
+    <xsd:documentation>
+      @(#)j2ee_1_4.xsds        1.43 03/09/16
+    </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>
+
+The following definitions that appear in the common
+shareable schema(s) of J2EE deployment descriptors should be
+interpreted with respect to the context they are included:
+
+Deployment Component may indicate one of the following:
+    j2ee application;
+    application client;
+    web application;
+    enterprise bean;
+    resource adapter;
+
+Deployment File may indicate one of the following:
+    ear file;
+    war file;
+    jar file;
+    rar file;
+
+</xsd:documentation>
+</xsd:annotation>
+
+  <xsd:import namespace="http://www.w3.org/XML/1998/namespace"
+             schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
+  <xsd:include schemaLocation=
+       "http://www.ibm.com/webservices/xsd/j2ee_web_services_client_1_1.xsd"/>
+
+
+<!-- **************************************************** -->
+
+  <xsd:group name="descriptionGroup">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       This group keeps the usage of the contained description related
+       elements consistent across J2EE deployment descriptors.
+
+       All elements may occur multiple times with different languages,
+       to support localization of the content.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+                  type="j2ee:descriptionType"
+                  minOccurs="0"
+                  maxOccurs="unbounded"/>
+      <xsd:element name="display-name"
+                  type="j2ee:display-nameType"
+                  minOccurs="0"
+                  maxOccurs="unbounded"/>
+      <xsd:element name="icon"
+                  type="j2ee:iconType"
+                  minOccurs="0"
+                  maxOccurs="unbounded"/>
+    </xsd:sequence>
+  </xsd:group>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="descriptionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       The description type is used by a description element to
+       provide text describing the parent element.  The elements
+       that use this type should include any information that the
+       Deployment Component's Deployment File file producer wants
+       to provide to the consumer of the Deployment Component's
+       Deployment File (i.e., to the Deployer). Typically, the
+       tools used by such a Deployment File consumer will display
+       the description when processing the parent element that
+       contains the description.
+
+       The lang attribute defines the language that the
+       description is provided in. The default value is "en" (English).
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:extension base="j2ee:xsdStringType">
+       <xsd:attribute ref="xml:lang"/>
+      </xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:simpleType name="dewey-versionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       This type defines a dewey decimal which is used
+       to describe versions of documents.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:restriction base="xsd:decimal">
+      <xsd:whiteSpace value="collapse"/>
+    </xsd:restriction>
+
+  </xsd:simpleType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="display-nameType">
+    <xsd:annotation>
+      <xsd:documentation>
+       <![CDATA[
+
+         The display-name type contains a short name that is intended
+         to be displayed by tools. It is used by display-name
+         elements.  The display name need not be unique.
+
+         Example:
+
+         ...
+            <display-name xml:lang="en">Employee Self Service</display-name>
+
+         The value of the xml:lang attribute is "en" (English) by default.
+
+         ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:extension base="j2ee:string">
+       <xsd:attribute ref="xml:lang"/>
+      </xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-linkType">
+    <xsd:annotation>
+      <xsd:documentation>
+       <![CDATA[
+
+         The ejb-linkType is used by ejb-link
+         elements in the ejb-ref or ejb-local-ref elements to specify
+         that an EJB reference is linked to enterprise bean.
+
+         The value of the ejb-link element must be the ejb-name of an
+         enterprise bean in the same ejb-jar file or in another ejb-jar
+         file in the same J2EE application unit.
+
+         Alternatively, the name in the ejb-link element may be
+         composed of a path name specifying the ejb-jar containing the
+         referenced enterprise bean with the ejb-name of the target
+         bean appended and separated from the path name by "#".  The
+         path name is relative to the Deployment File containing
+         Deployment Component that is referencing the enterprise
+         bean.  This allows multiple enterprise beans with the same
+         ejb-name to be uniquely identified.
+
+         Examples:
+
+             <ejb-link>EmployeeRecord</ejb-link>
+
+             <ejb-link>../products/product.jar#ProductEJB</ejb-link>
+
+         ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-local-refType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       The ejb-local-refType is used by ejb-local-ref elements for
+       the declaration of a reference to an enterprise bean's local
+       home. The declaration consists of:
+
+           - an optional description
+           - the EJB reference name used in the code of the Deployment
+             Component that's referencing the enterprise bean
+           - the expected type of the referenced enterprise bean
+           - the expected local home and local interfaces of the
+             referenced enterprise bean
+           - optional ejb-link information, used to specify the
+             referenced enterprise bean
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+                  type="j2ee:descriptionType"
+                  minOccurs="0"
+                  maxOccurs="unbounded"/>
+      <xsd:element name="ejb-ref-name"
+                  type="j2ee:ejb-ref-nameType"/>
+      <xsd:element name="ejb-ref-type"
+                  type="j2ee:ejb-ref-typeType"/>
+      <xsd:element name="local-home"
+                  type="j2ee:local-homeType"/>
+      <xsd:element name="local"
+                  type="j2ee:localType"/>
+      <xsd:element name="ejb-link"
+                  type="j2ee:ejb-linkType"
+                  minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-ref-nameType">
+    <xsd:annotation>
+      <xsd:documentation>
+       <![CDATA[
+
+         The ejb-ref-name element contains the name of an EJB
+         reference. The EJB reference is an entry in the
+         Deployment Component's environment and is relative to the
+         java:comp/env context.  The name must be unique within the
+         Deployment Component.
+
+         It is recommended that name is prefixed with "ejb/".
+
+         Example:
+
+         <ejb-ref-name>ejb/Payroll</ejb-ref-name>
+
+         ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:jndi-nameType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-ref-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       The ejb-ref-typeType contains the expected type of the
+       referenced enterprise bean.
+
+       The ejb-ref-type designates a value
+       that must be one of the following:
+
+           Entity
+           Session
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+       <xsd:enumeration value="Entity"/>
+       <xsd:enumeration value="Session"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-refType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       The ejb-refType is used by ejb-ref elements for the
+       declaration of a reference to an enterprise bean's home. The
+       declaration consists of:
+
+           - an optional description
+           - the EJB reference name used in the code of
+             the Deployment Component that's referencing the enterprise
+             bean
+           - the expected type of the referenced enterprise bean
+           - the expected home and remote interfaces of the referenced
+             enterprise bean
+           - optional ejb-link information, used to specify the
+             referenced enterprise bean
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+                  type="j2ee:descriptionType"
+                  minOccurs="0"
+                  maxOccurs="unbounded"/>
+      <xsd:element name="ejb-ref-name"
+                  type="j2ee:ejb-ref-nameType"/>
+      <xsd:element name="ejb-ref-type"
+                  type="j2ee:ejb-ref-typeType"/>
+
+      <xsd:element name="home"
+                  type="j2ee:homeType"/>
+      <xsd:element name="remote"
+                  type="j2ee:remoteType"/>
+      <xsd:element name="ejb-link"
+                  type="j2ee:ejb-linkType"
+                  minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="emptyType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       This type is used to designate an empty
+       element when used.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="env-entry-type-valuesType">
+    <xsd:annotation>
+      <xsd:documentation>
+       <![CDATA[
+
+         This type contains the fully-qualified Java type of the
+         environment entry value that is expected by the
+         application's code.
+
+         The following are the legal values of env-entry-type-valuesType:
+
+             java.lang.Boolean
+             java.lang.Byte
+             java.lang.Character
+             java.lang.String
+             java.lang.Short
+             java.lang.Integer
+             java.lang.Long
+             java.lang.Float
+             java.lang.Double
+
+         Example:
+
+         <env-entry-type>java.lang.Boolean</env-entry-type>
+
+         ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+       <xsd:enumeration value="java.lang.Boolean"/>
+       <xsd:enumeration value="java.lang.Byte"/>
+       <xsd:enumeration value="java.lang.Character"/>
+       <xsd:enumeration value="java.lang.String"/>
+       <xsd:enumeration value="java.lang.Short"/>
+       <xsd:enumeration value="java.lang.Integer"/>
+       <xsd:enumeration value="java.lang.Long"/>
+       <xsd:enumeration value="java.lang.Float"/>
+       <xsd:enumeration value="java.lang.Double"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="env-entryType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       The env-entryType is used to declare an application's
+       environment entry. The declaration consists of an optional
+       description, the name of the environment entry, and an
+       optional value.  If a value is not specified, one must be
+       supplied during deployment.
+
+       It is used by env-entry elements.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+                  type="j2ee:descriptionType"
+                  minOccurs="0"
+                  maxOccurs="unbounded"/>
+      <xsd:element name="env-entry-name"
+                  type="j2ee:jndi-nameType">
+       <xsd:annotation>
+         <xsd:documentation>
+           <![CDATA[
+
+             The env-entry-name element contains the name of a
+             Deployment Component's environment entry.  The name
+             is a JNDI name relative to the java:comp/env
+             context.  The name must be unique within a
+             Deployment Component. The uniqueness
+             constraints must be defined within the declared
+             context.
+
+             Example:
+
+             <env-entry-name>minAmount</env-entry-name>
+
+             ]]>
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="env-entry-type"
+                  type="j2ee:env-entry-type-valuesType"/>
+
+      <xsd:element name="env-entry-value"
+                  type="j2ee:xsdStringType"
+                  minOccurs="0">
+       <xsd:annotation>
+         <xsd:documentation>
+           <![CDATA[
+
+             The env-entry-value designates the value of a
+             Deployment Component's environment entry. The value
+             must be a String that is valid for the
+             constructor of the specified type that takes a
+             single String parameter, or for java.lang.Character,
+             a single character.
+
+             Example:
+
+             <env-entry-value>100.00</env-entry-value>
+
+             ]]>
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="fully-qualified-classType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       The elements that use this type designate the name of a
+       Java class or interface.  The name is in the form of a
+       "binary name", as defined in the JLS.  This is the form
+       of name used in Class.forName().  Tools that need the
+       canonical name (the name used in source code) will need
+       to convert this binary name to the canonical name.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="generic-booleanType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       This type defines four different values which can designate
+       boolean values. This includes values yes and no which are
+       not designated by xsd:boolean
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+       <xsd:enumeration value="true"/>
+       <xsd:enumeration value="false"/>
+       <xsd:enumeration value="yes"/>
+       <xsd:enumeration value="no"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="homeType">
+    <xsd:annotation>
+      <xsd:documentation>
+       <![CDATA[
+
+         The homeType defines the fully-qualified name of
+         an enterprise bean's home interface.
+
+         Example:
+
+             <home>com.aardvark.payroll.PayrollHome</home>
+
+         ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:fully-qualified-classType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="iconType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       The icon type contains small-icon and large-icon elements
+       that specify the file names for small and large GIF or
+       JPEG icon images used to represent the parent element in a
+       GUI tool.
+
+       The xml:lang attribute defines the language that the
+       icon file names are provided in. Its value is "en" (English)
+       by default.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="small-icon" type="j2ee:pathType"
+                  minOccurs="0">
+       <xsd:annotation>
+         <xsd:documentation>
+           <![CDATA[
+
+             The small-icon element contains the name of a file
+             containing a small (16 x 16) icon image. The file
+             name is a relative path within the Deployment
+             Component's Deployment File.
+
+             The image may be either in the JPEG or GIF format.
+             The icon can be used by tools.
+
+             Example:
+
+             <small-icon>employee-service-icon16x16.jpg</small-icon>
+
+             ]]>
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="large-icon" type="j2ee:pathType"
+                  minOccurs="0">
+       <xsd:annotation>
+         <xsd:documentation>
+           <![CDATA[
+
+             The large-icon element contains the name of a file
+             containing a large
+             (32 x 32) icon image. The file name is a relative
+             path within the Deployment Component's Deployment
+             File.
+
+             The image may be either in the JPEG or GIF format.
+             The icon can be used by tools.
+
+             Example:
+
+             <large-icon>employee-service-icon32x32.jpg</large-icon>
+
+             ]]>
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+
+    </xsd:sequence>
+
+    <xsd:attribute ref="xml:lang"/>
+    <xsd:attribute name="id" type="xsd:ID"/>
+
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="java-identifierType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       The java-identifierType defines a Java identifier.
+       The users of this type should further verify that
+       the content does not contain Java reserved keywords.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+       <xsd:pattern value="($|_|\p{L})(\p{L}|\p{Nd}|_|$)*"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="java-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       This is a generic type that designates a Java primitive
+       type or a fully qualified name of a Java interface/type,
+       or an array of such types.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+       <xsd:pattern value="[^\p{Z}]*"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="jndi-nameType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       The jndi-nameType type designates a JNDI name in the
+       Deployment Component's environment and is relative to the
+       java:comp/env context.  A JNDI name must be unique within the
+       Deployment Component.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:group name="jndiEnvironmentRefsGroup">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       This group keeps the usage of the contained JNDI environment
+       reference elements consistent across J2EE deployment descriptors.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="env-entry"
+                  type="j2ee:env-entryType"
+                  minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="ejb-ref"
+                  type="j2ee:ejb-refType"
+                  minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="ejb-local-ref"
+                  type="j2ee:ejb-local-refType"
+                  minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:group ref="j2ee:service-refGroup"/>
+      <xsd:element name="resource-ref"
+                  type="j2ee:resource-refType"
+                  minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="resource-env-ref"
+                  type="j2ee:resource-env-refType"
+                  minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="message-destination-ref"
+                  type="j2ee:message-destination-refType"
+                  minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+  </xsd:group>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="listenerType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       The listenerType indicates the deployment properties for a web
+       application listener bean.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="j2ee:descriptionGroup"/>
+      <xsd:element name="listener-class"
+                  type="j2ee:fully-qualified-classType">
+       <xsd:annotation>
+         <xsd:documentation>
+
+           The listener-class element declares a class in the
+           application must be registered as a web
+           application listener bean. The value is the fully
+           qualified classname of the listener class.
+
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="local-homeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       The local-homeType defines the fully-qualified
+       name of an enterprise bean's local home interface.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:fully-qualified-classType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="localType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       The localType defines the fully-qualified name of an
+       enterprise bean's local interface.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:fully-qualified-classType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="message-destination-linkType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       The message-destination-linkType is used to link a message
+       destination reference or message-driven bean to a message
+       destination.
+
+       The Assembler sets the value to reflect the flow of messages
+       between producers and consumers in the application.
+
+       The value must be the message-destination-name of a message
+       destination in the same Deployment File or in another
+       Deployment File in the same J2EE application unit.
+
+       Alternatively, the value may be composed of a path name
+       specifying a Deployment File containing the referenced
+       message destination with the message-destination-name of the
+       destination appended and separated from the path name by
+       "#". The path name is relative to the Deployment File
+       containing Deployment Component that is referencing the
+       message destination.  This allows multiple message
+       destinations with the same name to be uniquely identified.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="message-destination-refType">
+    <xsd:annotation>
+      <xsd:documentation>
+       <![CDATA[
+
+         The message-destination-ref element contains a declaration
+         of Deployment Component's reference to a message destination
+         associated with a resource in Deployment Component's
+         environment. It consists of:
+
+                 - an optional description
+                 - the message destination reference name
+                 - the message destination type
+                 - a specification as to whether the
+                   destination is used for
+                   consuming or producing messages, or both
+                 - a link to the message destination
+
+         Examples:
+
+         <message-destination-ref>
+                 <message-destination-ref-name>jms/StockQueue
+                 </message-destination-ref-name>
+                 <message-destination-type>javax.jms.Queue
+                 </message-destination-type>
+                 <message-destination-usage>Consumes
+                 </message-destination-usage>
+                 <message-destination-link>CorporateStocks
+                 </message-destination-link>
+         </message-destination-ref>
+
+         ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+                  type="j2ee:descriptionType"
+                  minOccurs="0"
+                  maxOccurs="unbounded"/>
+      <xsd:element name="message-destination-ref-name"
+                  type="j2ee:jndi-nameType">
+       <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
+           Deployment Component code.  The name is a JNDI name
+           relative to the java:comp/env context and must be
+           unique within an ejb-jar (for enterprise beans) or a
+           Deployment File (for others).
+
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="message-destination-type"
+                  type="j2ee:message-destination-typeType"/>
+      <xsd:element name="message-destination-usage"
+                  type="j2ee:message-destination-usageType"/>
+      <xsd:element name="message-destination-link"
+                  type="j2ee:message-destination-linkType"
+                  minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="message-destination-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+       <![CDATA[
+
+         The message-destination-typeType specifies the type of
+         the destination. The type is specified by the Java interface
+         expected to be implemented by the destination.
+
+         Example:
+
+           <message-destination-type>javax.jms.Queue
+           </message-destination-type>
+
+         ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:fully-qualified-classType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="message-destination-usageType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       The message-destination-usageType specifies the use of the
+       message destination indicated by the reference.  The value
+       indicates whether messages are consumed from the message
+       destination, produced for the destination, or both.  The
+       Assembler makes use of this information in linking producers
+       of a destination with its consumers.
+
+       The value of the message-destination-usage element must be
+       one of the following:
+           Consumes
+           Produces
+           ConsumesProduces
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+       <xsd:enumeration value="Consumes"/>
+       <xsd:enumeration value="Produces"/>
+       <xsd:enumeration value="ConsumesProduces"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="message-destinationType">
+    <xsd:annotation>
+      <xsd:documentation>
+       <![CDATA[
+
+         The message-destinationType specifies a message
+         destination. The logical destination described by this
+         element is mapped to a physical destination by the Deployer.
+
+         The message destination element contains:
+
+                 - an optional description
+                 - an optional display-name
+                 - an optional icon
+                 - a message destination name which must be unique
+                   among message destination names within the same
+                   Deployment File.
+
+         Example:
+
+         <message-destination>
+                 <message-destination-name>CorporateStocks
+                 </message-destination-name>
+         </message-destination>
+
+         ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:group ref="j2ee:descriptionGroup"/>
+      <xsd:element name="message-destination-name"
+                  type="j2ee:string">
+       <xsd:annotation>
+         <xsd:documentation>
+
+           The message-destination-name element specifies a
+           name for a message destination.  This name must be
+           unique among the names of message destinations
+           within the Deployment File.
+
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="param-valueType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       This type is a general type that can be used to declare
+       parameter/value lists.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+                  type="j2ee:descriptionType"
+                  minOccurs="0"
+                  maxOccurs="unbounded"/>
+      <xsd:element name="param-name"
+                  type="j2ee:string">
+       <xsd:annotation>
+         <xsd:documentation>
+
+           The param-name element contains the name of a
+           parameter.
+
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="param-value"
+                  type="j2ee:xsdStringType">
+       <xsd:annotation>
+         <xsd:documentation>
+
+           The param-value element contains the value of a
+           parameter.
+
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="pathType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       The elements that use this type designate either a relative
+       path or an absolute path starting with a "/".
+
+       In elements that specify a pathname to a file within the
+       same Deployment File, relative filenames (i.e., those not
+       starting with "/") are considered relative to the root of
+       the Deployment File's namespace.  Absolute filenames (i.e.,
+       those starting with "/") also specify names in the root of
+       the Deployment 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:simpleContent>
+      <xsd:restriction base="j2ee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="remoteType">
+    <xsd:annotation>
+      <xsd:documentation>
+       <![CDATA[
+
+         The remote element contains the fully-qualified name
+         of the enterprise bean's remote interface.
+
+         Example:
+
+             <remote>com.wombat.empl.EmployeeService</remote>
+
+         ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:fully-qualified-classType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="res-authType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       The res-authType specifies whether the Deployment Component
+       code signs on programmatically to the resource manager, or
+       whether the Container will sign on to the resource manager
+       on behalf of the Deployment Component. In the latter case,
+       the Container uses information that is supplied by the
+       Deployer.
+
+       The value must be one of the two following:
+
+           Application
+           Container
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+       <xsd:enumeration value="Application"/>
+       <xsd:enumeration value="Container"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="res-sharing-scopeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       The res-sharing-scope type specifies whether connections
+       obtained through the given resource manager connection
+       factory reference can be shared. The value, if specified,
+       must be one of the two following:
+
+           Shareable
+           Unshareable
+
+       The default value is Shareable.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+       <xsd:enumeration value="Shareable"/>
+       <xsd:enumeration value="Unshareable"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="resource-env-refType">
+    <xsd:annotation>
+      <xsd:documentation>
+       <![CDATA[
+
+         The resource-env-refType is used to define
+         resource-env-type elements.  It contains a declaration of a
+         Deployment Component's reference to an administered object
+         associated with a resource in the Deployment Component's
+         environment.  It consists of an optional description, the
+         resource environment reference name, and an indication of
+         the resource environment reference type expected by the
+         Deployment Component code.
+
+         Example:
+
+         <resource-env-ref>
+             <resource-env-ref-name>jms/StockQueue
+             </resource-env-ref-name>
+             <resource-env-ref-type>javax.jms.Queue
+             </resource-env-ref-type>
+         </resource-env-ref>
+
+         ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+                  type="j2ee:descriptionType"
+                  minOccurs="0"
+                  maxOccurs="unbounded"/>
+      <xsd:element name="resource-env-ref-name"
+                  type="j2ee:jndi-nameType">
+       <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 Deployment Component code.  The name is a JNDI
+           name relative to the java:comp/env context and must
+           be unique within a Deployment Component.
+
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="resource-env-ref-type"
+                  type="j2ee:fully-qualified-classType">
+       <xsd:annotation>
+         <xsd:documentation>
+
+           The resource-env-ref-type element specifies the type
+           of a resource environment reference.  It is the
+           fully qualified name of a Java language class or
+           interface.
+
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="resource-refType">
+    <xsd:annotation>
+      <xsd:documentation>
+       <![CDATA[
+
+         The resource-refType contains a declaration of a
+         Deployment Component's reference to an external resource. It
+         consists of an optional description, the resource manager
+         connection factory reference name, the indication of the
+         resource manager connection factory type expected by the
+         Deployment Component code, the type of authentication
+         (Application or Container), and an optional specification of
+         the shareability of connections obtained from the resource
+         (Shareable or Unshareable).
+
+         Example:
+
+         <resource-ref>
+             <res-ref-name>jdbc/EmployeeAppDB</res-ref-name>
+             <res-type>javax.sql.DataSource</res-type>
+             <res-auth>Container</res-auth>
+             <res-sharing-scope>Shareable</res-sharing-scope>
+         </resource-ref>
+
+         ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+                  type="j2ee:descriptionType"
+                  minOccurs="0"
+                  maxOccurs="unbounded"/>
+      <xsd:element name="res-ref-name"
+                  type="j2ee:jndi-nameType">
+       <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 Deployment File.
+
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="res-type"
+                  type="j2ee:fully-qualified-classType">
+       <xsd:annotation>
+         <xsd:documentation>
+
+           The res-type element specifies the type of the data
+           source. The type is specified by the fully qualified
+           Java language class or interface
+           expected to be implemented by the data source.
+
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="res-auth"
+                  type="j2ee:res-authType"/>
+
+      <xsd:element name="res-sharing-scope"
+                  type="j2ee:res-sharing-scopeType"
+                  minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="role-nameType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       The role-nameType designates the name of a security role.
+
+       The name must conform to the lexical rules for a token.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="run-asType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       The run-asType specifies the run-as identity to be
+       used for the execution of a component. It contains an
+       optional description, and the name of a security role.
+
+      </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"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="security-role-refType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       The security-role-refType contains the declaration of a
+       security role reference in a component's or a
+       Deployment Component's code. The declaration consists of an
+       optional description, the security role name used in the
+       code, and an optional link to a security role. If the
+       security role is not specified, the Deployer must choose an
+       appropriate security role.
+
+      </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">
+       <xsd:annotation>
+         <xsd:documentation>
+
+           The value of the role-name element must be the String used
+           as the parameter to the
+           EJBContext.isCallerInRole(String roleName) method or the
+           HttpServletRequest.isUserInRole(String role) method.
+
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="role-link"
+                  type="j2ee:role-nameType"
+                  minOccurs="0">
+       <xsd:annotation>
+         <xsd:documentation>
+
+           The role-link element is a reference to a defined
+           security role. The role-link element must contain
+           the name of one of the security roles defined in the
+           security-role elements.
+
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="security-roleType">
+    <xsd:annotation>
+      <xsd:documentation>
+       <![CDATA[
+
+         The security-roleType contains the definition of a security
+         role. The definition consists of an optional description of the
+         security role, and the security role name.
+
+         Example:
+
+             <security-role>
+             <description>
+                 This role includes all employees who are authorized
+                 to access the employee service application.
+             </description>
+             <role-name>employee</role-name>
+             </security-role>
+
+         ]]>
+      </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"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="string">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       This is a special string datatype that is defined by J2EE as
+       a base type for defining collapsed strings. When schemas
+       require trailing/leading space elimination as well as
+       collapsing the existing whitespace, this base type may be
+       used.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:token">
+       <xsd:attribute name="id" type="xsd:ID"/>
+      </xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="true-falseType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       This simple type designates a boolean with only two
+       permissible values
+
+       - true
+       - false
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:xsdBooleanType">
+       <xsd:pattern value="(true|false)"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="url-patternType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       The url-patternType contains the url pattern of the mapping.
+       It must follow the rules specified in Section 11.2 of the
+       Servlet API Specification. This pattern is assumed to be in
+       URL-decoded form and must not contain CR(#xD) or LF(#xA).
+       If it contains those characters, the container must inform
+       the developer with a descriptive error message.
+       The container must preserve all characters including whitespaces.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="xsdAnyURIType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       This type adds an "id" attribute to xsd:anyURI.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:anyURI">
+       <xsd:attribute name="id" type="xsd:ID"/>
+      </xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="xsdBooleanType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       This type adds an "id" attribute to xsd:boolean.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:boolean">
+       <xsd:attribute name="id" type="xsd:ID"/>
+      </xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="xsdIntegerType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       This type adds an "id" attribute to xsd:integer.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:integer">
+       <xsd:attribute name="id" type="xsd:ID"/>
+      </xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="xsdNMTOKENType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       This type adds an "id" attribute to xsd:NMTOKEN.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:NMTOKEN">
+       <xsd:attribute name="id" type="xsd:ID"/>
+      </xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="xsdNonNegativeIntegerType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       This type adds an "id" attribute to xsd:nonNegativeInteger.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:nonNegativeInteger">
+       <xsd:attribute name="id" type="xsd:ID"/>
+      </xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="xsdPositiveIntegerType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       This type adds an "id" attribute to xsd:positiveInteger.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:positiveInteger">
+       <xsd:attribute name="id" type="xsd:ID"/>
+      </xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="xsdQNameType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       This type adds an "id" attribute to xsd:QName.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:QName">
+       <xsd:attribute name="id" type="xsd:ID"/>
+      </xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="xsdStringType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       This type adds an "id" attribute to xsd:string.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:string">
+       <xsd:attribute name="id" type="xsd:ID"/>
+      </xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+</xsd:schema>
+
diff --git a/java/javax/servlet/resources/j2ee_web_services_1_1.xsd b/java/javax/servlet/resources/j2ee_web_services_1_1.xsd
new file mode 100644 (file)
index 0000000..dfb5bd2
--- /dev/null
@@ -0,0 +1,504 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Copyright 2004 The Apache Software Foundation
+
+  Licensed 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 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="1.1">
+  <xsd:annotation>
+    <xsd:documentation>
+      @(#)j2ee_web_services_1_1.xsds   1.11 02/11/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>
+
+      (C) Copyright International Business Machines Corporation 2002
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+      <![CDATA[
+
+       The webservices element is the root element for the web services
+       deployment descriptor.  It specifies the set of web service
+       descriptions that are to be deployed into the J2EE Application
+       Server and the dependencies they have on container resources and
+       services.  The deployment descriptor must be named
+       "META-INF/webservices.xml" in the web services' jar file.
+
+       Used in: webservices.xml
+
+       All webservices deployment descriptors must indicate the
+       webservices 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:
+
+           <webservices xmlns="http://java.sun.com/xml/ns/j2ee"
+             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+             xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
+               http://www.ibm.com/webservices/xsd/j2ee_web_services_1_1.xsd"
+             version="1.1">
+             ...
+           </webservices>
+
+       The instance documents may indicate the published version of the
+       schema using the xsi:schemaLocation attribute for the J2EE
+       namespace with the following location:
+
+       http://www.ibm.com/webservices/xsd/j2ee_web_services_1_1.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:element name="webservices" type="j2ee:webservicesType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       The webservices element is the root element for the web services
+       deployment descriptor.  It specifies the set of web service
+       descriptions that are to be deployed into the J2EE Application Server
+       and the dependencies they have on container resources and services.
+
+       Used in: webservices.xml
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:key name="webservice-description-name-key">
+      <xsd:annotation>
+       <xsd:documentation>
+
+         The webservice-description-name identifies the collection of
+         port-components associated with a WSDL file and JAX-RPC mapping. The
+         name must be unique within the deployment descriptor.
+
+       </xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:webservice-description"/>
+      <xsd:field xpath="j2ee:webservice-description-name"/>
+    </xsd:key>
+  </xsd:element>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="port-componentType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       The port-component element associates a WSDL port with a web service
+       interface and implementation.  It defines the name of the port as a
+       component, optional description, optional display name, optional iconic
+       representations, WSDL port QName, Service Endpoint Interface, Service
+       Implementation Bean.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+                  type="j2ee:descriptionType"
+                  minOccurs="0" maxOccurs="1"/>
+      <xsd:element name="display-name"
+                  type="j2ee:display-nameType"
+                  minOccurs="0" maxOccurs="1"/>
+      <xsd:element name="icon"
+                  type="j2ee:iconType"
+                  minOccurs="0" maxOccurs="1"/>
+      <xsd:element name="port-component-name"
+                  type="j2ee:string">
+       <xsd:annotation>
+         <xsd:documentation>
+           <![CDATA[
+
+             The port-component-name element specifies a port component's
+             name.  This name is assigned by the module producer to name
+             the service implementation bean in the module's deployment
+             descriptor. The name must be unique among the port component
+             names defined in the same module.
+
+             Used in: port-component
+
+             Example:
+                     <port-component-name>EmployeeService
+                     </port-component-name>
+
+             ]]>
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="wsdl-port"
+                  type="j2ee:xsdQNameType">
+       <xsd:annotation>
+         <xsd:documentation>
+
+           Defines the name space and local name part of the WSDL port QName.
+
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="service-endpoint-interface"
+                  type="j2ee:fully-qualified-classType">
+       <xsd:annotation>
+         <xsd:documentation>
+           <![CDATA[
+
+             The service-endpoint-interface element contains the
+             fully-qualified name of the port component's Service Endpoint
+             Interface.
+
+             Used in: port-component
+
+             Example:
+                     <remote>com.wombat.empl.EmployeeService</remote>
+
+             ]]>
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="service-impl-bean"
+                  type="j2ee:service-impl-beanType"/>
+
+      <xsd:element name="handler"
+                  type="j2ee:port-component_handlerType"
+                  minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="port-component_handlerType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       Declares the handler for a port-component. Handlers can access the
+       init-param name/value pairs using the HandlerInfo interface.
+
+       Used in: port-component
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:group ref="j2ee:descriptionGroup"/>
+      <xsd:element name="handler-name"
+                  type="j2ee:string">
+       <xsd:annotation>
+         <xsd:documentation>
+
+           Defines the name of the handler. The name must be unique within the
+           module.
+
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="handler-class"
+                  type="j2ee:fully-qualified-classType">
+       <xsd:annotation>
+         <xsd:documentation>
+
+           Defines a fully qualified class name for the handler implementation.
+
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="init-param"
+                  type="j2ee:param-valueType"
+                  minOccurs="0" maxOccurs="unbounded"/>
+
+      <xsd:element name="soap-header"
+                  type="j2ee:xsdQNameType"
+                  minOccurs="0" maxOccurs="unbounded">
+       <xsd:annotation>
+         <xsd:documentation>
+
+           Defines the QName of a SOAP header that will be processed by the
+           handler.
+
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="soap-role"
+                  type="j2ee:string"
+                  minOccurs="0" maxOccurs="unbounded">
+       <xsd:annotation>
+         <xsd:documentation>
+
+           The soap-role element contains a SOAP actor definition that the
+           Handler will play as a role.
+
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="service-impl-beanType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       The service-impl-bean element defines the web service implementation.
+       A service implementation can be an EJB bean class or JAX-RPC web
+       component.  Existing EJB implementations are exposed as a web service
+       using an ejb-link.
+
+       Used in: port-component
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:choice>
+      <xsd:element name="ejb-link"
+                  type="j2ee:ejb-linkType"/>
+      <xsd:element name="servlet-link"
+                  type="j2ee:servlet-linkType"/>
+    </xsd:choice>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="servlet-linkType">
+    <xsd:annotation>
+      <xsd:documentation>
+       <![CDATA[
+
+         The servlet-link element is used in the service-impl-bean element
+         to specify that a Service Implementation Bean is defined as a
+         JAX-RPC Service Endpoint.
+
+         The value of the servlet-link element must be the servlet-name of
+         a JAX-RPC Service Endpoint in the same WAR file.
+
+         Used in: service-impl-bean
+
+         Example:
+                 <servlet-link>StockQuoteService</servlet-link>
+
+         ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="webservice-descriptionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       The webservice-description element defines a WSDL document file
+       and the set of Port components associated with the WSDL ports
+       defined in the WSDL document.  There may be multiple
+       webservice-descriptions defined within a module.
+
+       All WSDL file ports must have a corresponding port-component element
+       defined.
+
+       Used in: webservices
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+                  type="j2ee:descriptionType"
+                  minOccurs="0" maxOccurs="1"/>
+      <xsd:element name="display-name"
+                  type="j2ee:display-nameType"
+                  minOccurs="0" maxOccurs="1"/>
+      <xsd:element name="icon"
+                  type="j2ee:iconType"
+                  minOccurs="0" maxOccurs="1"/>
+      <xsd:element name="webservice-description-name"
+                  type="j2ee:string">
+       <xsd:annotation>
+         <xsd:documentation>
+
+           The webservice-description-name identifies the collection of
+           port-components associated with a WSDL file and JAX-RPC
+           mapping. The name must be unique within the deployment descriptor.
+
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="wsdl-file"
+                  type="j2ee:pathType">
+       <xsd:annotation>
+         <xsd:documentation>
+
+           The wsdl-file element contains the name of a WSDL file in the
+           module.  The file name is a relative path within the module.
+
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="jaxrpc-mapping-file"
+                  type="j2ee:pathType">
+       <xsd:annotation>
+         <xsd:documentation>
+
+           The jaxrpc-mapping-file element contains the name of a file that
+           describes the JAX-RPC mapping between the Java interaces used by
+           the application and the WSDL description in the wsdl-file.  The
+           file name is a relative path within the module.
+
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="port-component"
+                  type="j2ee:port-componentType"
+                  minOccurs="1" maxOccurs="unbounded">
+       <xsd:key name="port-component_handler-name-key">
+         <xsd:annotation>
+           <xsd:documentation>
+
+             Defines the name of the handler. The name must be unique
+             within the module.
+
+           </xsd:documentation>
+         </xsd:annotation>
+         <xsd:selector xpath="j2ee:handler"/>
+         <xsd:field xpath="j2ee:handler-name"/>
+       </xsd:key>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="webservicesType">
+    <xsd:sequence>
+      <xsd:group ref="j2ee:descriptionGroup"/>
+      <xsd:element name="webservice-description"
+                  type="j2ee:webservice-descriptionType"
+                  minOccurs="1" maxOccurs="unbounded">
+       <xsd:key name="port-component-name-key">
+         <xsd:annotation>
+           <xsd:documentation>
+             <![CDATA[
+
+               The port-component-name element specifies a port
+               component's name.  This name is assigned by the module
+               producer to name the service implementation bean in the
+               module's deployment descriptor. The name must be unique
+               among the port component names defined in the same module.
+
+               Used in: port-component
+
+               Example:
+                       <port-component-name>EmployeeService
+                       </port-component-name>
+
+               ]]>
+           </xsd:documentation>
+         </xsd:annotation>
+         <xsd:selector xpath="j2ee:port-component"/>
+         <xsd:field xpath="j2ee:port-component-name"/>
+       </xsd:key>
+      </xsd:element>
+    </xsd:sequence>
+
+    <xsd:attribute name="version"
+                  type="j2ee:dewey-versionType"
+                  fixed="1.1"
+                  use="required">
+      <xsd:annotation>
+       <xsd:documentation>
+
+         The required value for the version is 1.1.
+
+       </xsd:documentation>
+      </xsd:annotation>
+    </xsd:attribute>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+</xsd:schema>
+
diff --git a/java/javax/servlet/resources/j2ee_web_services_client_1_1.xsd b/java/javax/servlet/resources/j2ee_web_services_client_1_1.xsd
new file mode 100644 (file)
index 0000000..59a4bae
--- /dev/null
@@ -0,0 +1,358 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Copyright 2004 The Apache Software Foundation
+
+  Licensed 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 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="1.1">
+  <xsd:annotation>
+    <xsd:documentation>
+      @(#)j2ee_web_services_client_1_1.xsds    1.10 02/11/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>
+
+      (C) Copyright International Business Machines Corporation 2002
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="port-component-refType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       The port-component-ref element declares a client dependency
+       on the container for resolving a Service Endpoint Interface
+       to a WSDL port. It optionally associates the Service Endpoint
+       Interface with a particular port-component. This is only used
+       by the container for a Service.getPort(Class) method call.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="service-endpoint-interface"
+                  type="j2ee:fully-qualified-classType">
+       <xsd:annotation>
+         <xsd:documentation>
+
+           The service-endpoint-interface element defines a fully qualified
+           Java class that represents the Service Endpoint Interface of a
+           WSDL port.
+
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="port-component-link"
+                  type="j2ee:string"
+                  minOccurs="0" maxOccurs="1">
+       <xsd:annotation>
+         <xsd:documentation>
+
+           The port-component-link element links a port-component-ref
+           to a specific port-component required to be made available
+           by a service reference.
+
+           The value of a port-component-link must be the
+           port-component-name of a port-component in the same module
+           or another module in the same application unit. The syntax
+           for specification follows the syntax defined for ejb-link
+           in the EJB 2.0 specification.
+
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:group name="service-refGroup">
+    <xsd:sequence>
+      <xsd:element name="service-ref"
+                  type="j2ee:service-refType"
+                  minOccurs="0" maxOccurs="unbounded">
+       <xsd:key name="service-ref_handler-name-key">
+         <xsd:annotation>
+           <xsd:documentation>
+
+             Defines the name of the handler. The name must be unique
+             within the module.
+
+           </xsd:documentation>
+         </xsd:annotation>
+         <xsd:selector xpath="j2ee:handler"/>
+         <xsd:field xpath="j2ee:handler-name"/>
+       </xsd:key>
+      </xsd:element>
+    </xsd:sequence>
+  </xsd:group>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="service-refType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       The service-ref element declares a reference to a Web
+       service. It contains optional description, display name and
+       icons, a declaration of the required Service interface,
+       an optional WSDL document location, an optional set
+       of JAX-RPC mappings, an optional QName for the service element,
+       an optional set of Service Endpoint Interfaces to be resolved
+       by the container to a WSDL port, and an optional set of handlers.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="j2ee:descriptionGroup"/>
+      <xsd:element name="service-ref-name"
+                  type="j2ee:jndi-nameType">
+       <xsd:annotation>
+         <xsd:documentation>
+
+           The service-ref-name element declares logical name that the
+           components in the module use to look up the Web service. It
+           is recommended that all service reference names start with
+           "service/".
+
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="service-interface"
+                  type="j2ee:fully-qualified-classType">
+       <xsd:annotation>
+         <xsd:documentation>
+
+           The service-interface element declares the fully qualified class
+           name of the JAX-RPC Service interface the client depends on.
+           In most cases the value will be javax.xml.rpc.Service.  A JAX-RPC
+           generated Service Interface class may also be specified.
+
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="wsdl-file"
+                  type="j2ee:xsdAnyURIType"
+                  minOccurs="0" maxOccurs="1">
+       <xsd:annotation>
+         <xsd:documentation>
+
+           The wsdl-file element contains the URI location of a WSDL
+           file. The location is relative to the root of the module.
+
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="jaxrpc-mapping-file"
+                  type="j2ee:pathType"
+                  minOccurs="0" maxOccurs="1">
+       <xsd:annotation>
+         <xsd:documentation>
+
+           The jaxrpc-mapping-file element contains the name of a file that
+           describes the JAX-RPC mapping between the Java interaces used by
+           the application and the WSDL description in the wsdl-file.  The
+           file name is a relative path within the module file.
+
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="service-qname"
+                  type="j2ee:xsdQNameType"
+                  minOccurs="0" maxOccurs="1">
+       <xsd:annotation>
+         <xsd:documentation>
+
+           The service-qname element declares the specific WSDL service
+           element that is being refered to.  It is not specified if no
+           wsdl-file is declared.
+
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="port-component-ref"
+                  type="j2ee:port-component-refType"
+                  minOccurs="0" maxOccurs="unbounded">
+       <xsd:annotation>
+         <xsd:documentation>
+
+           The port-component-ref element declares a client dependency
+           on the container for resolving a Service Endpoint Interface
+           to a WSDL port. It optionally associates the Service Endpoint
+           Interface with a particular port-component. This is only used
+           by the container for a Service.getPort(Class) method call.
+
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="handler"
+                  type="j2ee:service-ref_handlerType"
+                  minOccurs="0" maxOccurs="unbounded">
+       <xsd:annotation>
+         <xsd:documentation>
+
+           Declares the handler for a port-component. Handlers can
+           access the init-param name/value pairs using the
+           HandlerInfo interface. If port-name is not specified, the
+           handler is assumed to be associated with all ports of the
+           service.
+
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="service-ref_handlerType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+       Declares the handler for a port-component. Handlers can access the
+       init-param name/value pairs using the HandlerInfo interface. If
+       port-name is not specified, the handler is assumed to be associated
+       with all ports of the service.
+
+       Used in: service-ref
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:group ref="j2ee:descriptionGroup"/>
+      <xsd:element name="handler-name"
+                  type="j2ee:string">
+       <xsd:annotation>
+         <xsd:documentation>
+
+           Defines the name of the handler. The name must be unique
+           within the module.
+
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="handler-class"
+                  type="j2ee:fully-qualified-classType">
+       <xsd:annotation>
+         <xsd:documentation>
+
+           Defines a fully qualified class name for the handler
+           implementation.
+
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="init-param"
+                  type="j2ee:param-valueType"
+                  minOccurs="0" maxOccurs="unbounded"/>
+
+      <xsd:element name="soap-header"
+                  type="j2ee:xsdQNameType"
+                  minOccurs="0" maxOccurs="unbounded">
+       <xsd:annotation>
+         <xsd:documentation>
+
+           Defines the QName of a SOAP header that will be processed
+           by the handler.
+
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="soap-role"
+                  type="j2ee:string"
+                  minOccurs="0" maxOccurs="unbounded">
+       <xsd:annotation>
+         <xsd:documentation>
+
+           The soap-role element contains a SOAP actor definition that
+           the Handler will play as a role.
+
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="port-name"
+                  type="j2ee:string"
+                  minOccurs="0" maxOccurs="unbounded">
+       <xsd:annotation>
+         <xsd:documentation>
+
+           The port-name element defines the WSDL port-name that a
+           handler should be associated with.
+
+         </xsd:documentation>
+       </xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+</xsd:schema>
+
diff --git a/java/javax/servlet/resources/jsp_2_0.xsd b/java/javax/servlet/resources/jsp_2_0.xsd
new file mode 100644 (file)
index 0000000..799bbaa
--- /dev/null
@@ -0,0 +1,322 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Copyright 2004 The Apache Software Foundation
+
+  Licensed 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 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>
+
diff --git a/java/javax/servlet/resources/jspxml.dtd b/java/javax/servlet/resources/jspxml.dtd
new file mode 100644 (file)
index 0000000..dffe046
--- /dev/null
@@ -0,0 +1,189 @@
+<!--
+  Copyright 2004 The Apache Software Foundation
+
+  Licensed 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.
+-->
+<!-- DTD for JSP 2.0
+     thanks to Bob Foster, WebGain
+-->
+
+<!-- 
+     This DTD is not conditional on any parameter entities in the internal
+     subset and does not export any general entities.
+-->
+
+<!--================== Constrained Names ====================================-->
+
+<!ENTITY % URI "CDATA">
+    <!-- a Uniform Resource Identifier, see [RFC2396] -->
+
+<!ENTITY % UriList "CDATA">
+    <!-- a space separated list of Uniform Resource Identifiers -->
+
+<!ENTITY % URL "CDATA">
+    <!-- a relative urlSpec is as in Section 2.10.2. -->
+
+<!ENTITY % BeanID "IDREF">
+    <!-- a previously declared bean ID in the current scope. -->
+
+<!ENTITY % Prefix "CDATA">
+    <!-- a Name that contains no : characters. -->
+
+<!ENTITY % ClassName "CDATA">
+    <!-- a fully qualified class name. -->
+
+<!ENTITY % TypeName "CDATA">
+    <!-- a fully qualified class or interface name. -->
+
+<!ENTITY % BeanName "CDATA">
+    <!-- a bean name as expected by java.beans.Beans instantiate(). -->
+
+<!ENTITY % Content "CDATA">
+    <!-- a MIME type followed by an IANA charset, as " type [; S? ['charset='] charset] " -->
+
+<!ENTITY % Length "CDATA">
+    <!-- nn for pixels or nn% for percentage length -->
+
+<!ENTITY % Pixels "CDATA">
+    <!-- integer representing length in pixels -->
+
+<!ENTITY % Bool "(true|false|yes|no)">
+    <!-- boolean -->
+
+<!-- used for object, applet, img, input and iframe -->
+<!ENTITY % ImgAlign "(top|middle|bottom|left|right)">
+
+<!--=================== Element Groups ====================================-->
+
+<!ENTITY % Directives "jsp:directive.page|jsp:directive.include">
+
+<!ENTITY % Scripts "jsp:scriptlet|jsp:declaration|jsp:expression">
+
+<!ENTITY % Actions
+    "jsp:useBean
+    |jsp:setProperty
+    |jsp:getProperty
+    |jsp:include
+    |jsp:forward
+    |jsp:plugin"
+>
+
+<!ENTITY % Body "(jsp:text|%Directives;|%Scripts;|%Actions;)*">
+
+
+<!-- ============================ Elements ============================ -->
+
+<!--    Root element of a JSP page.
+-->
+<!ELEMENT jsp:root %Body;>
+<!ATTLIST jsp:root
+    xmlns:jsp       CDATA           "http://java.sun.com/JSP/Page"
+    version         CDATA           #REQUIRED
+>
+
+<!ELEMENT jsp:directive.page EMPTY>
+<!ATTLIST jsp:directive.page
+    language        CDATA           "java"
+    extends         %ClassName;     #IMPLIED
+    contentType     %Content;       "text/html; ISO-8859-1"
+    import          CDATA           #IMPLIED
+    session         %Bool;          "true"
+    buffer          CDATA           "8kb"
+    autoFlush       %Bool;          "true"
+    isThreadSafe    %Bool;          "true"
+    info            CDATA           #IMPLIED
+    errorPage       %URL;           #IMPLIED
+    isErrorPage     %Bool;          "false"
+    pageEncoding    CDATA           #IMPLIED
+    isELIgnored     %Bool;          #IMPLIED
+>
+
+<!-- the jsp:directive.include only appears in JSP documents and does
+     not appear in the XML views of JSP pages.
+-->
+
+<!ELEMENT jsp:directive.include EMPTY>
+<!ATTLIST jsp:directive.include
+    file            %URI;           #REQUIRED
+>
+
+<!ELEMENT jsp:scriptlet (#PCDATA)>
+
+<!ELEMENT jsp:declaration (#PCDATA)>
+
+<!ELEMENT jsp:expression (#PCDATA)>
+
+<!ELEMENT jsp:useBean %Body;>
+<!ATTLIST jsp:useBean
+    id              ID              #REQUIRED
+    class           %ClassName;     #IMPLIED
+    type            %TypeName;      #IMPLIED
+    beanName        %BeanName;      #IMPLIED
+    scope           (page
+                    |session
+                    |request
+                    |application)   "page"
+>
+
+<!ELEMENT jsp:setProperty EMPTY>
+<!ATTLIST jsp:setProperty
+    name            %BeanID;        #REQUIRED
+    property        CDATA           #REQUIRED
+    value           CDATA           #IMPLIED
+    param           CDATA           #IMPLIED
+>
+
+<!ELEMENT jsp:getProperty EMPTY>
+<!ATTLIST jsp:getProperty
+    name            %BeanID;        #REQUIRED
+    property        CDATA           #REQUIRED
+>
+
+<!ELEMENT jsp:include (jsp:param*)>
+<!ATTLIST jsp:include
+    flush           %Bool;          "false"
+    page            %URL;           #REQUIRED
+>
+
+<!ELEMENT jsp:forward (jsp:param*)>
+<!ATTLIST jsp:forward
+    page            %URL;           #REQUIRED
+>
+
+<!ELEMENT jsp:plugin (jsp:params?, jsp:fallback?)>
+<!ATTLIST jsp:plugin
+    type            (bean|applet)   #REQUIRED
+    code            %URI;           #IMPLIED
+    codebase        %URI;           #IMPLIED
+    align           %ImgAlign;      #IMPLIED
+    archive         %UriList;       #IMPLIED
+    height          %Length;        #IMPLIED
+    hspace          %Pixels;        #IMPLIED
+    jreversion      CDATA           "1.2"
+    name            NMTOKEN         #IMPLIED
+    vspace          %Pixels;        #IMPLIED
+    width           %Length;        #IMPLIED
+    nspluginurl     %URI;           #IMPLIED
+    iepluginurl     %URI;           #IMPLIED
+>
+
+<!ELEMENT jsp:params (jsp:param+)>
+
+<!ELEMENT jsp:param EMPTY>
+<!ATTLIST jsp:param
+    name            CDATA           #REQUIRED
+    value           CDATA           #REQUIRED
+>
+
+<!ELEMENT jsp:text #PCDATA>
+
diff --git a/java/javax/servlet/resources/jspxml.xsd b/java/javax/servlet/resources/jspxml.xsd
new file mode 100644 (file)
index 0000000..886ee65
--- /dev/null
@@ -0,0 +1,513 @@
+<?xml version ="1.0"?>
+<!--
+  Copyright 2004 The Apache Software Foundation
+
+  Licensed 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.
+-->
+<!DOCTYPE schema [
+<!-- Patterns -->
+<!ENTITY Identifier   "(\p{L}|_|$)(\p{N}|\p{L}|_|$)*">
+<!ENTITY TypeName     "&Identifier;(\.&Identifier;)*">
+<!ENTITY WS       "\s*">
+<!ENTITY Import     "&TypeName;(\.\*)?">
+<!ENTITY ImportList   "&Import;(&WS;,&WS;&Import;)*">
+<!ENTITY SetProp    "(&Identifier;|\*)">
+<!ENTITY RelativeURL  "[^:#/\?]*(:{0,0}|[#/\?].*)">
+<!ENTITY Length     "[0-9]*&#x25;?">
+<!ENTITY AsciiName    "[A-Za-z0-9_-]*">
+<!ENTITY ValidContentType  "&AsciiName;/&AsciiName;(;&WS;(charset=)?&AsciiName;)?">
+<!ENTITY ValidPageEncoding  "&AsciiName;/&AsciiName;">
+<!ENTITY Buffer     "[0-9]+kb">
+<!ENTITY RTexpr     "&#x25;=.*&#x25;">
+]>
+
+
+<!--Conforms to w3c http://www.w3.org/2001/XMLSchema -->
+
+<xsd:schema
+    xmlns = "http://java.sun.com/JSP/Page"
+    xmlns:xsd = "http://www.w3.org/2001/XMLSchema"
+    xmlns:jsp = "http://java.sun.com/JSP/Page"
+    targetNamespace = "http://java.sun.com/JSP/Page"
+    elementFormDefault = "qualified"
+    attributeFormDefault = "unqualified">
+
+  <xsd:annotation>
+    <xsd:documentation>
+      XML Schema for JSP 2.0.
+
+      This schema is based upon the recent (May 5th, 2001)
+      W3C recommendation for XML Schema.
+
+      A JSP translator should reject an XML-format file that is
+      not strictly valid according to this schema or does not observe
+      the constraints documented here. A translator is not required
+      to use this schema for validation or to use a validating parser.
+    </xsd:documentation>
+  </xsd:annotation>
+
+
+  <!-- Complex Types -->
+
+  <xsd:complexType name = "Body">
+    <xsd:annotation>
+      <xsd:documentation>
+        Body defines the "top-level" elements in root and beanInfo.
+        There are probably other elements that should use it.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:group ref = "Bodygroup" minOccurs = "0" maxOccurs = "unbounded"/>
+  </xsd:complexType>
+
+  <!-- groups -->
+
+  <xsd:group name = "Bodygroup">
+    <xsd:choice>
+      <xsd:element ref = "directive.page"/>
+      <xsd:element ref = "directive.include"/>
+      <xsd:element ref = "scriptlet"/>
+      <xsd:element ref = "declaration"/>
+      <xsd:element ref = "expression"/>
+      <xsd:element ref = "useBean"/>
+      <xsd:element ref = "setProperty"/>
+      <xsd:element ref = "getProperty"/>
+      <xsd:element ref = "include"/>
+      <xsd:element ref = "forward"/>
+      <xsd:element ref = "plugin"/>
+      <xsd:element ref = "text"/>
+      <xsd:any namespace="##other" processContents = "lax"/>
+    </xsd:choice>
+  </xsd:group>
+
+
+  <!-- Simple types are next -->
+
+  <xsd:simpleType name = "RTE">
+    <xsd:annotation>
+      <xsd:documentation>
+        A request-time expression value
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base = "xsd:string">
+      <xsd:pattern value = "&RTexpr;"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name = "Bool">
+    <xsd:annotation>
+      <xsd:documentation>
+        Bool would be boolean except it does not accept 1 and 0.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base = "xsd:NMTOKEN" >
+      <xsd:enumeration value = "true"/>
+      <xsd:enumeration value = "false"/>
+      <xsd:enumeration value = "yes"/>
+      <xsd:enumeration value = "no"/>
+    </xsd:restriction>     
+  </xsd:simpleType>
+
+  <xsd:simpleType name = "Identifier">
+    <xsd:annotation>
+      <xsd:documentation>
+        Identifier is an unqualified Java identifier.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base = "xsd:string">
+      <xsd:pattern value = "&Identifier;"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+  
+  <xsd:simpleType name = "TypeName">
+    <xsd:annotation>
+      <xsd:documentation>
+        TypeName is one or more Java identifiers separated by dots
+        with no whitespace.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base = "xsd:string">
+      <xsd:pattern value = "&TypeName;"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+  
+  <xsd:simpleType name = "ImportList">
+    <xsd:annotation>
+      <xsd:documentation>
+        ImportList is one or more typeNames separated by commas.
+        Whitespace is allowed before and after the comma.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base = "xsd:string">
+      <xsd:pattern value = "&ImportList;"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+  
+  <xsd:simpleType name = "SetProp">
+    <xsd:annotation>
+      <xsd:documentation>
+        SetProp is an Identifier or *.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base = "xsd:string">
+      <xsd:pattern value = "&SetProp;"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+  
+  <xsd:simpleType name = "RelativeURL">
+    <xsd:annotation>
+      <xsd:documentation>
+        RelativeURL is a uriReference with no colon character
+        before the first /, ? or #, if any (RFC2396).
+      </xsd:documentation>
+    </xsd:annotation>
+       <xsd:restriction base = "xsd:anyURI">
+      <xsd:pattern value = "&RelativeURL;"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name = "RTERelativeURL">
+    <xsd:union memberTypes = "RelativeURL RTE"/>
+  </xsd:simpleType>
+
+  <xsd:simpleType name = "Length">
+    <xsd:annotation>
+      <xsd:documentation>
+        Length is nn or nn%.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base = "xsd:string">
+      <xsd:pattern value = "&Length;"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+  
+
+  <xsd:simpleType name = "ExplicitBufferSize">
+    <xsd:annotation>
+      <xsd:documentation>
+         Buffer Size with an explicit value
+      </xsd:documentation>
+    </xsd:annotation> 
+    <xsd:restriction base = "xsd:string">
+      <xsd:pattern value = "&Buffer;"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name = "NoneBufferSize">
+    <xsd:annotation>
+      <xsd:documentation>
+         Buffer Size with a "none" value
+      </xsd:documentation>
+    </xsd:annotation> 
+       <xsd:restriction base = "xsd:string">
+         <xsd:enumeration value = "none"/>
+       </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name = "BufferSize">
+    <xsd:annotation>
+      <xsd:documentation>
+        Buffer size is xkb or none.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:union memberTypes = "ExplicitBufferSize NoneBufferSize"/>
+  </xsd:simpleType>
+  
+  <xsd:simpleType name = "ContentType">
+    <xsd:annotation>
+      <xsd:documentation>
+        Content type and character encoding for this page.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base = "xsd:string">
+      <xsd:pattern value = "&ValidContentType;"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name = "PageEncoding">
+    <xsd:annotation>
+      <xsd:documentation>
+        Page Encoding for this page.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base = "xsd:string">
+      <xsd:pattern value = "&ValidPageEncoding;"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name = "Scope">
+    <xsd:annotation>
+      <xsd:documentation>
+        valid scope values
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base = "xsd:NMTOKEN">
+      <xsd:enumeration value = "page"/>
+      <xsd:enumeration value = "session"/>
+      <xsd:enumeration value = "request"/>
+      <xsd:enumeration value = "application"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name = "PlugInType">
+    <xsd:annotation>
+      <xsd:documentation>
+        valid values for a plugin type
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base = "xsd:NMTOKEN">
+      <xsd:enumeration value = "bean"/>
+      <xsd:enumeration value = "applet"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name = "AlignType">
+    <xsd:annotation>
+      <xsd:documentation>
+        Buffer size is xkb.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base = "xsd:NMTOKEN">
+      <xsd:enumeration value = "top"/>
+      <xsd:enumeration value = "middle"/>
+      <xsd:enumeration value = "bottom"/>
+      <xsd:enumeration value = "left"/>
+      <xsd:enumeration value = "right"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <!-- Elements follow -->
+
+  <xsd:element name = "root">
+    <xsd:annotation>
+      <xsd:documentation>
+        The root element of all JSP documents is named root.
+        
+        Authors may, if they wish, include schema location information.
+        If specified, the information may appear as attributes of
+        the root element as follows:
+
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="http://java.sun.com/JSP/Page xsd-file-location"
+
+        Documents should not specify the system identifier of a DTD
+        in a DOCTYPE declaration.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:complexType>
+      <xsd:complexContent>
+        <xsd:extension base = "Body">
+          <xsd:attribute name = "version" fixed = "2.0" type = "xsd:string"/>
+        </xsd:extension>
+      </xsd:complexContent>
+    </xsd:complexType>
+  </xsd:element>
+  
+  <xsd:element name = "directive.page">
+    <xsd:annotation>
+      <xsd:documentation>
+        directive.page is the "page directive".
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:complexType>
+      <xsd:attribute name = "language" default = "java" type = "xsd:string"/>
+      <xsd:attribute name = "extends" type = "TypeName"/>
+      <xsd:attribute name = "contentType" default = "text/html; ISO-8859-1" type = "ContentType"/>
+      <xsd:attribute name = "pageEncoding" use = "optional" type = "PageEncoding"/>
+      <xsd:attribute name = "import" type = "ImportList"/>
+      <xsd:attribute name = "session" default = "true" type = "Bool"/>
+      <xsd:attribute name = "buffer" default = "8kb" type = "BufferSize"/>
+      <xsd:attribute name = "autoFlush" default = "true" type = "Bool"/>
+      <xsd:attribute name = "isThreadSafe" default = "true" type = "Bool"/>
+      <xsd:attribute name = "info" type = "xsd:string"/>
+      <xsd:attribute name = "errorPage" type = "RelativeURL"/>
+      <xsd:attribute name = "isErrorPage" default = "false" type = "Bool"/>
+      <xsd:attribute name = "isELIgnored" type = "Bool"/>
+    </xsd:complexType>
+  </xsd:element>
+  
+  <xsd:element name = "directive.include">
+    <xsd:annotation>
+      <xsd:documentation>
+        directive.include is the "include directive".
+       This element does not appear on XML views of JSP pages.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:complexType>
+      <xsd:attribute name = "file" use = "required" type = "RelativeURL"/>
+    </xsd:complexType>
+  </xsd:element>
+
+  <xsd:element name = "scriptlet" type = "xsd:string">
+    <xsd:annotation>
+      <xsd:documentation>
+        The representation of a scriplet.
+      </xsd:documentation>
+    </xsd:annotation>
+  </xsd:element>
+  
+  <xsd:element name = "declaration" type = "xsd:string">
+    <xsd:annotation>
+      <xsd:documentation>
+        The reprsentation of a declaration.
+      </xsd:documentation>
+    </xsd:annotation>
+  </xsd:element>
+  
+  <xsd:element name = "expression" type = "xsd:string">
+    <xsd:annotation>
+      <xsd:documentation>
+        The representation of an expression.
+      </xsd:documentation>
+    </xsd:annotation>
+  </xsd:element>
+  <xsd:element name = "text" type = "xsd:string">
+    <xsd:annotation>
+      <xsd:documentation>
+        Verbatim template text.
+      </xsd:documentation>
+    </xsd:annotation>
+  </xsd:element>
+
+  <xsd:element name = "useBean">
+    <xsd:annotation>
+      <xsd:documentation>
+        useBean instantiates or accesses a bean in the specified scope.
+        
+        Constraint: The allowed combinations of attributes are:
+        
+          class [type] | type [( class | beanName)]
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:complexType>
+      <xsd:complexContent>
+        <xsd:extension base="Body">
+          <xsd:attribute name = "id" use = "required" type = "Identifier"/>
+          <xsd:attribute name = "class" type = "TypeName"/>
+          <xsd:attribute name = "type" type = "TypeName"/>
+          <xsd:attribute name = "beanName" type = "TypeName"/>
+          <xsd:attribute name = "scope" default = "page" type = "Scope"/>
+        </xsd:extension>
+      </xsd:complexContent>
+    </xsd:complexType>
+  </xsd:element>
+  
+  <xsd:element name = "setProperty">
+    <xsd:annotation>
+      <xsd:documentation>
+        setProperty changes the value of an object property.
+        
+        Constraint: The object named by the name must have been
+        "introduced" to the JSP processor using either the
+        jsp:useBean action or a custom action with an associated
+        VariableInfo entry for this name.
+
+        Exact valid combinations are not expressable in XML Schema.
+        They are:
+
+        name="Identifier" property="*"
+        name="Identifier" property="Identfiier" param="string"
+        name="Identifier" property="Identifier" value="string"
+                
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:complexType>
+      <xsd:attribute name = "name" use = "required" type = "Identifier"/>
+      <xsd:attribute name = "property" use = "required" type = "SetProp"/>
+      <xsd:attribute name = "param" type = "xsd:string"/>
+      <xsd:attribute name = "value" type = "xsd:string"/>
+    </xsd:complexType>
+  </xsd:element>
+
+  <xsd:element name = "getProperty">
+    <xsd:annotation>
+      <xsd:documentation>
+        getProperty obtains the value of an object property.
+        
+        Constraint: The object named by the name must have been
+        "introduced" to the JSP processor using either the
+        jsp:useBean action or a custom action with an associated
+        VariableInfo entry for this name.
+        
+        ???The spec is interpreted as restricting the values of
+        property to Identifier.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:complexType>
+      <xsd:attribute name = "name" use = "required" type = "Identifier"/>
+      <xsd:attribute name = "property" use = "required" type = "Identifier"/>
+    </xsd:complexType>
+  </xsd:element>
+  
+  <xsd:element name = "include">
+    <xsd:complexType>
+      <xsd:sequence>
+        <xsd:element ref = "param" minOccurs = "0" maxOccurs = "unbounded"/>
+      </xsd:sequence>
+      <xsd:attribute name = "flush" default = "false" type = "Bool"/>
+      <xsd:attribute name = "page" use = "required" type = "RTERelativeURL"/>
+    </xsd:complexType>
+  </xsd:element>
+
+  <xsd:element name = "forward">
+    <xsd:complexType>
+      <xsd:sequence>
+        <xsd:element ref = "param" minOccurs = "0" maxOccurs = "unbounded"/>
+      </xsd:sequence>
+      <xsd:attribute name = "page" use = "required" type = "RTERelativeURL"/>
+     </xsd:complexType>
+  </xsd:element>
+  
+  <xsd:element name = "plugin">
+    <xsd:complexType> <!-- content only! -->
+      <xsd:sequence>
+        <xsd:element ref = "params" minOccurs = "0" maxOccurs = "1"/>
+        <xsd:element name = "fallback" minOccurs = "0" maxOccurs = "1" type = "Body"/>
+      </xsd:sequence>
+      <xsd:attribute name = "type" use = "required" type = "PlugInType"/>
+      <xsd:attribute name = "code" type = "xsd:anyURI"/>
+      <xsd:attribute name = "codebase" type = "xsd:anyURI"/>
+      <xsd:attribute name = "align" type = "AlignType"/>
+      <xsd:attribute name = "archive">
+        <xsd:simpleType>
+           <xsd:list itemType="xsd:anyURI"/>
+        </xsd:simpleType>
+      </xsd:attribute>
+      <xsd:attribute name = "height" type = "Length"/>
+      <xsd:attribute name = "hspace" type = "xsd:int"/>
+      <xsd:attribute name = "jreversion" default = "1.2" type = "xsd:string"/>
+      <xsd:attribute name = "name" type = "xsd:NMTOKEN"/>
+      <xsd:attribute name = "vspace" type = "xsd:int"/>
+      <xsd:attribute name = "width" type = "Length"/>
+      <xsd:attribute name = "nspluginurl" type = "xsd:anyURI"/>
+      <xsd:attribute name = "iepluginurl" type = "xsd:anyURI"/>
+    </xsd:complexType>
+  </xsd:element>
+  
+  <xsd:element name = "params">
+    <xsd:complexType>
+       <xsd:sequence>
+         <xsd:element ref = "param" minOccurs = "1" maxOccurs = "unbounded"/>
+       </xsd:sequence>
+    </xsd:complexType>
+  </xsd:element>
+
+  <xsd:element name = "param">
+    <xsd:complexType>
+      <xsd:attribute name = "name" use = "required" type = "xsd:NMTOKEN"/>
+      <xsd:attribute name = "value" use = "required" type = "xsd:string"/>
+    </xsd:complexType>
+  </xsd:element>
+  
+</xsd:schema>
diff --git a/java/javax/servlet/resources/web-app_2_2.dtd b/java/javax/servlet/resources/web-app_2_2.dtd
new file mode 100644 (file)
index 0000000..07eb17e
--- /dev/null
@@ -0,0 +1,580 @@
+<!--
+  Copyright 2004 The Apache Software Foundation
+
+  Licensed 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.
+-->
+
+<!--
+The web-app element is the root of the deployment descriptor for
+a web application
+-->
+
+<!ELEMENT web-app (icon?, display-name?, description?, distributable?,
+context-param*, servlet*, servlet-mapping*, session-config?,
+mime-mapping*, welcome-file-list?, error-page*, taglib*,
+resource-ref*, security-constraint*, login-config?, security-role*,
+env-entry*, ejb-ref*)>
+
+<!--
+The icon element contains a small-icon and a large-icon element
+which specify the location within the web application for a small and
+large image used to represent the web application in a GUI tool. At a
+minimum, tools must accept GIF and JPEG format images.
+-->
+
+<!ELEMENT icon (small-icon?, large-icon?)>
+
+<!--
+The small-icon element contains the location within the web
+application of a file containing a small (16x16 pixel) icon image.
+-->
+
+<!ELEMENT small-icon (#PCDATA)>
+
+<!--
+The large-icon element contains the location within the web
+application of a file containing a large (32x32 pixel) icon image.
+-->
+
+<!ELEMENT large-icon (#PCDATA)>
+
+<!--
+The display-name element contains a short name that is intended
+to be displayed by GUI tools
+-->
+
+<!ELEMENT display-name (#PCDATA)>
+
+<!--
+The description element is used to provide descriptive text about
+the parent element.
+-->
+
+<!ELEMENT description (#PCDATA)>
+
+<!--
+The distributable element, by its presence in a web application
+deployment descriptor, indicates that this web application is
+programmed appropriately to be deployed into a distributed servlet
+container
+-->
+
+<!ELEMENT distributable EMPTY>
+
+<!--
+The context-param element contains the declaration of a web
+application's servlet context initialization parameters.
+-->
+
+<!ELEMENT context-param (param-name, param-value, description?)>
+
+<!--
+The param-name element contains the name of a parameter.
+-->
+
+<!ELEMENT param-name (#PCDATA)>
+
+<!--
+The param-value element contains the value of a parameter.
+-->
+
+<!ELEMENT param-value (#PCDATA)>
+
+<!--
+The servlet element 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.
+-->
+
+<!ELEMENT servlet (icon?, servlet-name, display-name?, description?,
+(servlet-class|jsp-file), init-param*, load-on-startup?, security-role-ref*)>
+
+<!--
+The servlet-name element contains the canonical name of the
+servlet.
+-->
+
+<!ELEMENT servlet-name (#PCDATA)>
+
+<!--
+The servlet-class element contains the fully qualified class name
+of the servlet.
+-->
+
+<!ELEMENT servlet-class (#PCDATA)>
+
+<!--
+The jsp-file element contains the full path to a JSP file within
+the web application.
+-->
+
+<!ELEMENT jsp-file (#PCDATA)>
+
+<!--
+The init-param element contains a name/value pair as an
+initialization param of the servlet
+-->
+
+<!ELEMENT init-param (param-name, param-value, description?)>
+
+<!--
+The load-on-startup element indicates that this servlet should be
+loaded on the startup of the web application. The optional contents of
+these element must be a positive integer indicating the order in which
+the servlet should be loaded. Lower integers are loaded before higher
+integers. If no value is specified, or if the value specified is not a
+positive integer, the container is free to load it at any time in the
+startup sequence.
+-->
+
+<!ELEMENT load-on-startup (#PCDATA)>
+
+<!--
+The servlet-mapping element defines a mapping between a servlet
+and a url pattern
+-->
+
+<!ELEMENT servlet-mapping (servlet-name, url-pattern)>
+
+<!--
+The url-pattern element contains the url pattern of the
+mapping. Must follow the rules specified in Section 10 of the Servlet
+API Specification.
+-->
+
+<!ELEMENT url-pattern (#PCDATA)>
+
+<!--
+The session-config element defines the session parameters for
+this web application.
+-->
+
+<!ELEMENT session-config (session-timeout?)>
+
+<!--
+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.
+-->
+
+<!ELEMENT session-timeout (#PCDATA)>
+
+<!--
+The mime-mapping element defines a mapping between an extension
+and a mime type.
+-->
+
+<!ELEMENT mime-mapping (extension, mime-type)>
+
+<!--
+The extension element contains a string describing an
+extension. example: "txt"
+-->
+
+<!ELEMENT extension (#PCDATA)>
+
+<!--
+The mime-type element contains a defined mime type. example:
+"text/plain"
+-->
+
+<!ELEMENT mime-type (#PCDATA)>
+
+<!--
+The welcome-file-list contains an ordered list of welcome files
+elements.
+-->
+
+<!ELEMENT welcome-file-list (welcome-file+)>
+
+<!--
+The welcome-file element contains file name to use as a default
+welcome file, such as index.html
+-->
+
+<!ELEMENT welcome-file (#PCDATA)>
+
+<!--
+The taglib element is used to describe a JSP tag library.
+-->
+
+<!ELEMENT taglib (taglib-uri, taglib-location)>
+
+<!--
+The taglib-uri element describes a URI, relative to the location
+of the web.xml document, identifying a Tag Library used in the Web
+Application.
+-->
+
+<!ELEMENT taglib-uri (#PCDATA)>
+
+<!--
+the taglib-location element contains the location (as a resource
+relative to the root of the web application) where to find the Tag
+Libary Description file for the tag library.
+-->
+
+<!ELEMENT taglib-location (#PCDATA)>
+
+<!--
+The error-page element contains a mapping between an error code
+or exception type to the path of a resource in the web application
+-->
+
+<!ELEMENT error-page ((error-code | exception-type), location)>
+
+<!--
+The error-code contains an HTTP error code, ex: 404
+-->
+
+<!ELEMENT error-code (#PCDATA)>
+
+<!--
+The exception type contains a fully qualified class name of a
+Java exception type.
+-->
+
+<!ELEMENT exception-type (#PCDATA)>
+
+<!--
+The location element contains the location of the resource in the
+web application
+-->
+
+<!ELEMENT location (#PCDATA)>
+
+<!--
+The resource-ref element contains a declaration of a Web
+Application's reference to an external resource.
+-->
+
+<!ELEMENT resource-ref (description?, res-ref-name, res-type, res-auth)>
+
+<!--
+The res-ref-name element specifies the name of the resource
+factory reference name.
+-->
+
+<!ELEMENT res-ref-name (#PCDATA)>
+
+<!--
+The res-type element specifies the (Java class) type of the data
+source.
+-->
+
+<!ELEMENT res-type (#PCDATA)>
+
+<!--
+The res-auth element indicates whether the application component
+code performs resource signon programmatically or whether the
+container signs onto the resource based on the principle mapping
+information supplied by the deployer. Must be CONTAINER or SERVLET
+-->
+
+<!ELEMENT res-auth (#PCDATA)>
+
+<!--
+The security-constraint element is used to associate security
+constraints with one or more web resource collections
+-->
+
+<!ELEMENT security-constraint (web-resource-collection+,
+auth-constraint?, user-data-constraint?)>
+
+<!--
+The web-resource-collection element 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.
+-->
+
+<!ELEMENT web-resource-collection (web-resource-name, description?,
+url-pattern*, http-method*)>
+
+<!--
+The web-resource-name contains the name of this web resource
+collection
+-->
+
+<!ELEMENT web-resource-name (#PCDATA)>
+
+<!--
+The http-method contains an HTTP method (GET | POST |...)
+-->
+
+<!ELEMENT http-method (#PCDATA)>
+
+<!--
+The user-data-constraint element is used to indicate how data
+communicated between the client and container should be protected
+-->
+
+<!ELEMENT user-data-constraint (description?, transport-guarantee)>
+
+<!--
+The transport-guarantee element 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.
+-->
+
+<!ELEMENT transport-guarantee (#PCDATA)>
+
+<!--
+The auth-constraint element indicates the user roles that should
+be permitted access to this resource collection. The role used here
+must appear in a security-role-ref element.
+-->
+
+<!ELEMENT auth-constraint (description?, role-name*)>
+
+<!--
+The role-name element contains the name of a security role.
+-->
+
+<!ELEMENT role-name (#PCDATA)>
+
+<!--
+The login-config element 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.
+-->
+
+<!ELEMENT login-config (auth-method?, realm-name?, form-login-config?)>
+
+<!--
+The realm name element specifies the realm name to use in HTTP
+Basic authorization
+-->
+
+<!ELEMENT realm-name (#PCDATA)>
+
+<!--
+The form-login-config element 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.
+-->
+
+<!ELEMENT form-login-config (form-login-page, form-error-page)>
+
+<!--
+The form-login-page element defines the location in the web app
+where the page that can be used for login can be found
+-->
+
+<!ELEMENT form-login-page (#PCDATA)>
+
+<!--
+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
+-->
+
+<!ELEMENT form-error-page (#PCDATA)>
+
+<!--
+The auth-method element 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 for this element are "BASIC", "DIGEST",
+"FORM", or "CLIENT-CERT".
+-->
+
+<!ELEMENT auth-method (#PCDATA)>
+
+<!--
+The security-role element contains the declaration of a security
+role which is used in the security-constraints placed on the web
+application.
+-->
+
+<!ELEMENT security-role (description?, role-name)>
+
+<!--
+The role-name element contains the name of a role. This element
+must contain a non-empty string.
+-->
+
+<!ELEMENT security-role-ref (description?, role-name, role-link)>
+
+<!--
+The role-link element is used to link a security role reference
+to a defined security role. The role-link element must contain the
+name of one of the security roles defined in the security-role
+elements.
+-->
+
+<!ELEMENT role-link (#PCDATA)>
+
+<!--
+The env-entry element contains the declaration of an
+application's environment entry. This element is required to be
+honored on in J2EE compliant servlet containers.
+-->
+
+<!ELEMENT env-entry (description?, env-entry-name, env-entry-value?,
+env-entry-type)>
+
+<!--
+The env-entry-name contains the name of an application's
+environment entry
+-->
+
+<!ELEMENT env-entry-name (#PCDATA)>
+
+<!--
+The env-entry-value element contains the value of an
+application's environment entry
+-->
+
+<!ELEMENT env-entry-value (#PCDATA)>
+
+<!--
+The env-entry-type element contains the fully qualified Java type
+of the environment entry value that is expected by the application
+code. The following are the legal values of env-entry-type:
+java.lang.Boolean, java.lang.String, java.lang.Integer,
+java.lang.Double, java.lang.Float.
+-->
+
+<!ELEMENT env-entry-type (#PCDATA)>
+
+<!--
+The ejb-ref element is used to declare a reference to an
+enterprise bean. 
+-->
+
+<!ELEMENT ejb-ref (description?, ejb-ref-name, ejb-ref-type, home, remote,
+ejb-link?)>
+
+<!--
+The ejb-ref-name element contains the name of an EJB
+reference. This is the JNDI name that the servlet code uses to get a
+reference to the enterprise bean.
+-->
+
+<!ELEMENT ejb-ref-name (#PCDATA)>
+
+<!--
+The ejb-ref-type element contains the expected java class type of
+the referenced EJB.
+-->
+
+<!ELEMENT ejb-ref-type (#PCDATA)>
+
+<!--
+The ejb-home element contains the fully qualified name of the
+EJB's home interface
+-->
+
+<!ELEMENT home (#PCDATA)>
+
+<!--
+The ejb-remote element contains the fully qualified name of the
+EJB's remote interface
+-->
+
+<!ELEMENT remote (#PCDATA)>
+
+<!--
+The ejb-link element is used in the ejb-ref element to specify
+that an EJB reference is linked to an EJB in an encompassing Java2
+Enterprise Edition (J2EE) application package. The value of the
+ejb-link element must be the ejb-name of and EJB in the J2EE
+application package.
+-->
+
+<!ELEMENT ejb-link (#PCDATA)>
+
+<!--
+The ID mechanism is to allow tools to easily make tool-specific
+references to the elements of the deployment descriptor. This allows
+tools that produce additional deployment information (i.e information
+beyond the standard deployment descriptor information) to store the
+non-standard information in a separate file, and easily refer from
+these tools-specific files to the information in the standard web-app
+deployment descriptor.
+-->
+
+<!ATTLIST web-app id ID #IMPLIED>
+<!ATTLIST icon id ID #IMPLIED>
+<!ATTLIST small-icon id ID #IMPLIED>
+<!ATTLIST large-icon id ID #IMPLIED>
+<!ATTLIST display-name id ID #IMPLIED>
+<!ATTLIST description id ID #IMPLIED>
+<!ATTLIST distributable id ID #IMPLIED>
+<!ATTLIST context-param id ID #IMPLIED>
+<!ATTLIST param-name id ID #IMPLIED>
+<!ATTLIST param-value id ID #IMPLIED>
+<!ATTLIST servlet id ID #IMPLIED>
+<!ATTLIST servlet-name id ID #IMPLIED>
+<!ATTLIST servlet-class id ID #IMPLIED>
+<!ATTLIST jsp-file id ID #IMPLIED>
+<!ATTLIST init-param id ID #IMPLIED>
+<!ATTLIST load-on-startup id ID #IMPLIED>
+<!ATTLIST servlet-mapping id ID #IMPLIED>
+<!ATTLIST url-pattern id ID #IMPLIED>
+<!ATTLIST session-config id ID #IMPLIED>
+<!ATTLIST session-timeout id ID #IMPLIED>
+<!ATTLIST mime-mapping id ID #IMPLIED>
+<!ATTLIST extension id ID #IMPLIED>
+<!ATTLIST mime-type id ID #IMPLIED>
+<!ATTLIST welcome-file-list id ID #IMPLIED>
+<!ATTLIST welcome-file id ID #IMPLIED>
+<!ATTLIST taglib id ID #IMPLIED>
+<!ATTLIST taglib-uri id ID #IMPLIED>
+<!ATTLIST taglib-location id ID #IMPLIED>
+<!ATTLIST error-page id ID #IMPLIED>
+<!ATTLIST error-code id ID #IMPLIED>
+<!ATTLIST exception-type id ID #IMPLIED>
+<!ATTLIST location id ID #IMPLIED>
+<!ATTLIST resource-ref id ID #IMPLIED>
+<!ATTLIST res-ref-name id ID #IMPLIED>
+<!ATTLIST res-type id ID #IMPLIED>
+<!ATTLIST res-auth id ID #IMPLIED>
+<!ATTLIST security-constraint id ID #IMPLIED>
+<!ATTLIST web-resource-collection id ID #IMPLIED>
+<!ATTLIST web-resource-name id ID #IMPLIED>
+<!ATTLIST http-method id ID #IMPLIED>
+<!ATTLIST user-data-constraint id ID #IMPLIED>
+<!ATTLIST transport-guarantee id ID #IMPLIED>
+<!ATTLIST auth-constraint id ID #IMPLIED>
+<!ATTLIST role-name id ID #IMPLIED>
+<!ATTLIST login-config id ID #IMPLIED>
+<!ATTLIST realm-name id ID #IMPLIED>
+<!ATTLIST form-login-config id ID #IMPLIED>
+<!ATTLIST form-login-page id ID #IMPLIED>
+<!ATTLIST form-error-page id ID #IMPLIED>
+<!ATTLIST auth-method id ID #IMPLIED>
+<!ATTLIST security-role id ID #IMPLIED>
+<!ATTLIST security-role-ref id ID #IMPLIED>
+<!ATTLIST role-link id ID #IMPLIED>
+<!ATTLIST env-entry id ID #IMPLIED>
+<!ATTLIST env-entry-name id ID #IMPLIED>
+<!ATTLIST env-entry-value id ID #IMPLIED>
+<!ATTLIST env-entry-type id ID #IMPLIED>
+<!ATTLIST ejb-ref id ID #IMPLIED>
+<!ATTLIST ejb-ref-name id ID #IMPLIED>
+<!ATTLIST ejb-ref-type id ID #IMPLIED>
+<!ATTLIST home id ID #IMPLIED>
+<!ATTLIST remote id ID #IMPLIED>
+<!ATTLIST ejb-link id ID #IMPLIED>
diff --git a/java/javax/servlet/resources/web-app_2_3.dtd b/java/javax/servlet/resources/web-app_2_3.dtd
new file mode 100644 (file)
index 0000000..67bed88
--- /dev/null
@@ -0,0 +1,1074 @@
+<!--
+  Copyright 2004 The Apache Software Foundation
+
+  Licensed 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.
+-->
+<!--
+Copyright 2000-2001 Sun Microsystems, Inc. 901 San Antonio Road,
+Palo Alto, CA  94303, U.S.A.  All rights reserved.
+
+This product or document is protected by copyright and distributed
+under licenses restricting its use, copying, distribution, and
+decompilation.  No part of this product or documentation 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, JavaServer Pages, Java
+Naming and Directory Interface, JDBC, JDK, JavaMail and Enterprise JavaBeans,
+are trademarks or registered trademarks of Sun Microsystems, Inc in the U.S.
+and other countries.
+
+All SPARC trademarks are used under license and are trademarks
+or registered trademarks of SPARC International, Inc.
+in the U.S. and other countries. Products bearing SPARC
+trademarks are based upon an architecture developed by Sun Microsystems, Inc.
+
+PostScript is a registered trademark of Adobe Systems, Inc.
+
+Federal Acquisitions: Commercial Software - Government Users Subject to
+Standard License Terms and Conditions.
+
+DOCUMENTATION IS PROVIDED "AS IS" AND ALL EXPRESS OR IMPLIED
+CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
+IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+PURPOSE OR NON-INFRINGEMENT, ARE DISCLAIMED, EXCEPT
+TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD TO BE LEGALLY
+INVALID.
+
+_________________________________________________________________________
+
+Copyright 2000-2001 Sun Microsystems, Inc.,
+901 San Antonio Road, Palo Alto, CA  94303, Etats-Unis.
+Tous droits re'serve's.
+
+
+Ce produit ou document est prote'ge' par un copyright et distribue' avec
+des licences qui en restreignent l'utilisation, la copie, la distribution,
+et la de'compilation.  Aucune partie de ce produit ou de sa documentation
+associe'e ne peut e^tre reproduite sous aucune forme, par quelque moyen
+que ce soit, sans l'autorisation pre'alable et e'crite de Sun et de ses
+bailleurs de licence, s'il y en a.
+
+Le logiciel de'tenu par des tiers, et qui comprend la technologie
+relative aux polices de caracte`res, est prote'ge' par un copyright
+et licencie' par des fournisseurs de Sun.
+
+Sun, Sun Microsystems, le logo Sun, Solaris, Java, JavaServer Pages, Java
+Naming and Directory Interface, JDBC, JDK, JavaMail, et Enterprise JavaBeans,
+sont des marques de fabrique ou des marques de'pose'es de Sun
+Microsystems, Inc. aux Etats-Unis et dans d'autres pays.
+
+Toutes les marques SPARC sont utilise'es sous licence et sont
+des marques de fabrique ou des marques de'pose'es de SPARC
+International, Inc. aux Etats-Unis et  dans
+d'autres pays. Les produits portant les marques SPARC sont
+base's sur une architecture de'veloppe'e par Sun Microsystems, Inc.
+
+Postcript est une marque enregistre'e d'Adobe Systems Inc.
+
+LA DOCUMENTATION EST FOURNIE "EN L'ETAT" ET TOUTES AUTRES CONDITIONS,
+DECLARATIONS ET GARANTIES EXPRESSES OU TACITES SONT FORMELLEMENT EXCLUES,
+DANS LA MESURE AUTORISEE PAR LA LOI APPLICABLE, Y COMPRIS NOTAMMENT
+TOUTE GARANTIE IMPLICITE RELATIVE A LA QUALITE MARCHANDE, A L'APTITUDE
+A UNE UTILISATION PARTICULIERE OU A L'ABSENCE DE CONTREFACON.
+-->
+
+<!--
+This is the XML DTD for the Servlet 2.3 deployment descriptor.
+All Servlet 2.3 deployment descriptors must include a DOCTYPE
+of the following form:
+
+  <!DOCTYPE web-app PUBLIC
+       "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+       "http://java.sun.com/dtd/web-app_2_3.dtd">
+
+-->
+
+<!--
+The following conventions apply to all J2EE deployment descriptor
+elements unless indicated otherwise.
+
+- In elements that contain PCDATA, leading and trailing whitespace
+  in the data may be ignored.
+
+- In elements whose value is an "enumerated type", the value is
+  case sensitive.
+
+- 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.
+-->
+
+
+<!--
+The web-app element is the root of the deployment descriptor for
+a web application.
+-->
+<!ELEMENT web-app (icon?, display-name?, description?, distributable?,
+context-param*, filter*, filter-mapping*, listener*, servlet*,
+servlet-mapping*, session-config?, mime-mapping*, welcome-file-list?,
+error-page*, taglib*, resource-env-ref*, resource-ref*, security-constraint*,
+login-config?, security-role*, env-entry*, ejb-ref*,  ejb-local-ref*)>
+
+<!--
+The auth-constraint element 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.
+
+
+Used in: security-constraint
+-->
+<!ELEMENT auth-constraint (description?, role-name*)>
+
+<!--
+The auth-method element 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 for this element are "BASIC", "DIGEST",
+"FORM", or "CLIENT-CERT".
+
+Used in: login-config
+-->
+<!ELEMENT auth-method (#PCDATA)>
+
+<!--
+The context-param element contains the declaration of a web
+application's servlet context initialization parameters.
+
+Used in: web-app
+-->
+<!ELEMENT context-param (param-name, param-value, description?)>
+
+<!--
+The description element is used to provide text describing the parent
+element.  The description element should include any information that
+the web application war file producer wants to provide to the consumer of
+the web application war file (i.e., to the Deployer). Typically, the tools
+used by the web application war file consumer will display the description
+when processing the parent element that contains the description.
+
+Used in: auth-constraint, context-param, ejb-local-ref, ejb-ref,
+env-entry, filter, init-param, resource-env-ref, resource-ref, run-as,
+security-role, security-role-ref, servlet, user-data-constraint,
+web-app, web-resource-collection
+-->
+<!ELEMENT description (#PCDATA)>
+
+<!--
+The display-name element contains a short name that is intended to be
+displayed by tools.  The display name need not be unique.
+
+Used in: filter, security-constraint, servlet, web-app
+
+Example:
+
+<display-name>Employee Self Service</display-name>
+-->
+<!ELEMENT display-name (#PCDATA)>
+
+<!--
+The distributable element, by its presence in a web application
+deployment descriptor, indicates that this web application is
+programmed appropriately to be deployed into a distributed servlet
+container
+
+Used in: web-app
+-->
+<!ELEMENT distributable EMPTY>
+
+<!--
+The ejb-link element is used in the ejb-ref or ejb-local-ref
+elements to specify that an EJB reference is linked to an
+enterprise bean.
+
+The name in the ejb-link element is composed of a
+path name specifying the ejb-jar containing the referenced enterprise
+bean with the ejb-name of the target bean appended and separated from
+the path name by "#".  The path name is relative to the war file
+containing the web application that is referencing the enterprise bean.
+This allows multiple enterprise beans with the same ejb-name to be
+uniquely identified.
+
+Used in: ejb-local-ref, ejb-ref
+
+Examples:
+
+       <ejb-link>EmployeeRecord</ejb-link>
+
+       <ejb-link>../products/product.jar#ProductEJB</ejb-link>
+
+-->
+<!ELEMENT ejb-link (#PCDATA)>
+
+<!--
+The ejb-local-ref element is used for the declaration of a reference to
+an enterprise bean's local home. The declaration consists of:
+
+       - an optional description
+       - the EJB reference name used in the code of the web application
+         that's referencing the enterprise bean
+       - the expected type of the referenced enterprise bean
+       - the expected local home and local interfaces of the referenced
+         enterprise bean
+       - optional ejb-link information, used to specify the referenced
+         enterprise bean
+
+Used in: web-app
+-->
+<!ELEMENT ejb-local-ref (description?, ejb-ref-name, ejb-ref-type,
+               local-home, local, ejb-link?)>
+
+<!--
+The ejb-ref element is used for the declaration of a reference to
+an enterprise bean's home. The declaration consists of:
+
+       - an optional description
+       - the EJB reference name used in the code of
+         the web application that's referencing the enterprise bean
+       - the expected type of the referenced enterprise bean
+       - the expected home and remote interfaces of the referenced
+         enterprise bean
+       - optional ejb-link information, used to specify the referenced
+         enterprise bean
+
+Used in: web-app
+-->
+<!ELEMENT ejb-ref (description?, ejb-ref-name, ejb-ref-type,
+               home, remote, ejb-link?)>
+
+<!--
+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/".
+
+Used in: ejb-local-ref, ejb-ref
+
+Example:
+
+<ejb-ref-name>ejb/Payroll</ejb-ref-name>
+-->
+<!ELEMENT ejb-ref-name (#PCDATA)>
+
+<!--
+The ejb-ref-type element contains the expected type of the
+referenced enterprise bean.
+
+The ejb-ref-type element must be one of the following:
+
+       <ejb-ref-type>Entity</ejb-ref-type>
+       <ejb-ref-type>Session</ejb-ref-type>
+
+Used in: ejb-local-ref, ejb-ref
+-->
+<!ELEMENT ejb-ref-type (#PCDATA)>
+
+<!--
+The env-entry element contains the declaration of a web application's
+environment entry. The declaration consists of an optional
+description, the name of the environment entry, and an optional
+value.  If a value is not specified, one must be supplied
+during deployment.
+-->
+<!ELEMENT env-entry (description?, env-entry-name, env-entry-value?,
+env-entry-type)>
+
+<!--
+The env-entry-name element contains the name of a web applications'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.
+
+Example:
+
+<env-entry-name>minAmount</env-entry-name>
+
+Used in: env-entry
+-->
+<!ELEMENT env-entry-name (#PCDATA)>
+
+<!--
+The env-entry-type element contains the fully-qualified Java type of
+the environment entry value that is expected by the web application's
+code.
+
+The following are the legal values of env-entry-type:
+
+       java.lang.Boolean
+       java.lang.Byte
+       java.lang.Character
+       java.lang.String
+       java.lang.Short
+       java.lang.Integer
+       java.lang.Long
+       java.lang.Float
+       java.lang.Double
+
+Used in: env-entry
+-->
+<!ELEMENT env-entry-type (#PCDATA)>
+
+<!--
+The env-entry-value element contains the value of a web application's
+environment entry. The value must be a String that is valid for the
+constructor of the specified type that takes a single String
+parameter, or for java.lang.Character, a single character.
+
+Example:
+
+<env-entry-value>100.00</env-entry-value>
+
+Used in: env-entry
+-->
+<!ELEMENT env-entry-value (#PCDATA)>
+
+<!--
+The error-code contains an HTTP error code, ex: 404
+
+Used in: error-page
+-->
+<!ELEMENT error-code (#PCDATA)>
+
+<!--
+The error-page element contains a mapping between an error code
+or exception type to the path of a resource in the web application
+
+Used in: web-app
+-->
+<!ELEMENT error-page ((error-code | exception-type), location)>
+
+<!--
+The exception type contains a fully qualified class name of a
+Java exception type.
+
+Used in: error-page
+-->
+<!ELEMENT exception-type (#PCDATA)>
+
+<!--
+The extension element contains a string describing an
+extension. example: "txt"
+
+Used in: mime-mapping
+-->
+<!ELEMENT extension (#PCDATA)>
+
+<!--
+Declares 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
+-->
+<!ELEMENT filter (icon?, filter-name, display-name?, description?,
+filter-class, init-param*)>
+
+<!--
+The fully qualified classname of the filter.
+
+Used in: filter
+-->
+<!ELEMENT filter-class (#PCDATA)>
+
+<!--
+Declaration of the filter mappings in this web application. 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.
+
+Used in: web-app
+-->
+<!ELEMENT filter-mapping (filter-name, (url-pattern | servlet-name))>
+
+<!--
+The logical name of the filter. This name is used to map the filter.
+Each filter name is unique within the web application.
+
+Used in: filter, filter-mapping
+-->
+<!ELEMENT filter-name (#PCDATA)>
+
+<!--
+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.
+
+Used in: form-login-config
+-->
+<!ELEMENT form-error-page (#PCDATA)>
+
+<!--
+The form-login-config element 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
+-->
+<!ELEMENT form-login-config (form-login-page, form-error-page)>
+
+<!--
+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.
+
+Used in: form-login-config
+-->
+<!ELEMENT form-login-page (#PCDATA)>
+
+<!--
+The home element contains the fully-qualified name of the enterprise
+bean's home interface.
+
+Used in: ejb-ref
+
+Example:
+
+<home>com.aardvark.payroll.PayrollHome</home>
+-->
+<!ELEMENT home (#PCDATA)>
+
+<!--
+The http-method contains an HTTP method (GET | POST |...).
+
+Used in: web-resource-collection
+-->
+<!ELEMENT http-method (#PCDATA)>
+
+<!--
+The icon element contains small-icon and large-icon elements that
+specify the file names for small and a large GIF or JPEG icon images
+used to represent the parent element in a GUI tool.
+
+Used in: filter, servlet, web-app
+-->
+<!ELEMENT icon (small-icon?, large-icon?)>
+
+<!--
+The init-param element contains a name/value pair as an
+initialization param of the servlet
+
+Used in: filter, servlet
+-->
+<!ELEMENT init-param (param-name, param-value, description?)>
+
+<!--
+The jsp-file element contains the full path to a JSP file within
+the web application beginning with a `/'.
+
+Used in: servlet
+-->
+<!ELEMENT jsp-file (#PCDATA)>
+
+<!--
+The large-icon element contains the name of a file
+containing a large (32 x 32) icon image. The file
+name is a relative path within the web application's
+war file.
+
+The image may be either in the JPEG or GIF format.
+The icon can be used by tools.
+
+Used in: icon
+
+Example:
+
+<large-icon>employee-service-icon32x32.jpg</large-icon>
+-->
+<!ELEMENT large-icon (#PCDATA)>
+
+<!--
+The listener element indicates the deployment properties for a web
+application listener bean.
+
+Used in: web-app
+-->
+<!ELEMENT listener (listener-class)>
+
+<!--
+The listener-class element declares a class in the application must be
+registered as a web application listener bean. The value is the fully qualified classname of the listener class.
+
+
+Used in: listener
+-->
+<!ELEMENT listener-class (#PCDATA)>
+
+<!--
+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.
+
+Used in: servlet
+-->
+<!ELEMENT load-on-startup (#PCDATA)>
+
+<!--
+
+The local element contains the fully-qualified name of the
+enterprise bean's local interface.
+
+Used in: ejb-local-ref
+
+-->
+<!ELEMENT local (#PCDATA)>
+
+<!--
+
+The local-home element contains the fully-qualified name of the
+enterprise bean's local home interface.
+
+Used in: ejb-local-ref
+-->
+<!ELEMENT local-home (#PCDATA)>
+
+<!--
+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 `/'.
+
+Used in: error-page
+-->
+<!ELEMENT location (#PCDATA)>
+
+<!--
+The login-config element 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
+-->
+<!ELEMENT login-config (auth-method?, realm-name?, form-login-config?)>
+
+<!--
+The mime-mapping element defines a mapping between an extension
+and a mime type.
+
+Used in: web-app
+-->
+<!ELEMENT mime-mapping (extension, mime-type)>
+
+<!--
+The mime-type element contains a defined mime type. example:
+"text/plain"
+
+Used in: mime-mapping
+-->
+<!ELEMENT mime-type (#PCDATA)>
+
+<!--
+The param-name element contains the name of a parameter. Each parameter
+name must be unique in the web application.
+
+
+Used in: context-param, init-param
+-->
+<!ELEMENT param-name (#PCDATA)>
+
+<!--
+The param-value element contains the value of a parameter.
+
+Used in: context-param, init-param
+-->
+<!ELEMENT param-value (#PCDATA)>
+
+<!--
+The realm name element specifies the realm name to use in HTTP
+Basic authorization.
+
+Used in: login-config
+-->
+<!ELEMENT realm-name (#PCDATA)>
+
+<!--
+The remote element contains the fully-qualified name of the enterprise
+bean's remote interface.
+
+Used in: ejb-ref
+
+Example:
+
+<remote>com.wombat.empl.EmployeeService</remote>
+-->
+<!ELEMENT remote (#PCDATA)>
+
+<!--
+The res-auth element specifies whether the web application code signs
+on programmatically to the resource manager, or whether the Container
+will sign on to the resource manager on behalf of the web application. In the
+latter case, the Container uses information that is supplied by the
+Deployer.
+
+The value of this element must be one of the two following:
+
+       <res-auth>Application</res-auth>
+       <res-auth>Container</res-auth>
+
+Used in: resource-ref
+-->
+<!ELEMENT res-auth (#PCDATA)>
+
+<!--
+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.
+
+Used in: resource-ref
+-->
+<!ELEMENT res-ref-name (#PCDATA)>
+
+<!--
+The res-sharing-scope element specifies whether connections obtained
+through the given resource manager connection factory reference can be
+shared. The value of this element, if specified, must be one of the
+two following:
+
+       <res-sharing-scope>Shareable</res-sharing-scope>
+       <res-sharing-scope>Unshareable</res-sharing-scope>
+
+The default value is Shareable.
+
+Used in: resource-ref
+-->
+<!ELEMENT res-sharing-scope (#PCDATA)>
+
+<!--
+The res-type element specifies the type of the data source. The type
+is specified by the fully qualified Java language class or interface
+expected to be implemented by the data source.
+
+Used in: resource-ref
+-->
+<!ELEMENT res-type (#PCDATA)>
+
+<!--
+The resource-env-ref element contains a declaration of a web application's
+reference to an administered object associated with a resource
+in the web application's environment.  It consists of an optional
+description, the resource environment reference name, and an
+indication of the resource environment reference type expected by
+the web application code.
+
+Used in: web-app
+
+Example:
+
+<resource-env-ref>
+    <resource-env-ref-name>jms/StockQueue</resource-env-ref-name>
+    <resource-env-ref-type>javax.jms.Queue</resource-env-ref-type>
+</resource-env-ref>
+-->
+<!ELEMENT resource-env-ref (description?, resource-env-ref-name,
+               resource-env-ref-type)>
+
+<!--
+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.
+
+Used in: resource-env-ref
+-->
+<!ELEMENT resource-env-ref-name (#PCDATA)>
+
+<!--
+The resource-env-ref-type element specifies the type of a resource
+environment reference.  It is the fully qualified name of a Java
+language class or interface.
+
+Used in: resource-env-ref
+-->
+<!ELEMENT resource-env-ref-type (#PCDATA)>
+
+<!--
+The resource-ref element contains a declaration of a web application's
+reference to an external resource. It consists of an optional
+description, the resource manager connection factory reference name,
+the indication of the resource manager connection factory type
+expected by the web application code, the type of authentication
+(Application or Container), and an optional specification of the
+shareability of connections obtained from the resource (Shareable or
+Unshareable).
+
+Used in: web-app
+
+Example:
+
+    <resource-ref>
+       <res-ref-name>jdbc/EmployeeAppDB</res-ref-name>
+       <res-type>javax.sql.DataSource</res-type>
+       <res-auth>Container</res-auth>
+       <res-sharing-scope>Shareable</res-sharing-scope>
+    </resource-ref>
+-->
+<!ELEMENT resource-ref (description?, res-ref-name, res-type, res-auth,
+               res-sharing-scope?)>
+
+<!--
+The role-link element is a reference to a defined security role. The
+role-link element must contain the name of one of the security roles
+defined in the security-role elements.
+
+Used in: security-role-ref
+-->
+<!ELEMENT role-link (#PCDATA)>
+
+<!--
+The role-name element contains the name of a security role.
+
+The name must conform to the lexical rules for an NMTOKEN.
+
+Used in: auth-constraint, run-as, security-role, security-role-ref
+-->
+<!ELEMENT role-name (#PCDATA)>
+
+<!--
+The run-as element specifies the run-as identity to be used for the
+execution of the web application. It contains an optional description, and
+the name of a security role.
+
+Used in: servlet
+-->
+<!ELEMENT run-as (description?, role-name)>
+
+<!--
+The security-constraint element is used to associate security
+constraints with one or more web resource collections
+
+Used in: web-app
+-->
+<!ELEMENT security-constraint (display-name?, web-resource-collection+,
+auth-constraint?, user-data-constraint?)>
+
+<!--
+The security-role element contains the definition of a security
+role. The definition consists of an optional description of the
+security role, and the security role name.
+
+Used in: web-app
+
+Example:
+
+    <security-role>
+       <description>
+           This role includes all employees who are authorized
+           to access the employee service application.
+       </description>
+       <role-name>employee</role-name>
+    </security-role>
+-->
+<!ELEMENT security-role (description?, role-name)>
+
+<!--
+The security-role-ref element contains the declaration of a security
+role reference in the web application's code. The declaration consists
+of an optional description, the security role name used in the code,
+and an optional link to a security role. If the security role is not
+specified, the Deployer must choose an appropriate security role.
+
+The value of the role-name element must be the String used as the
+parameter to the EJBContext.isCallerInRole(String roleName) method
+or the HttpServletRequest.isUserInRole(String role) method.
+
+Used in: servlet
+
+-->
+<!ELEMENT security-role-ref (description?, role-name, role-link?)>
+
+<!--
+The servlet element 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
+-->
+<!ELEMENT servlet (icon?, servlet-name, display-name?, description?,
+(servlet-class|jsp-file), init-param*, load-on-startup?, run-as?, security-role-ref*)>
+
+<!--
+The servlet-class element contains the fully qualified class name
+of the servlet.
+
+Used in: servlet
+-->
+<!ELEMENT servlet-class (#PCDATA)>
+
+<!--
+The servlet-mapping element defines a mapping between a servlet
+and a url pattern
+
+Used in: web-app
+-->
+<!ELEMENT servlet-mapping (servlet-name, url-pattern)>
+
+<!--
+The servlet-name element contains the canonical name of the
+servlet. Each servlet name is unique within the web application.
+
+Used in: filter-mapping, servlet, servlet-mapping
+-->
+<!ELEMENT servlet-name (#PCDATA)>
+
+<!--
+The session-config element defines the session parameters for
+this web application.
+
+Used in: web-app
+-->
+<!ELEMENT session-config (session-timeout?)>
+
+<!--
+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.
+
+Used in: session-config
+-->
+<!ELEMENT session-timeout (#PCDATA)>
+
+<!--
+The small-icon element contains the name of a file
+containing a small (16 x 16) icon image. The file
+name is a relative path within the web application's
+war file.
+
+The image may be either in the JPEG or GIF format.
+The icon can be used by tools.
+
+Used in: icon
+
+Example:
+
+<small-icon>employee-service-icon16x16.jpg</small-icon>
+-->
+<!ELEMENT small-icon (#PCDATA)>
+
+<!--
+The taglib element is used to describe a JSP tag library.
+
+Used in: web-app
+-->
+<!ELEMENT taglib (taglib-uri, taglib-location)>
+
+<!--
+the taglib-location element contains the location (as a resource
+relative to the root of the web application) where to find the Tag
+Libary Description file for the tag library.
+
+Used in: taglib
+-->
+<!ELEMENT taglib-location (#PCDATA)>
+
+<!--
+The taglib-uri element describes a URI, relative to the location
+of the web.xml document, identifying a Tag Library used in the Web
+Application.
+
+Used in: taglib
+-->
+<!ELEMENT taglib-uri (#PCDATA)>
+
+<!--
+The transport-guarantee element 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
+-->
+<!ELEMENT transport-guarantee (#PCDATA)>
+
+<!--
+The url-pattern element contains the url pattern of the mapping. Must
+follow the rules specified in Section 11.2 of the Servlet API
+Specification.
+
+Used in: filter-mapping, servlet-mapping, web-resource-collection
+-->
+<!ELEMENT url-pattern (#PCDATA)>
+
+<!--
+The user-data-constraint element is used to indicate how data
+communicated between the client and container should be protected.
+
+Used in: security-constraint
+-->
+<!ELEMENT user-data-constraint (description?, transport-guarantee)>
+
+<!--
+The web-resource-collection element 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
+-->
+<!ELEMENT web-resource-collection (web-resource-name, description?,
+url-pattern*, http-method*)>
+
+<!--
+The web-resource-name contains the name of this web resource
+collection.
+
+Used in: web-resource-collection
+-->
+<!ELEMENT web-resource-name (#PCDATA)>
+
+<!--
+The welcome-file element contains file name to use as a default
+welcome file, such as index.html
+
+Used in: welcome-file-list
+-->
+<!ELEMENT welcome-file (#PCDATA)>
+
+<!--
+The welcome-file-list contains an ordered list of welcome files
+elements.
+
+Used in: web-app
+-->
+<!ELEMENT welcome-file-list (welcome-file+)>
+
+<!--
+The ID mechanism is to allow tools that produce additional deployment
+information (i.e., information beyond the standard deployment
+descriptor information) to store the non-standard information in a
+separate file, and easily refer from these tool-specific files to the
+information in the standard deployment descriptor.
+
+Tools are not allowed to add the non-standard information into the
+standard deployment descriptor.
+-->
+
+<!ATTLIST auth-constraint id ID #IMPLIED>
+<!ATTLIST auth-method id ID #IMPLIED>
+<!ATTLIST context-param id ID #IMPLIED>
+<!ATTLIST description id ID #IMPLIED>
+<!ATTLIST display-name id ID #IMPLIED>
+<!ATTLIST distributable id ID #IMPLIED>
+<!ATTLIST ejb-link id ID #IMPLIED>
+<!ATTLIST ejb-local-ref id ID #IMPLIED>
+<!ATTLIST ejb-ref id ID #IMPLIED>
+<!ATTLIST ejb-ref-name id ID #IMPLIED>
+<!ATTLIST ejb-ref-type id ID #IMPLIED>
+<!ATTLIST env-entry id ID #IMPLIED>
+<!ATTLIST env-entry-name id ID #IMPLIED>
+<!ATTLIST env-entry-type id ID #IMPLIED>
+<!ATTLIST env-entry-value id ID #IMPLIED>
+<!ATTLIST error-code id ID #IMPLIED>
+<!ATTLIST error-page id ID #IMPLIED>
+<!ATTLIST exception-type id ID #IMPLIED>
+<!ATTLIST extension id ID #IMPLIED>
+<!ATTLIST filter id ID #IMPLIED>
+<!ATTLIST filter-class id ID #IMPLIED>
+<!ATTLIST filter-mapping id ID #IMPLIED>
+<!ATTLIST filter-name id ID #IMPLIED>
+<!ATTLIST form-error-page id ID #IMPLIED>
+<!ATTLIST form-login-config id ID #IMPLIED>
+<!ATTLIST form-login-page id ID #IMPLIED>
+<!ATTLIST home id ID #IMPLIED>
+<!ATTLIST http-method id ID #IMPLIED>
+<!ATTLIST icon id ID #IMPLIED>
+<!ATTLIST init-param id ID #IMPLIED>
+<!ATTLIST jsp-file id ID #IMPLIED>
+<!ATTLIST large-icon id ID #IMPLIED>
+<!ATTLIST listener id ID #IMPLIED>
+<!ATTLIST listener-class id ID #IMPLIED>
+<!ATTLIST load-on-startup id ID #IMPLIED>
+<!ATTLIST local id ID #IMPLIED>
+<!ATTLIST local-home id ID #IMPLIED>
+<!ATTLIST location id ID #IMPLIED>
+<!ATTLIST login-config id ID #IMPLIED>
+<!ATTLIST mime-mapping id ID #IMPLIED>
+<!ATTLIST mime-type id ID #IMPLIED>
+<!ATTLIST param-name id ID #IMPLIED>
+<!ATTLIST param-value id ID #IMPLIED>
+<!ATTLIST realm-name id ID #IMPLIED>
+<!ATTLIST remote id ID #IMPLIED>
+<!ATTLIST res-auth id ID #IMPLIED>
+<!ATTLIST res-ref-name id ID #IMPLIED>
+<!ATTLIST res-sharing-scope id ID #IMPLIED>
+<!ATTLIST res-type id ID #IMPLIED>
+<!ATTLIST resource-env-ref id ID #IMPLIED>
+<!ATTLIST resource-env-ref-name id ID #IMPLIED>
+<!ATTLIST resource-env-ref-type id ID #IMPLIED>
+<!ATTLIST resource-ref id ID #IMPLIED>
+<!ATTLIST role-link id ID #IMPLIED>
+<!ATTLIST role-name id ID #IMPLIED>
+<!ATTLIST run-as id ID #IMPLIED>
+<!ATTLIST security-constraint id ID #IMPLIED>
+<!ATTLIST security-role id ID #IMPLIED>
+<!ATTLIST security-role-ref id ID #IMPLIED>
+<!ATTLIST servlet id ID #IMPLIED>
+<!ATTLIST servlet-class id ID #IMPLIED>
+<!ATTLIST servlet-mapping id ID #IMPLIED>
+<!ATTLIST servlet-name id ID #IMPLIED>
+<!ATTLIST session-config id ID #IMPLIED>
+<!ATTLIST session-timeout id ID #IMPLIED>
+<!ATTLIST small-icon id ID #IMPLIED>
+<!ATTLIST taglib id ID #IMPLIED>
+<!ATTLIST taglib-location id ID #IMPLIED>
+<!ATTLIST taglib-uri id ID #IMPLIED>
+<!ATTLIST transport-guarantee id ID #IMPLIED>
+<!ATTLIST url-pattern id ID #IMPLIED>
+<!ATTLIST user-data-constraint id ID #IMPLIED>
+<!ATTLIST web-app id ID #IMPLIED>
+<!ATTLIST web-resource-collection id ID #IMPLIED>
+<!ATTLIST web-resource-name id ID #IMPLIED>
+<!ATTLIST welcome-file id ID #IMPLIED>
+<!ATTLIST welcome-file-list id ID #IMPLIED>
diff --git a/java/javax/servlet/resources/web-app_2_4.xsd b/java/javax/servlet/resources/web-app_2_4.xsd
new file mode 100644 (file)
index 0000000..c5dbfa2
--- /dev/null
@@ -0,0 +1,1248 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Copyright 2004 The Apache Software Foundation
+
+  Licensed 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 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>
+      %W% %E%
+    </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>
+
diff --git a/java/javax/servlet/resources/xml.xsd b/java/javax/servlet/resources/xml.xsd
new file mode 100644 (file)
index 0000000..0bea0fd
--- /dev/null
@@ -0,0 +1,96 @@
+<?xml version='1.0'?>
+<!--
+  Copyright 2004 The Apache Software Foundation
+
+  Licensed 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.
+-->
+<!DOCTYPE xs:schema PUBLIC "-//W3C//DTD XMLSCHEMA 200102//EN" "XMLSchema.dtd" >
+<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace" xmlns:xs="http://www.w3.org/2001/XMLSchema" xml:lang="en">
+
+ <xs:annotation>
+  <xs:documentation>
+   See http://www.w3.org/XML/1998/namespace.html and
+   http://www.w3.org/TR/REC-xml for information about this namespace.
+  </xs:documentation>
+ </xs:annotation>
+
+ <xs:annotation>
+  <xs:documentation>This schema defines attributes and an attribute group
+        suitable for use by
+        schemas wishing to allow xml:base, xml:lang or xml:space attributes
+        on elements they define.
+
+        To enable this, such a schema must import this schema
+        for the XML namespace, e.g. as follows:
+        &lt;schema . . .>
+         . . .
+         &lt;import namespace="http://www.w3.org/XML/1998/namespace"
+                    schemaLocation="http://www.w3.org/2001/03/xml.xsd"/>
+
+        Subsequently, qualified reference to any of the attributes
+        or the group defined below will have the desired effect, e.g.
+
+        &lt;type . . .>
+         . . .
+         &lt;attributeGroup ref="xml:specialAttrs"/>
+         will define a type which will schema-validate an instance
+         element with any of those attributes</xs:documentation>
+ </xs:annotation>
+
+ <xs:annotation>
+  <xs:documentation>In keeping with the XML Schema WG's standard versioning
+   policy, this schema document will persist at
+   http://www.w3.org/2001/03/xml.xsd.
+   At the date of issue it can also be found at
+   http://www.w3.org/2001/xml.xsd.
+   The schema document at that URI may however change in the future,
+   in order to remain compatible with the latest version of XML Schema
+   itself.  In other words, if the XML Schema namespace changes, the version
+   of this document at
+   http://www.w3.org/2001/xml.xsd will change
+   accordingly; the version at
+   http://www.w3.org/2001/03/xml.xsd will not change.
+  </xs:documentation>
+ </xs:annotation>
+
+ <xs:attribute name="lang" type="xs:language">
+  <xs:annotation>
+   <xs:documentation>In due course, we should install the relevant ISO 2- and 3-letter
+         codes as the enumerated possible values . . .</xs:documentation>
+  </xs:annotation>
+ </xs:attribute>
+
+ <xs:attribute name="space" default="preserve">
+  <xs:simpleType>
+   <xs:restriction base="xs:NCName">
+    <xs:enumeration value="default"/>
+    <xs:enumeration value="preserve"/>
+   </xs:restriction>
+  </xs:simpleType>
+ </xs:attribute>
+
+ <xs:attribute name="base" type="xs:anyURI">
+  <xs:annotation>
+   <xs:documentation>See http://www.w3.org/TR/xmlbase/ for
+                     information about this attribute.</xs:documentation>
+  </xs:annotation>
+ </xs:attribute>
+
+ <xs:attributeGroup name="specialAttrs">
+  <xs:attribute ref="xml:base"/>
+  <xs:attribute ref="xml:lang"/>
+  <xs:attribute ref="xml:space"/>
+ </xs:attributeGroup>
+
+</xs:schema>