rebuilding head
authoridfx <idfx>
Sat, 6 Nov 2004 20:26:42 +0000 (20:26 +0000)
committeridfx <idfx>
Sat, 6 Nov 2004 20:26:42 +0000 (20:26 +0000)
16 files changed:
lib/hibernate/cglib-asm.jar [deleted file]
lib/hibernate/commons-lang.jar [deleted file]
lib/hibernate/dom4j.jar [deleted file]
lib/hibernate/hibernate2.jar [deleted file]
lib/hibernate/odmg.jar [deleted file]
lib/struts/commons-digester.jar [deleted file]
lib/struts/commons-validator.jar [deleted file]
lib/struts/jakarta-oro.jar [deleted file]
lib/struts/struts-config_1_0.dtd [deleted file]
lib/struts/struts-config_1_1.dtd [deleted file]
lib/struts/struts.jar [deleted file]
lib/struts/tiles-config.dtd [deleted file]
lib/struts/tiles-config_1_1.dtd [deleted file]
lib/struts/validation_1_1.dtd [deleted file]
lib/struts/validator-rules.xml [deleted file]
lib/struts/validator-rules_1_1.dtd [deleted file]

diff --git a/lib/hibernate/cglib-asm.jar b/lib/hibernate/cglib-asm.jar
deleted file mode 100755 (executable)
index d05fdb5..0000000
Binary files a/lib/hibernate/cglib-asm.jar and /dev/null differ
diff --git a/lib/hibernate/commons-lang.jar b/lib/hibernate/commons-lang.jar
deleted file mode 100755 (executable)
index 37ddb9b..0000000
Binary files a/lib/hibernate/commons-lang.jar and /dev/null differ
diff --git a/lib/hibernate/dom4j.jar b/lib/hibernate/dom4j.jar
deleted file mode 100755 (executable)
index 2a58756..0000000
Binary files a/lib/hibernate/dom4j.jar and /dev/null differ
diff --git a/lib/hibernate/hibernate2.jar b/lib/hibernate/hibernate2.jar
deleted file mode 100755 (executable)
index cd9a60d..0000000
Binary files a/lib/hibernate/hibernate2.jar and /dev/null differ
diff --git a/lib/hibernate/odmg.jar b/lib/hibernate/odmg.jar
deleted file mode 100755 (executable)
index 258b673..0000000
Binary files a/lib/hibernate/odmg.jar and /dev/null differ
diff --git a/lib/struts/commons-digester.jar b/lib/struts/commons-digester.jar
deleted file mode 100755 (executable)
index c2a7d9d..0000000
Binary files a/lib/struts/commons-digester.jar and /dev/null differ
diff --git a/lib/struts/commons-validator.jar b/lib/struts/commons-validator.jar
deleted file mode 100755 (executable)
index 096a7f4..0000000
Binary files a/lib/struts/commons-validator.jar and /dev/null differ
diff --git a/lib/struts/jakarta-oro.jar b/lib/struts/jakarta-oro.jar
deleted file mode 100755 (executable)
index 346504c..0000000
Binary files a/lib/struts/jakarta-oro.jar and /dev/null differ
diff --git a/lib/struts/struts-config_1_0.dtd b/lib/struts/struts-config_1_0.dtd
deleted file mode 100755 (executable)
index 97ef9a0..0000000
+++ /dev/null
@@ -1,408 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>\r
-\r
-\r
-<!--\r
-     DTD for the Struts Application Configuration File, Version 1.0\r
-\r
-     To support validation of your configuration file, include the following\r
-     DOCTYPE element at the beginning (after the "xml" declaration):\r
-\r
-     <!DOCTYPE struts-config PUBLIC\r
-       "-//Apache Software Foundation//DTD Struts Configuration 1.0//EN"\r
-       "http://jakarta.apache.org/struts/dtds/struts-config_1_0.dtd">\r
-\r
-     $Id: struts-config_1_0.dtd,v 1.5 2001/06/02 18:20:47 craigmcc Exp $\r
--->\r
-\r
-\r
-<!-- ========== Defined Types ============================================= -->\r
-\r
-\r
-<!-- A "BeanName" is the identifier of a JavaBean, such as a form bean,\r
-     and also serves as the name of the corresponding scripting variable\r
-     and the name of the JSP attribute under which the bean is accessed.\r
-     Therefore, it must conform to the rules for a Java identifier.\r
--->\r
-<!ENTITY % BeanName "CDATA">\r
-\r
-\r
-<!-- A "Boolean" is the string representation of a boolean (true or false)\r
-     variable.\r
--->\r
-<!ENTITY % Boolean "(true|false|yes|no)">\r
-\r
-\r
-<!-- A "ClassName" is the fully qualified name of a Java class that is\r
-     instantiated to provide the functionality of the enclosing element.\r
--->\r
-<!ENTITY % ClassName "CDATA">\r
-\r
-\r
-<!-- An "Integer" is a character string consisting solely of numeric digits,\r
-     optionally preceeded by a minus sign, that can be converted to a\r
-     32-bit integer.\r
--->\r
-<!ENTITY % Integer "CDATA">\r
-\r
-\r
-<!-- A "Location" is a relative path, delimited by "/" characters, that\r
-     defines the location of a resource relative to the location of the\r
-     Struts configuration file itself.\r
--->\r
-<!ENTITY % Location "#PCDATA">\r
-\r
-\r
-<!-- A "PropName" is the name of a JavaBeans property, and must begin with\r
-     a lower case letter and contain only characters that are legal in a\r
-     Java identifier.\r
--->\r
-<!ENTITY % PropName "CDATA">\r
-\r
-\r
-<!-- A "RequestPath" is a context-relative URI path, beginning with a slash,\r
-     that identifies a mapped resource (such as a JSP page or a servlet)\r
-     within this web application.\r
--->\r
-<!ENTITY % RequestPath "CDATA">\r
-\r
-\r
-<!-- The name of a JSP bean scope within which such a form bean may be\r
-     accessed.\r
--->\r
-<!ENTITY % RequestScope "(request|session)">\r
-\r
-\r
-<!-- ========== Top Level Elements ======================================== -->\r
-\r
-\r
-<!-- The "struts-config" element is the root of the configuration file\r
-     hierarchy, and contains nested elements for all of the other\r
-     configuration settings.\r
--->\r
-<!ELEMENT struts-config (data-sources?, form-beans?, global-forwards?, action-mappings?)>\r
-<!ATTLIST struts-config  id             ID              #IMPLIED>\r
-\r
-\r
-<!-- The "data-sources" element describes a set of JDBC 2.0 Standard Extension\r
-     data source objects which will be configured according to the nested\r
-     "data-source" elements found inside.\r
--->\r
-\r
-<!ELEMENT data-sources (data-source*)>\r
-<!ATTLIST data-sources   id             ID              #IMPLIED>\r
-\r
-\r
-<!-- The "data-source" element describes a JDBC 2.0 Standard Extension data\r
-     source object (that implements javax.sql.DataSource) which will be\r
-     configured according to the properties and nested elements found here,\r
-     and made available as a servlet context attribute (i.e. application\r
-     scope bean).  The following attributes are required:\r
-\r
-     key             Servlet context attribute key under which this data\r
-                     source will be stored.  Default is the value specified\r
-                     by string constant Action.DATA_SOURCE_KEY.\r
-\r
-     type            Fully qualified Java class name of the implementation\r
-                     class (must implement javax.sql.DataSource).  Default\r
-                     value is 'org.apache.struts.util.GenericDataSource'.\r
-\r
-     NOTE:  The following attributes are defined by the default data source\r
-     implementation, and only take effect for that class or subclasses of\r
-     that class.\r
-\r
-     WARNING:  The use of these attributes is deprecated.  You should use\r
-     nested &lt;set-property&gt; elements to configure *all* properties of\r
-     your data source implementation.\r
-\r
-     autoCommit      The default auto-commit state for newly created\r
-                     connections.\r
-\r
-     description     The description of this data source.\r
-\r
-     driverClass     The Java class name of the JDBC driver to be used.\r
-                     [REQUIRED]\r
-\r
-     loginTimeout    The maximum number of seconds to wait for a connection\r
-                     to be created or returned.  Default is driver dependent.\r
-\r
-     maxCount        The maximum number of connections to be created.\r
-\r
-     minCount        The minimum number of connections to be created.\r
-\r
-     password        The database password to use when connecting. [REQUIRED]\r
-\r
-     readOnly        The default read-only state for newly created\r
-                     connections.\r
-\r
-     url             The JDBC URL to use when connecting. [REQUIRED]\r
-\r
-     user            The database username to use when connecting. [REQUIRED]\r
-\r
--->\r
-<!ELEMENT data-source (set-property*)>\r
-<!ATTLIST data-source    id             ID              #IMPLIED>\r
-<!ATTLIST data-source    key            %BeanName;      #IMPLIED>\r
-<!ATTLIST data-source    type           %ClassName;     #IMPLIED>\r
-<!-- All of the following attributes are deprecated.  Use a nested          -->\r
-<!-- set-property element to configure data source properties.              -->\r
-<!ATTLIST data-source    autoCommit     %Boolean;       #IMPLIED>\r
-<!ATTLIST data-source    description    CDATA           #IMPLIED>\r
-<!ATTLIST data-source    driverClass    %ClassName;     #IMPLIED>\r
-<!ATTLIST data-source    loginTimeout   %Integer;       #IMPLIED>\r
-<!ATTLIST data-source    maxCount       %Integer;       #IMPLIED>\r
-<!ATTLIST data-source    minCount       %Integer;       #IMPLIED>\r
-<!ATTLIST data-source    password       CDATA           #IMPLIED>\r
-<!ATTLIST data-source    readOnly       %Boolean;       #IMPLIED>\r
-<!ATTLIST data-source    url            CDATA           #IMPLIED>\r
-<!ATTLIST data-source    user           CDATA           #IMPLIED>\r
-\r
-\r
-<!-- The "form-beans" element is the root of the set of form bean descriptors\r
-     for this application.  The following attributes are defined:\r
-\r
-     type            Fully qualified Java class name of the implementation\r
-                     class used for ActionFormBean objects.  DEPRECATED.\r
-\r
-                     WARNING:  For Struts 1.0, this value is ignored.  You\r
-                     can set the default implementation class name with the\r
-                     "formBean" initialization parameter to the Struts\r
-                     controller servlet.\r
--->\r
-<!ELEMENT form-beans (form-bean*)>\r
-<!ATTLIST form-beans     id             ID              #IMPLIED>\r
-<!ATTLIST form-beans     type           %ClassName;     "org.apache.struts.action.ActionFormBean">\r
-\r
-\r
-<!-- The "form-bean" element describes a particular form bean, which is a\r
-     JavaBean that implements the org.apache.struts.action.ActionForm\r
-     class.  The following attributes are defined:\r
-\r
-     className       Fully qualified Java class name of the ActionFormBean\r
-                     implementation class to use.  Defaults to the value\r
-                     configured as the "formBean" initialization parameter\r
-                     to the Struts controller servlet.\r
-\r
-     name            Unique identifier of this bean, used to reference it\r
-                     in corresponding action mappings.\r
-\r
-     type            Fully qualified Java class name of the implementation\r
-                     class to be used or generated\r
--->\r
-<!ELEMENT form-bean (icon?, display-name?, description?, set-property*)>\r
-<!ATTLIST form-bean      id             ID              #IMPLIED>\r
-<!ATTLIST form-bean      className      %ClassName;     #IMPLIED>\r
-<!ATTLIST form-bean      name           %BeanName;      #REQUIRED>\r
-<!ATTLIST form-bean      type           %ClassName;     #REQUIRED>\r
-\r
-\r
-<!-- The "global-forwards" element configures the global mappings of logical\r
-     names (used within the application) to mappable resources (identified\r
-     by context-relative URI paths).  A global "forward" with a particular name\r
-     can be locally overridden by defining a "forward" of the same name within\r
-     an "action" element.  The following attribute are defined:\r
-\r
-     type            Fully qualified Java class name of the implementation\r
-                     class used for ActionForward objects.  DEPRECATED.\r
-\r
-                     WARNING:  For Struts 1.0, this value is ignored.  You\r
-                     can set the default implementation class name with the\r
-                     "forward" initialization parameter to the Struts\r
-                     controller servlet.\r
--->\r
-<!ELEMENT global-forwards (forward*)>\r
-<!ATTLIST global-forwards id            ID              #IMPLIED>\r
-<!ATTLIST global-forwards type          %ClassName;     "org.apache.struts.action.ActionForward">\r
-\r
-\r
-<!-- The "forward" element describes a mapping of a logical name (used within\r
-     the application) to a mappable resource identified by a context-relative\r
-     URI path.  The following attributes are defined:\r
-\r
-     className       Fully qualified Java class name of the ActionForward\r
-                     implementation class to use.  Defaults to the value\r
-                     configured as the "forward" initialization parameter\r
-                     to the Struts controller servlet.\r
-\r
-     name            Unique identifier of this forward, used to reference it\r
-                     in application action classes.\r
-\r
-     path            The context-relative path of the mapped resource.\r
-\r
-     redirect        Set to "true" if sendRedirect() should be used to forward\r
-                     to this resource, or "false" in order to use\r
-                     RequestDispatcher.forward() instead.\r
--->\r
-<!ELEMENT forward (icon?, display-name?, description?, set-property*)>\r
-<!ATTLIST forward        id             ID              #IMPLIED>\r
-<!ATTLIST forward        className      %ClassName;     #IMPLIED>\r
-<!ATTLIST forward        name           CDATA           #REQUIRED>\r
-<!ATTLIST forward        path           %RequestPath;   #REQUIRED>\r
-<!ATTLIST forward        redirect       %Boolean;       #IMPLIED>\r
-\r
-\r
-<!-- The "action-mappings" element configures the mappings from submitted\r
-     request paths to the corresponding Action classes that should be\r
-     used to process these requests.  The following attributes are\r
-     defined:\r
-\r
-     type           Fully qualified Java class name of the ActionMapping\r
-                    implementation class to be used.  DEPRECATED.\r
-\r
-                     WARNING:  For Struts 1.0, this value is ignored.  You\r
-                     can set the default implementation class name with the\r
-                     "mapping" initialization parameter to the Struts\r
-                     controller servlet.\r
--->\r
-<!ELEMENT action-mappings (action*)>\r
-<!ATTLIST action-mappings id             ID              #IMPLIED>\r
-<!ATTLIST action-mappings type           %ClassName;     "org.apache.struts.action.ActionMapping">\r
-\r
-\r
-<!-- The "action" element describes a mapping from a request paths to the\r
-     corresponding Action classes that should be used to process these\r
-     requests.  The following attributes are defined:\r
-\r
-     attribute       Name of the request-scope or session-scope attribute\r
-                     under which our form bean is accessed, if it is other\r
-                     than the bean's specified "name".  Optional if\r
-                     "name" is specified, else not allowed.\r
-\r
-     className       Fully qualified Java class name of the ActionMapping\r
-                     implementation class to use.  Defaults to the value\r
-                     configured as the "mapping" initialization parameter\r
-                     to the Struts controller servlet.\r
-\r
-     forward         Context-relative path of the servlet or JSP resource that\r
-                     will process this request, instead of instantiating and\r
-                     calling the Action class specified by "type".  Exactly one\r
-                     of "forward", "include", or "type" must be specified.\r
-\r
-     include         Context-relative path of the servlet or JSP resource that\r
-                     will process this request, instead of instantiating and\r
-                     calling the Action class specified by "type".  Exactly one\r
-                     of "forward", "include", or "type" must be specified.\r
-\r
-     input           Context-relative path of the input form to which control\r
-                     should be returned if a validation error is encountered.\r
-                     Required if "name" is specified and the input bean\r
-                     returns validation errors.  Optional if "name" is\r
-                     specified and the input bean does not return validation\r
-                     errors.  Not allowed if "name" is not specified.\r
-\r
-     name            Name of the form bean, if any, that is associated\r
-                     with this action.\r
-\r
-     path            The context-relative path of the submitted request,\r
-                     starting with a "/" character, and without the\r
-                     filename extension if extension mapping is used.\r
-\r
-     parameter       General purpose configuration parameter that can be used\r
-                     to pass extra information to the Action selected by this\r
-                     mapping.\r
-\r
-     prefix          Prefix used to match request parameter names to form bean\r
-                     property names, if any.  Optional if "name" is specified,\r
-                     else not allowed.\r
-\r
-     scope           Identifier of the scope ("request" or "session") within\r
-                     which our form bean is accessed, if any.  Optional if\r
-                     "name" is specified, else not allowed.\r
-\r
-     suffix          Suffix used to match request parameter names to form bean\r
-                     property names, if any.  Optional if "name" is specified,\r
-                     else not allowed.\r
-\r
-     type            Fully qualified Java class name of the Action class\r
-                     (implements org.apache.struts.action.Action) to be\r
-                     used to process requests for this mapping if the "forward"\r
-                     or "include" attribute is not included.  Exactly one\r
-                     of "forward", "include", or "type" must be specified.\r
-\r
-     unknown         Set to "true" if this action should be configured as the\r
-                     default for this application, to handle all requests\r
-                     not handled by another action.  Only one action can be\r
-                     defined as a default within a single application.\r
-\r
-     validate        Set to "true" if the validate() method of the form bean\r
-                     should be called prior to calling this action, or set to\r
-                     "false" if you do not want validation performed.\r
--->\r
-<!ELEMENT action (icon?, display-name?, description?, set-property*, forward*)>\r
-<!ATTLIST action         id             ID              #IMPLIED>\r
-<!ATTLIST action         attribute      %BeanName;      #IMPLIED>\r
-<!ATTLIST action         className      %ClassName;     #IMPLIED>\r
-<!ATTLIST action         forward        %RequestPath;   #IMPLIED>\r
-<!ATTLIST action         include        %RequestPath;   #IMPLIED>\r
-<!ATTLIST action         input          %RequestPath;   #IMPLIED>\r
-<!ATTLIST action         name           %BeanName;      #IMPLIED>\r
-<!ATTLIST action         parameter      CDATA           #IMPLIED>\r
-<!ATTLIST action         path           %RequestPath;   #REQUIRED>\r
-<!ATTLIST action         prefix         CDATA           #IMPLIED>\r
-<!ATTLIST action         scope          %RequestScope;  #IMPLIED>\r
-<!ATTLIST action         suffix         CDATA           #IMPLIED>\r
-<!ATTLIST action         type           %ClassName;     #IMPLIED>\r
-<!ATTLIST action         unknown        %Boolean;       #IMPLIED>\r
-<!ATTLIST action         validate       %Boolean;       #IMPLIED>\r
-\r
-\r
-<!-- The "set-property" element specifies the name and value of an additional\r
-     JavaBeans configuration property whose setter method will be called\r
-     on the object that represents our surrounding element.  This is especially\r
-     useful when an extended implementation class (with additional properties)\r
-     is configured on the <global-forwards> or <action-mappings> elements.\r
-     The following attributes are defined:\r
-\r
-     property        Name of the JavaBeans property whose setter method\r
-                     will be called.\r
-\r
-     value           String representation of the value to which this\r
-                     property will be set, after suitable type conversion\r
--->\r
-<!ELEMENT set-property EMPTY>\r
-<!ATTLIST set-property   id             ID              #IMPLIED>\r
-<!ATTLIST set-property   property       %PropName;      #REQUIRED>\r
-<!ATTLIST set-property   value          CDATA           #REQUIRED>\r
-\r
-\r
-\r
-<!-- ========== Subordinate Elements ====================================== -->\r
-\r
-\r
-<!-- The "description" element contains descriptive (paragraph length) text\r
-     about the surrounding element, suitable for use in GUI tools.\r
--->\r
-<!ELEMENT description (#PCDATA)>\r
-<!ATTLIST description    id             ID              #IMPLIED>\r
-\r
-\r
-\r
-<!-- The "display-name" element contains a short (one line) description of\r
-     the surrounding element, suitable for use in GUI tools.\r
--->\r
-<!ELEMENT display-name (#PCDATA)>\r
-<!ATTLIST display-name   id             ID              #IMPLIED>\r
-\r
-\r
-<!-- The "icon" element contains a small-icon and large-icon element which\r
-     specify the location, relative to the Struts configuration file, for small\r
-     and large images used to represent the surrounding element in GUI tools.\r
--->\r
-<!ELEMENT icon (small-icon?, large-icon?)>\r
-<!ATTLIST icon           id             ID              #IMPLIED>\r
-\r
-\r
-<!-- The "large-icon" element specifies the location, relative to the Struts\r
-     configuration file, of a resource containing a large (32x32 pixel)\r
-     icon image.\r
--->\r
-<!ELEMENT large-icon (%Location;)>\r
-<!ATTLIST large-icon     id             ID              #IMPLIED>\r
-\r
-\r
-<!-- The "small-icon" element specifies the location, relative to the Struts\r
-     configuration file, of a resource containing a small (16x16 pixel)\r
-     icon image.\r
--->\r
-<!ELEMENT small-icon (%Location;)>\r
-<!ATTLIST small-icon     id             ID              #IMPLIED>\r
-\r
diff --git a/lib/struts/struts-config_1_1.dtd b/lib/struts/struts-config_1_1.dtd
deleted file mode 100755 (executable)
index 2eee0a7..0000000
+++ /dev/null
@@ -1,697 +0,0 @@
-<!--\r
-     DTD for the Struts Application Configuration File, Version 1.1\r
-\r
-     To support validation of your configuration file, include the following\r
-     DOCTYPE element at the beginning (after the "xml" declaration):\r
-\r
-     <!DOCTYPE struts-config PUBLIC\r
-       "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"\r
-       "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">\r
-\r
-     $Id: struts-config_1_1.dtd,v 1.40 2003/05/14 08:17:16 turner Exp $\r
--->\r
-\r
-\r
-<!-- ========== Defined Types ============================================= -->\r
-\r
-\r
-<!-- An "AttributeName" is the identifier of a page, request, session, or\r
-     application scope attribute.\r
--->\r
-<!ENTITY % AttributeName "CDATA">\r
-\r
-\r
-<!-- A "BeanName" is the identifier of a JavaBean, such as a form bean,\r
-     and also serves as the name of the corresponding scripting variable\r
-     and the name of the JSP attribute under which the bean is accessed.\r
-     Therefore, it must conform to the rules for a Java identifier.\r
--->\r
-<!ENTITY % BeanName "CDATA">\r
-\r
-\r
-<!-- A "Boolean" is the string representation of a boolean (true or false)\r
-     variable.\r
--->\r
-<!ENTITY % Boolean "(true|false|yes|no)">\r
-\r
-\r
-<!-- A "ClassName" is the fully qualified name of a Java class that is\r
-     instantiated to provide the functionality of the enclosing element.\r
--->\r
-<!ENTITY % ClassName "CDATA">\r
-\r
-\r
-<!-- An "Integer" is a character string consisting solely of numeric digits,\r
-     optionally preceeded by a minus sign, that can be converted to a\r
-     32-bit integer.\r
--->\r
-<!ENTITY % Integer "CDATA">\r
-\r
-\r
-<!-- A "Location" is a relative path, delimited by "/" characters, that\r
-     defines the location of a resource relative to the location of the\r
-     Struts configuration file itself.\r
--->\r
-<!ENTITY % Location "#PCDATA">\r
-\r
-\r
-<!-- A "PropName" is the name of a JavaBeans property, and must begin with\r
-     a lower case letter and contain only characters that are legal in a\r
-     Java identifier.\r
--->\r
-<!ENTITY % PropName "CDATA">\r
-\r
-\r
-<!-- A "RequestPath" is an application-relative URI path, beginning with a\r
-     slash, that identifies a mapped resource (such as a JSP page or a servlet)\r
-     within this web application.\r
--->\r
-<!ENTITY % RequestPath "CDATA">\r
-\r
-\r
-<!-- The name of a JSP bean scope within which such a form bean may be\r
-     accessed.\r
--->\r
-<!ENTITY % RequestScope "(request|session)">\r
-\r
-\r
-<!-- ========== Top Level Elements ======================================== -->\r
-\r
-\r
-<!-- The "struts-config" element is the root of the configuration file\r
-     hierarchy, and contains nested elements for all of the other\r
-     configuration settings.\r
--->\r
-<!ELEMENT struts-config (data-sources?, form-beans?, global-exceptions?, global-forwards?, action-mappings?, controller?, message-resources*, plug-in*)>\r
-<!ATTLIST struts-config  id             ID              #IMPLIED>\r
-\r
-\r
-<!-- The "data-sources" element describes a set of DataSource objects [JDBC 2.0\r
-     Standard Extension]. The individual DataSource objects are configured through\r
-     nested <data-source> elements.\r
--->\r
-<!ELEMENT data-sources (data-source*)>\r
-<!ATTLIST data-sources   id             ID              #IMPLIED>\r
-\r
-\r
-<!-- The "data-source" element describes a DataSource object [JDBC 2.0 Standard\r
-     Extension] that will be instantiated, configured, and made available as a\r
-     servlet context attribute (or "application-scope bean"). Any object can be\r
-     specified so long as it implements [javax.sql.DataSource] and can be\r
-     configured entirely from JavaBean properties. The following attributes\r
-     are required:\r
-\r
-     className       The configuration bean for this DataSource object. If\r
-                     specified, the object must be a subclass of the default\r
-                     configuration bean.\r
-                     ["org.apache.struts.config.DataSourceConfig"]\r
-\r
-     key             Servlet context attribute key under which this data source\r
-                     will be stored.  Default is the value specified by string\r
-                     constant defined by Globals.DATA_SOURCE_KEY. The application\r
-                     module prefix (if any) is appended to the key\r
-                     (${key}$prefix}).\r
-                     [org.apache.struts.Globals.DATA_SOURCE_KEY]\r
-\r
-                     NOTE: The application module prefix includes the leading\r
-                     slash, so the default datasource for a module named "foo" is\r
-                     stored under "org.apache.struts.action.DATA_SOURCE/foo".\r
-\r
-     type            Fully qualified Java class name for this data source object.\r
-                     The class must implement DataSource [javax.sql.DataSource],\r
-                     and the object must be configurable entirely from JavaBean\r
-                     properties.\r
--->\r
-<!ELEMENT data-source (set-property*)>\r
-<!ATTLIST data-source    id             ID              #IMPLIED>\r
-<!ATTLIST data-source    className      %ClassName;     #IMPLIED>\r
-<!ATTLIST data-source    key            %AttributeName; #IMPLIED>\r
-<!ATTLIST data-source    type           %ClassName;     #IMPLIED>\r
-\r
-\r
-<!-- The "form-beans" element describes the set of form bean descriptors for this\r
-     application module. The following attributes are defined:\r
-\r
-     type            Fully qualified Java class to use when instantiating\r
-                     ActionFormBean objects. If specified, the object must be a\r
-                     subclass of the default class type.\r
-                     DEPRECATED.\r
-\r
-                     WARNING:  For Struts 1.0, this value is ignored.  You\r
-                     can set the default implementation class name with the\r
-                     "formBean" initialization parameter to the Struts\r
-                     controller servlet.\r
--->\r
-<!ELEMENT form-beans (form-bean*)>\r
-<!ATTLIST form-beans     id             ID              #IMPLIED>\r
-<!ATTLIST form-beans     type           %ClassName;     #IMPLIED>\r
-\r
-\r
-<!-- The "form-bean" element describes an ActionForm subclass\r
-     [org.apache.struts.action.ActionForm] that can be referenced by an "action"\r
-     element.\r
-\r
-\r
-The "form-bean" element describes a particular form bean, which is a\r
-     JavaBean that implements the org.apache.struts.action.ActionForm\r
-     class.  The following attributes are defined:\r
-\r
-     className       The configuration bean for this form bean object. If\r
-                     specified, the object must be a subclass of the default\r
-                     configuration bean.\r
-                     ["org.apache.struts.config.FormBeanConfig"]\r
-\r
-     dynamic         If the form bean type is a  DynaActionForm subclass (that you\r
-                     created), then (and only then) set this attribute to "true".\r
-                     If the type is set to the default DynaActionForm or any\r
-                     conventional ActionForm subclass, then this attribute can be\r
-                     omitted.\r
-                     [true] if type is "org.apache.struts.action.DynaActionForm"\r
-                     [false] otherwise  DEPRECATED - THIS IS NOW DETERMINED\r
-                     DYNAMICALLY BASED ON THE SPECIFIED IMPLEMENTATION CLASS.\r
-\r
-     name            The unique identifier for this form bean. Referenced by the\r
-                     <action> element to specify which form bean to use with its\r
-                     request.\r
-\r
-     type            Fully qualified Java class name of the ActionForm subclass\r
-                     to use with this form bean.\r
--->\r
-<!ELEMENT form-bean (icon?, display-name?, description?, set-property*, form-property*)>\r
-<!ATTLIST form-bean      id             ID              #IMPLIED>\r
-<!ATTLIST form-bean      className      %ClassName;     #IMPLIED>\r
-<!ATTLIST form-bean      dynamic        %Boolean;       #IMPLIED>\r
-<!ATTLIST form-bean      name           %BeanName;      #REQUIRED>\r
-<!ATTLIST form-bean      type           %ClassName;     #REQUIRED>\r
-\r
-\r
-<!-- The "form-property" element describes a JavaBean property that can be used to\r
-     configure an instance of a DynaActionForm or a subclass thereof. This element\r
-     is only utilized when the "type" attribute of the enclosing "form-bean" element\r
-     is [org.apache.struts.action.DynaActionForm] or a subclass of DynaActionForm. If\r
-     a custom DynaActionForm subclass is used, then the "dynamic" attribute of the\r
-     enclosing <form-bean> element must be set to "true". Since Struts 1.1.\r
-\r
-     className       The configuration bean for this form property object. If\r
-                     specified, the object must be a subclass of the default\r
-                     configuration bean.\r
-                     ["org.apache.struts.config.FormPropertyConfig"]\r
-\r
-     initial         String representation of the initial value for this property.\r
-                     If not specified, primitives will be initialized to zero and\r
-                     objects initialized to the zero-argument instantiation of that\r
-                     object class.  For example, Strings will be initialized to ""\r
-\r
-\r
-     name            The name of the JavaBean property described by this element.\r
-\r
-     size            The number of array elements to create if the value of the\r
-                     "type" attribute specifies an array, but there is no value\r
-                     specified for the "initial" attribute.\r
-\r
-     type            Fully qualified Java class name of the field underlying this\r
-                     property, optionally followed by "[]" to indicate that the\r
-                     field is indexed.\r
--->\r
-<!ELEMENT form-property  (set-property*)>\r
-<!ATTLIST form-property  className      %ClassName;     #IMPLIED>\r
-<!ATTLIST form-property  initial        CDATA           #IMPLIED>\r
-<!ATTLIST form-property  name           %PropName;      #REQUIRED>\r
-<!ATTLIST form-property  size           %Integer;       #IMPLIED>\r
-<!ATTLIST form-property  type           %ClassName;     #REQUIRED>\r
-\r
-\r
-<!-- The "global-exceptions" element describes a set of exceptions that might be\r
-     thrown by an Action object. The handling of individual exception types is\r
-     configured through nested exception elements. An <action> element may\r
-     override a global exception handler by registering a local exception handler\r
-     for the same exception type. Since Struts 1.1.\r
--->\r
-<!ELEMENT global-exceptions (exception*)>\r
-<!ATTLIST global-exceptions id          ID              #IMPLIED>\r
-\r
-\r
-<!-- The "exception" element registers an ExceptionHandler for an exception type.\r
-     The following attributes are defined:\r
-\r
-    bundle           Servlet context attribute for the message resources bundle\r
-                     associated with this handler. The default attribute is the\r
-                     value specified by the string constant declared at\r
-                     Globals.MESSAGES_KEY.\r
-                     [org.apache.struts.Globals.MESSAGES_KEY]\r
-\r
-    className        The configuration bean for this ExceptionHandler object.\r
-                     If specified, className must be a subclass of the default\r
-                     configuration bean\r
-                     ["org.apache.struts.config.ExceptionConfig"]\r
-\r
-    handler          Fully qualified Java class name for this exception handler.\r
-                     ["org.apache.struts.action.ExceptionHandler"]\r
-\r
-    key              The key to use with this handler's message resource bundle\r
-                     that will retrieve the error message template for this\r
-                     exception.\r
-\r
-    path             The module-relative URI to the resource that will complete\r
-                     the request/response if this exception occurs.\r
-\r
-    scope            The context ("request" or "session") that is used to access\r
-                     the ActionError object [org.apache.struts.action.ActionError]\r
-                     for this exception.\r
-\r
-    type             Fully qualified Java class name of the exception type to\r
-                     register with this handler.\r
--->\r
-<!ELEMENT exception (icon?, display-name?, description?, set-property*)>\r
-<!ATTLIST exception      id             ID              #IMPLIED>\r
-<!ATTLIST exception      bundle         %AttributeName; #IMPLIED>\r
-<!ATTLIST exception      className      %ClassName;     #IMPLIED>\r
-<!ATTLIST exception      handler        %ClassName;     #IMPLIED>\r
-<!ATTLIST exception      key            CDATA           #REQUIRED>\r
-<!ATTLIST exception      path           %RequestPath;   #IMPLIED>\r
-<!ATTLIST exception      scope          CDATA           #IMPLIED>\r
-<!ATTLIST exception      type           %ClassName;     #REQUIRED>\r
-\r
-\r
-<!-- The "global-forwards" element describes a set of ActionForward objects\r
-     [org.apache.struts.action.ActionForward] that are available to all Action\r
-     objects as a return value. The individual ActionForwards are configured\r
-     through nested <forward> elements. An <action> element may override a global\r
-     forward by defining a local <forward> of the same name.\r
-\r
-     type            Fully qualified Java class to use when instantiating\r
-                     ActionForward objects.  If specified, the object must be a\r
-                     subclass of the default class type.\r
-                     DEPRECATED.\r
-\r
-                     WARNING:  For Struts 1.0, this value is ignored.  You\r
-                     can set the default implementation class name with the\r
-                     "forward" initialization parameter to the Struts\r
-                     controller servlet.\r
--->\r
-<!ELEMENT global-forwards (forward*)>\r
-<!ATTLIST global-forwards id            ID              #IMPLIED>\r
-<!ATTLIST global-forwards type          %ClassName;     #IMPLIED>\r
-\r
-\r
-<!-- The "forward" element describes an ActionForward that is to be made\r
-     available to an Action as a return value. An ActionForward is referenced by\r
-     a logical name and encapsulates a URI. A "forward" element may be used to\r
-     describe both global and local ActionForwards. Global forwards are available\r
-     to all the Action objects in the application module. Local forwards can be\r
-     nested within an <action> element and only available to an Action object\r
-     when it is invoked through that ActionMapping.\r
-\r
-     className       Fully qualified Java class name of ActionForward\r
-                     subclass to use for this object.\r
-                     ["org.apache.struts.action.ActionForward"]\r
-\r
-    contextRelative  Set this to "true" if, in a modular application, the path\r
-                     attribute starts with a slash "/" and should be considered\r
-                     relative to the entire web application rather than the module.\r
-                     Since Struts 1.1.\r
-                     [false]\r
-\r
-     name            The unique identifier for this forward. Referenced by the\r
-                     Action object at runtime to select - by its logical name -\r
-                     the resource that should complete the request/response.\r
-\r
-     path            The module-relative or context-relative path to the resources\r
-                     that is encapsulated by the logical name of this ActionForward.\r
-                     If the path is to be considered context-relative when used in\r
-                     a modular application, then the contextRelative attribute\r
-                     should be set to "true". This value should begin with a slash\r
-                     ("/") character.\r
-\r
-     redirect        Set to "true" if a redirect instruction should be issued to\r
-                     the user-agent so that a new request is issued for this\r
-                     forward's resource. If true,  RequestDispatcher.Redirect is\r
-                     called. If "false", RequestDispatcher.forward is called instead.\r
-                     [false]\r
--->\r
-<!ELEMENT forward (icon?, display-name?, description?, set-property*)>\r
-<!ATTLIST forward        id             ID              #IMPLIED>\r
-<!ATTLIST forward        className      %ClassName;     #IMPLIED>\r
-<!ATTLIST forward        contextRelative %Boolean;      #IMPLIED>\r
-<!ATTLIST forward        name           CDATA           #REQUIRED>\r
-<!ATTLIST forward        path           %RequestPath;   #REQUIRED>\r
-<!ATTLIST forward        redirect       %Boolean;       #IMPLIED>\r
-\r
-\r
-<!-- The "action-mappings" element describes a set of ActionMapping objects\r
-     [org.apache.struts.action.ActionMapping] that are available to process\r
-     requests matching the url-pattern our ActionServlet registered with the\r
-     container. The individual ActionMappings are configured through nested\r
-     <action> elements. The following attributes are defined:\r
-\r
-     type           Fully qualified Java class to use when instantiating\r
-                    ActionMapping objects. If specified, the object must be a\r
-                    subclass of the default class type.\r
-\r
-                    WARNING:  For Struts 1.0, this value is ignored.  You\r
-                    can set the default implementation class name with the\r
-                    "mapping" initialization parameter to the Struts\r
-                    controller servlet.\r
--->\r
-<!ELEMENT action-mappings (action*)>\r
-<!ATTLIST action-mappings id             ID              #IMPLIED>\r
-<!ATTLIST action-mappings type           %ClassName;     #IMPLIED>\r
-\r
-\r
-<!-- The "action" element describes an ActionMapping object that is to be used\r
-     to process a request for a specific module-relative URI. The following\r
-     attributes are defined:\r
-\r
-     attribute       Name of the request-scope or session-scope attribute that\r
-                     is used to access our ActionForm bean, if it is other than\r
-                     the bean's specified "name". Optional if "name" is specified,\r
-                     else not valid.\r
-\r
-     className       The fully qualified Java class name of the ActionMapping\r
-                     subclass to use for this action mapping object. Defaults to\r
-                     the type specified by the enclosing <action-mappings>\r
-                     element or to "org.apache.struts.action.ActionMapping" if\r
-                     not specified.\r
-                     ["org.apache.struts.action.ActionMapping"]\r
-\r
-     forward         Module-relative path of the servlet or other resource that\r
-                     will process this request, instead of the Action class\r
-                     specified by "type".  The path WILL NOT be processed\r
-                     through the "forwardPattern" attribute that is configured\r
-                     on the "controller" element for this application module.\r
-                     Exactly one of "forward", "include", or "type" must be\r
-                     specified.\r
-\r
-     include         Module-relative path of the servlet or other resource that\r
-                     will process this request, instead of the Action class\r
-                     specified by "type".  The path WILL NOT be processed\r
-                     through the "forwardPattern" attribute that is configured\r
-                     on the "controller" element for this application module.\r
-                     Exactly one of "forward", "include", or "type" must be\r
-                     specified.\r
-\r
-     input           Module-relative path of the action or other resource to\r
-                     which control should be returned if a validation error is\r
-                     encountered. Valid only when "name" is specified. Required\r
-                     if "name" is specified and the input bean returns\r
-                     validation errors. Optional if "name" is specified and the\r
-                     input bean does not return validation errors.\r
-\r
-     name            Name of the form bean, if any, that is associated with this\r
-                     action mapping.\r
-\r
-     path            The module-relative path of the submitted request, starting\r
-                     with a "/" character, and without the filename extension if\r
-                     extension mapping is used.\r
-\r
-                     NOTE:  Do *not* include a period in your path name,\r
-                     because it will look like a filename extension and\r
-                     cause your Action to not be located.\r
-\r
-     parameter       General-purpose configuration parameter that can be used to\r
-                     pass extra information to the Action object selected by\r
-                     this action mapping.\r
-\r
-     prefix          Prefix used to match request parameter names to ActionForm\r
-                     property names, if any. Optional if "name" is specified,\r
-                     else not allowed.\r
-\r
-     roles           Comma-delimited list of security role names that are allowed\r
-                     access to this ActionMapping object. Since Struts 1.1.\r
-\r
-     scope           The context ("request" or "session") that is used to\r
-                     access our ActionForm bean, if any.  Optional if "name" is\r
-                     specified, else not valid.\r
-\r
-     suffix          Suffix used to match request parameter names to ActionForm\r
-                     bean property names, if any. Optional if "name" is\r
-                     specified, else not valid.\r
-\r
-     type            Fully qualified Java class name of the Action subclass\r
-                     [org.apache.struts.action.Action] that will process requests\r
-                     for this action mapping. Not valid if either the "forward"\r
-                     or "include" attribute is specified.  Exactly one of\r
-                     "forward", "include", or "type" must be specified.\r
-\r
-     unknown         Set to "true" if this object should be configured as the\r
-                     default action mapping for this module. If a request does not\r
-                     match another object, it will be passed to the ActionMapping\r
-                     object with unknown set to "true". Only one ActionMapping\r
-                     can be marked as "unknown" within a module.\r
-                     [false]\r
-\r
-     validate        Set to "true" if the validate method of the ActionForm bean\r
-                     should be called prior to calling the Action object for this\r
-                     action mapping, or set to "false" if you do not want the\r
-                     validate method called.\r
-                     [true]\r
--->\r
-<!ELEMENT action (icon?, display-name?, description?, set-property*, exception*, forward*)>\r
-<!ATTLIST action         id             ID              #IMPLIED>\r
-<!ATTLIST action         attribute      %BeanName;      #IMPLIED>\r
-<!ATTLIST action         className      %ClassName;     #IMPLIED>\r
-<!ATTLIST action         forward        %RequestPath;   #IMPLIED>\r
-<!ATTLIST action         include        %RequestPath;   #IMPLIED>\r
-<!ATTLIST action         input          %RequestPath;   #IMPLIED>\r
-<!ATTLIST action         name           %BeanName;      #IMPLIED>\r
-<!ATTLIST action         parameter      CDATA           #IMPLIED>\r
-<!ATTLIST action         path           %RequestPath;   #REQUIRED>\r
-<!ATTLIST action         prefix         CDATA           #IMPLIED>\r
-<!ATTLIST action         roles          CDATA           #IMPLIED>\r
-<!ATTLIST action         scope          %RequestScope;  #IMPLIED>\r
-<!ATTLIST action         suffix         CDATA           #IMPLIED>\r
-<!ATTLIST action         type           %ClassName;     #IMPLIED>\r
-<!ATTLIST action         unknown        %Boolean;       #IMPLIED>\r
-<!ATTLIST action         validate       %Boolean;       #IMPLIED>\r
-\r
-\r
-<!-- The "controller" element describes the ControllerConfig bean\r
-     [org.apache.struts.config.ControllerConfig] that encapsulates\r
-     an application module's runtime configuration. The following\r
-     attributes are defined:\r
-\r
-     bufferSize      The size of the input buffer used when processing\r
-                     file uploads.\r
-                     [4096]\r
-\r
-     className       Fully qualified Java class name of the\r
-                     ControllerConfig subclass for this controller object.\r
-                     If specified, the object must be a subclass of the\r
-                     default class.\r
-                     ["org.apache.struts.config.ControllerConfig"]\r
-\r
-     contentType     Default content type (and optional character encoding) to\r
-                     be set on each response. May be overridden by the Action,\r
-                     JSP, or other resource to which the request is forwarded.\r
-                     ["text/html"]\r
-\r
-     debug           Debugging detail level for this module. [0]\r
-                     DEPRECATED - configure the logging detail level\r
-                     in your underlying logging implementation.\r
-\r
-     forwardPattern  Replacement pattern defining how the "path" attribute of a\r
-                     <forward> element is mapped to a context-relative URL when\r
-                     it starts with a slash (and when the contextRelative\r
-                     property is false). This value may consist of any\r
-                     combination of the following:\r
-                     - "$M" - Replaced by the module prefix of this module\r
-                     - "$P" - Replaced by the "path" attribute of the  selected\r
-                     "forward" element\r
-                     - "$$" - Causes a literal dollar sign to be rendered\r
-                     - "$x" - (Where "x" is any character not defined above)\r
-                     Silently swallowed, reserved for future use\r
-                     If not specified, the default forwardPattern is "$M$P",\r
-                     which is consistent with the previous behavior of\r
-                     forwards.  Since Struts 1.1.  ["$M$P"]\r
-\r
-     inputForward    Set to "true" if you want the "input" attribute of\r
-                     <action> elements to be the name of a local or global\r
-                     ActionForward, which will then be used to calculate the\r
-                     ultimate URL. Set to "false" (the default) to treat the\r
-                     "input" parameter of <action> elements as a\r
-                     module-relative path to the resource\r
-                     to be used as the input form. Since Struts 1.1.\r
-                     [false]\r
-\r
-     locale          Set to "true" if you want a Locale object stored in the\r
-                     user's session if not already present.\r
-                     [true]\r
-\r
-     maxFileSize     The maximum size (in bytes) of a file to be accepted as a\r
-                     file upload.  Can be expressed as a number followed by a\r
-                     "K", "M", or "G", which are interpreted to mean kilobytes,\r
-                     megabytes, or gigabytes, respectively.\r
-                     ["250M"]\r
-\r
-     memFileSize     The maximum size (in bytes) of a file whose contents will\r
-                     be retained in memory after uploading. Files larger than\r
-                     this threshold will be written to some alternative storage\r
-                     medium, typically a hard disk. Can be expressed as a number\r
-                     followed by a "K", "M", or "G", which are interpreted to\r
-                     mean kilobytes, megabytes, or gigabytes, respectively.\r
-                     ["256K"]\r
-\r
-     multipartClass  The fully qualified Java class name of the multipart\r
-                     request handler class to be used with this module.\r
-                     ["org.apache.struts.upload.CommonsMultipartRequestHandler"]\r
-\r
-     nocache         Set to "true" if you want the controller to add HTTP\r
-                     headers for defeating caching to every response from\r
-                     this module.  [false]\r
-\r
-     pagePattern     Replacement pattern defining how the "page" attribute of\r
-                     custom tags using it is mapped to a context-relative URL\r
-                     of the corresponding resource.  This value may consist of\r
-                     any combination of the following:\r
-                     - "$M" - Replaced by the module prefix of this module\r
-                     - "$P" - Replaced by the value of the "page" attribute\r
-                     - "$$" - Causes a literal dollar sign to be rendered\r
-                     - "$x" - (Where "x" is any character not defined above)\r
-                              Silently swallowed, reserved for future use\r
-                     If not specified, the default forwardPattern is\r
-                     "$M$P", which is consistent with previous hard coded\r
-                     behavior of URL evaluation for "page" attributes.\r
-                     ["$M$P"]\r
-\r
-     processorClass  The fully qualified Java class name of the\r
-                     RequestProcessor subclass to be used with this module.\r
-                     ["org.apache.struts.action.RequestProcessor"]\r
-\r
-     tempDir         Temporary working directory to use when processing\r
-                     file uploads.\r
-                     [{Directory provided by servlet container}]\r
--->\r
-<!ELEMENT controller     (set-property*)>\r
-<!ATTLIST controller     id             ID              #IMPLIED>\r
-<!ATTLIST controller     bufferSize     %Integer;       #IMPLIED>\r
-<!ATTLIST controller     className      %ClassName;     #IMPLIED>\r
-<!ATTLIST controller     contentType    CDATA           #IMPLIED>\r
-<!ATTLIST controller     debug          %Integer;       #IMPLIED>\r
-<!ATTLIST controller     forwardPattern CDATA           #IMPLIED>\r
-<!ATTLIST controller     inputForward   %Boolean;       #IMPLIED>\r
-<!ATTLIST controller     locale         %Boolean;       #IMPLIED>\r
-<!ATTLIST controller     maxFileSize    CDATA           #IMPLIED>\r
-<!ATTLIST controller     memFileSize    CDATA           #IMPLIED>\r
-<!ATTLIST controller     multipartClass %ClassName;     #IMPLIED>\r
-<!ATTLIST controller     nocache        %Boolean;       #IMPLIED>\r
-<!ATTLIST controller     pagePattern    CDATA           #IMPLIED>\r
-<!ATTLIST controller     processorClass %ClassName;     #IMPLIED>\r
-<!ATTLIST controller     tempDir        CDATA           #IMPLIED>\r
-\r
-\r
-<!-- The "message-resources" element describes a MessageResources object with\r
-     message templates for this module. The following attributes are defined:\r
-\r
-     className       The configuration bean for this message resources object.\r
-                     If specified, the object must be a subclass of the default\r
-                     configuration bean.\r
-                     ["org.apache.struts.config.MessageResourcesConfig"]\r
-\r
-     factory         Fully qualified Java class name of the\r
-                     MessageResourcesFactory subclass to use for this message\r
-                     resources object.\r
-                     ["org.apache.struts.util.PropertyMessageResourcesFactory"]\r
-\r
-     key             Servlet context attribute under which this message\r
-                     resources bundle will be stored. The default attribute is\r
-                     the value specified by the string constant at\r
-                     [Globals.MESSAGES_KEY]. The application module prefix (if\r
-                     any) is appended to the key (${key}${prefix}).\r
-                     [org.apache.struts.Globals.MESSAGES_KEY]\r
-\r
-                     NOTE: The application module  prefix includes the leading\r
-                     slash, so the default message resource bundle for a module\r
-                     named "foo" is stored under\r
-                     "org.apache.struts.action.MESSAGE/foo".\r
-\r
-     null            Set to "true" if you want our message resources to return a\r
-                     null string for unknown message keys, or "false" to return a\r
-                     message with the bad key value.\r
-\r
-     parameter       Configuration parameter to be passed to the createResources\r
-                     method of our factory object.\r
--->\r
-<!ELEMENT message-resources (set-property*)>\r
-<!ATTLIST message-resources id          ID              #IMPLIED>\r
-<!ATTLIST message-resources className   %ClassName;     #IMPLIED>\r
-<!ATTLIST message-resources factory     %ClassName;     #IMPLIED>\r
-<!ATTLIST message-resources key         %AttributeName; #IMPLIED>\r
-<!ATTLIST message-resources null        %Boolean;       #IMPLIED>\r
-<!ATTLIST message-resources parameter   CDATA           #REQUIRED>\r
-\r
-\r
-<!-- The "plug-in" element specifies the fully qualified class name of a\r
-     general-purpose application plug-in module that receives notification of\r
-     application startup and shutdown events. An instance of the specified class\r
-     is created for each element, and can be configured with nested <set-property>\r
-     elements. The following attributes are supported:\r
-\r
-     className       Fully qualified Java class name of the plug-in class; must\r
-                     implement [org.apache.struts.action.PlugIn].\r
--->\r
-<!ELEMENT plug-in           (set-property*)>\r
-<!ATTLIST plug-in           id          ID              #IMPLIED>\r
-<!ATTLIST plug-in           className   %ClassName;     #REQUIRED>\r
-\r
-\r
-<!-- ========== Subordinate Elements ====================================== -->\r
-\r
-\r
-<!-- The "description" element contains descriptive (paragraph length) text\r
-     about the surrounding element, suitable for use in GUI tools.\r
--->\r
-<!ELEMENT description    (#PCDATA)>\r
-<!ATTLIST description    id             ID              #IMPLIED>\r
-\r
-\r
-<!-- The "display-name" element contains a short (one line) description of\r
-     the surrounding element, suitable for use in GUI tools.\r
--->\r
-<!ELEMENT display-name (#PCDATA)>\r
-<!ATTLIST display-name   id             ID              #IMPLIED>\r
-\r
-\r
-<!-- The "icon" element contains a small-icon and large-icon element which\r
-     specify the location, relative to the Struts configuration file, for small\r
-     and large images used to represent the surrounding element in GUI tools.\r
--->\r
-<!ELEMENT icon           (small-icon?, large-icon?)>\r
-<!ATTLIST icon           id             ID              #IMPLIED>\r
-\r
-\r
-<!-- The "large-icon" element specifies the location, relative to the Struts\r
-     configuration file, of a resource containing a large (32x32 pixel)\r
-     icon image.\r
--->\r
-<!ELEMENT large-icon     (%Location;)>\r
-<!ATTLIST large-icon     id             ID              #IMPLIED>\r
-\r
-\r
-<!-- The "set-property" element specifies the method name and initial value of\r
-     an additional JavaBean configuration property. When the object representing\r
-     the surrounding element is instantiated, the accessor for the indicated\r
-     property is called and passed the indicated value. The "set-property"\r
-     element is especially useful when a custom subclass is used with\r
-     <data-source>, <forward>, <action>, or <plug-in> elements. The subclass\r
-     can be passed whatever other properties may be required to configure the\r
-     object without changing how the struts-config is parsed.\r
-\r
-     property        Name of the JavaBeans property whose setter method\r
-                     will be called.\r
-\r
-     value           String representation of the value to which this\r
-                     property will be set, after suitable type conversion\r
--->\r
-<!ELEMENT set-property   EMPTY>\r
-<!ATTLIST set-property   id             ID              #IMPLIED>\r
-<!ATTLIST set-property   property       %PropName;      #REQUIRED>\r
-<!ATTLIST set-property   value          CDATA           #REQUIRED>\r
-\r
-\r
-<!-- The "small-icon" element specifies the location, relative to the Struts\r
-     configuration file, of a resource containing a small (16x16 pixel)\r
-     icon image.\r
--->\r
-<!ELEMENT small-icon     (%Location;)>\r
-<!ATTLIST small-icon     id             ID              #IMPLIED>\r
-\r
diff --git a/lib/struts/struts.jar b/lib/struts/struts.jar
deleted file mode 100755 (executable)
index db32f9f..0000000
Binary files a/lib/struts/struts.jar and /dev/null differ
diff --git a/lib/struts/tiles-config.dtd b/lib/struts/tiles-config.dtd
deleted file mode 100755 (executable)
index 09ea6ec..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>\r
-<!--\r
-     DTD for the Tile Definition File, Version 1.0\r
-\r
-     To support validation of your configuration file, include the following\r
-     DOCTYPE element at the beginning (after the "xml" declaration):\r
-\r
-     <!DOCTYPE tiles-definitions PUBLIC\r
-       "-//Apache Software Foundation//DTD Tiles Configuration//EN"\r
-       "http://jakarta.apache.org/struts/dtds/tiles-config.dtd">\r
-\r
-     $Id: tiles-config.dtd,v 1.1 2002/06/25 03:23:20 craigmcc Exp $\r
--->\r
-<!ELEMENT component-definitions (definition+)>\r
-<!ELEMENT tiles-definitions (definition+)>\r
-<!ELEMENT definition (put*, putList*)>\r
-<!ATTLIST definition\r
-       name CDATA #REQUIRED\r
-       page CDATA #IMPLIED\r
-       path CDATA #IMPLIED\r
-       extends CDATA #IMPLIED\r
-       role CDATA #IMPLIED\r
-       template CDATA #IMPLIED\r
-       controllerClass CDATA #IMPLIED\r
-       controllerUrl CDATA #IMPLIED\r
->\r
-<!ELEMENT put (#PCDATA)>\r
-<!ATTLIST put\r
-       name CDATA #REQUIRED\r
-       value CDATA #IMPLIED\r
-       type (string | page | template | definition) #IMPLIED\r
-       content CDATA #IMPLIED\r
-       direct (true | false) #IMPLIED\r
->\r
-<!ELEMENT putList ( (add* | item* | bean* | putList*)+) >\r
-<!ATTLIST putList\r
-       name CDATA #REQUIRED\r
->\r
-<!ELEMENT putListElements (add | item | bean)>\r
-\r
-<!ELEMENT add (#PCDATA)>\r
-<!ATTLIST add\r
-       value CDATA #IMPLIED\r
-       type (string | page | template | definition) #IMPLIED\r
-       content CDATA #IMPLIED\r
-       direct (true | false) #IMPLIED\r
->\r
-\r
-<!ELEMENT bean (#PCDATA)>\r
-<!ATTLIST bean\r
-       classtype CDATA #REQUIRED\r
->\r
-\r
-<!ELEMENT item (#PCDATA)>\r
-<!ATTLIST item\r
-       value CDATA #REQUIRED\r
-       link CDATA #REQUIRED\r
-       classtype CDATA #IMPLIED\r
-       icon CDATA #IMPLIED\r
-       tooltip CDATA #IMPLIED\r
->\r
diff --git a/lib/struts/tiles-config_1_1.dtd b/lib/struts/tiles-config_1_1.dtd
deleted file mode 100755 (executable)
index 0c35701..0000000
+++ /dev/null
@@ -1,281 +0,0 @@
-<!--\r
-     DTD for the Tile Definition File, Version 1.1\r
-\r
-     To support validation of your configuration file, include the following\r
-     DOCTYPE element at the beginning (after the "xml" declaration):\r
-\r
-     <!DOCTYPE tiles-definitions PUBLIC\r
-       "-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"\r
-       "http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd">\r
-\r
-     $Id: tiles-config_1_1.dtd,v 1.6 2003/05/03 16:19:56 jholmes Exp $\r
--->\r
-\r
-\r
-<!-- ========== Defined Types ============================================= -->\r
-\r
-\r
-<!-- A "Boolean" is the string representation of a boolean (true or false)\r
-     variable.\r
--->\r
-<!ENTITY % Boolean "(true|false)">\r
-\r
-\r
-<!-- A "ContentType" is the content type of an attribute passed to a tile\r
-     component.\r
--->\r
-<!ENTITY % ContentType "(string|page|template|definition)">\r
-\r
-<!-- A "ClassName" is the fully qualified name of a Java class that is\r
-     instantiated to provide the functionality of the enclosing element.\r
--->\r
-<!ENTITY % ClassName "CDATA">\r
-\r
-<!-- A "RequestPath" is an application-relative URI path, beginning with a\r
-     slash, that identifies a mapped resource (such as a JSP page or a servlet)\r
-     within this web application.\r
--->\r
-<!ENTITY % RequestPath "CDATA">\r
-\r
-<!-- A "DefinitionName" is the unique identifier of a definition. This identifier\r
-     is a logical name used to reference the definition.\r
--->\r
-<!ENTITY % DefinitionName "CDATA">\r
-\r
-<!-- A "BeanName" is the identifier of a JavaBean, such as a form bean,\r
-     and also serves as the name of the corresponding scripting variable\r
-     and the name of the JSP attribute under which the bean is accessed.\r
-     Therefore, it must conform to the rules for a Java identifier.\r
--->\r
-<!ENTITY % BeanName "CDATA">\r
-\r
-<!-- A "PropName" is the name of a JavaBeans property, and must begin with\r
-     a lower case letter and contain only characters that are legal in a\r
-     Java identifier.\r
--->\r
-<!ENTITY % PropName "CDATA">\r
-\r
-<!-- A "Location" is a relative path, delimited by "/" characters, that\r
-     defines the location of a resource relative to the location of the\r
-     configuration file itself.\r
--->\r
-<!ENTITY % Location "#PCDATA">\r
-\r
-\r
-\r
-<!-- ========== Top Level Elements ======================================== -->\r
-\r
-\r
-  <!-- deprecated: use tiles-definitions instead.-->\r
-<!ELEMENT component-definitions (definition+)>\r
-\r
-<!-- The "tiles-definitions" element is the root of the configuration file\r
-     hierarchy, and contains nested elements for all of the other\r
-     configuration settings.\r
--->\r
-<!ELEMENT tiles-definitions (definition+)>\r
-\r
-<!-- The "definition" element describes a definition that can be inserted in a jsp\r
-     page. This definition is identified by its logical name. A definition allows\r
-     to define all the attributes that can be set in <insert> tag from a jsp page.\r
-\r
-     controllerClass The fully qualified Java class name of the controller\r
-                     subclass to call immediately before the tiles is inserted.\r
-                     Only one of controllerClass or controllerUrl should be\r
-                     specified.\r
-\r
-     controllerUrl   The context-relative path to the resource used as controller\r
-                     called immediately before the tiles is inserted.\r
-                     Only one of controllerClass or controllerUrl should be\r
-                     specified.\r
-\r
-     extends         Name of a definition that is used as ancestor of this definition.\r
-                     All attributes from the ancestor are available to the new\r
-                     definition. Any attribute inherited from the ancestor can\r
-                     be overloaded by providing a new value.\r
-\r
-     name            The unique identifier for this definition.\r
-\r
-     page            Same as path.\r
-\r
-     path            The context-relative path to the resource used as tiles to\r
-                     insert. This tiles will be inserted and a tiles context\r
-                     containing appropriate attributes will be available.\r
-\r
-     role            Security role name that is allowed access to this definition\r
-                     object. The definition is inserted only if the role name is\r
-                     allowed.\r
-\r
-     template        Same as path. For compatibility with the template tag library.\r
--->\r
-<!ELEMENT definition (icon?, display-name?, description?, put*, putList*)>\r
-<!ATTLIST definition       id               ID               #IMPLIED>\r
-<!ATTLIST definition       controllerClass  %ClassName;      #IMPLIED>\r
-<!ATTLIST definition       controllerUrl    %RequestPath;    #IMPLIED>\r
-<!ATTLIST definition       extends          %DefinitionName; #IMPLIED>\r
-<!ATTLIST definition       name             %DefinitionName; #REQUIRED>\r
-<!ATTLIST definition       page             %RequestPath;    #IMPLIED>\r
-<!ATTLIST definition       path             %RequestPath;    #IMPLIED>\r
-<!ATTLIST definition       role             CDATA            #IMPLIED>\r
-<!ATTLIST definition       template         %RequestPath;    #IMPLIED>\r
-\r
-\r
-<!-- The "put" element describes an attribute of a definition. It allows to\r
-     specify the tiles attribute name and its value. The tiles value can be\r
-     specified as an xml attribute, or in the body of the <put> tag.\r
-\r
-     content         Same as value. For compatibility with the template tag library.\r
-\r
-     direct          Same as type="string". For compatibility with the template\r
-                     tag library.\r
-\r
-     name            The unique identifier for this put.\r
-\r
-     type            The type of the value. Can be: string, page, template or definition.\r
-                     By default, no type is associated to a value. If a type is\r
-                     associated, it will be used as a hint to process the value\r
-                     when the attribute will be used in the inserted tiles.\r
-\r
-     value           The value associated to this tiles attribute. The value should\r
-                     be specified with this tag attribute, or in the body of the tag.\r
--->\r
-<!ELEMENT put (#PCDATA)>\r
-<!ATTLIST put              id               ID              #IMPLIED>\r
-<!ATTLIST put              content          CDATA           #IMPLIED>\r
-<!ATTLIST put              direct           %Boolean;       #IMPLIED>\r
-<!ATTLIST put              name             CDATA           #REQUIRED>\r
-<!ATTLIST put              type             %ContentType;   #IMPLIED>\r
-<!ATTLIST put              value            CDATA           #IMPLIED>\r
-\r
-\r
-<!-- The "putList" element describes a list attribute of a definition. It allows to\r
-     specify an attribute that is a java List containing any kind of values. In\r
-     the config file, the list elements are specified by nested <add>, <item> or\r
-     <putList>.\r
-\r
-     name            The unique identifier for this put list.\r
--->\r
-<!ELEMENT putList ( (add* | item* | bean* | putList*)+) >\r
-<!ATTLIST putList          id               ID              #IMPLIED>\r
-<!ATTLIST putList          name             CDATA           #REQUIRED>\r
-\r
-<!-- ========== Subordinate Elements ====================================== -->\r
-\r
-<!-- The "add" element describes an element of a list. It is similar to the\r
-     <put> element.\r
-\r
-     content         Same as value. For compatibility with the template tag library.\r
-\r
-     direct          Same as type="string". For compatibility with the template\r
-                     tag library.\r
-\r
-     type            The type of the value. Can be: string, page, template or definition.\r
-                     By default, no type is associated to a value. If a type is\r
-                     associated, it will be used as a hint to process the value\r
-                     when the attribute will be used in the inserted tiles.\r
-\r
-     value           The value associated to this tiles attribute. The value should\r
-                     be specified with this tag attribute, or in the body of the tag.\r
--->\r
-<!ELEMENT add (#PCDATA)>\r
-<!ATTLIST add              id               ID              #IMPLIED>\r
-<!ATTLIST add              content          CDATA           #IMPLIED>\r
-<!ATTLIST add              direct           %Boolean;       #IMPLIED>\r
-<!ATTLIST add              type             %ContentType;   #IMPLIED>\r
-<!ATTLIST add              value            CDATA           #IMPLIED>\r
-\r
-\r
-<!-- The "bean" element describes an element of a list. It create a bean of the\r
-     specified java classtype. This bean is initialized with appropriate nested\r
-     <set-property>.\r
-\r
-     classtype       The fully qualified classname for this bean.\r
--->\r
-<!ELEMENT bean (set-property*)>\r
-<!ATTLIST bean             id               ID              #IMPLIED>\r
-<!ATTLIST bean             classtype        %ClassName;     #REQUIRED>\r
-\r
-<!-- The "set-property" element specifies the method name and initial value of\r
-     a bean property. When the object representing\r
-     the surrounding element is instantiated, the accessor for the indicated\r
-     property is called and passed the indicated value.\r
-\r
-     property        Name of the JavaBeans property whose setter method\r
-                     will be called.\r
-\r
-     value           String representation of the value to which this\r
-                     property will be set, after suitable type conversion\r
--->\r
-<!ELEMENT set-property   EMPTY>\r
-<!ATTLIST set-property   id             ID              #IMPLIED>\r
-<!ATTLIST set-property   property       %PropName;      #REQUIRED>\r
-<!ATTLIST set-property   value          CDATA           #REQUIRED>\r
-\r
-\r
-<!-- The "item" element describes an element of a list. It create a bean added as\r
-     element to the list. Each bean can contain different properties: value, link,\r
-     icon, tooltip. These properties are to be interpreted by the jsp page using\r
-     them.\r
-     By default the bean is of type\r
-     "org.apache.struts.tiles.beans.SimpleMenuItem". This bean is useful to\r
-     create a list of beans used as menu items.\r
-\r
-     classtype       The fully qualified classtype for this bean.\r
-                     If specified, the classtype must be a subclass of the interface\r
-                     "org.apache.struts.tiles.beans.MenuItem".\r
-\r
-     icon            The bean 'icon' property.\r
-\r
-     link            The bean 'link' property.\r
-\r
-     tooltip         The bean 'tooltip' property.\r
-\r
-     value           The bean 'value' property.\r
--->\r
-<!ELEMENT item (#PCDATA)>\r
-<!ATTLIST item             id               ID              #IMPLIED>\r
-<!ATTLIST item             classtype        %ClassName;     #IMPLIED>\r
-<!ATTLIST item             icon             CDATA           #IMPLIED>\r
-<!ATTLIST item             link             CDATA           #REQUIRED>\r
-<!ATTLIST item             tooltip          CDATA           #IMPLIED>\r
-<!ATTLIST item             value            CDATA           #REQUIRED>\r
-\r
-\r
-<!-- ========== Info Elements ====================================== -->\r
-\r
-<!-- The "description" element contains descriptive (paragraph length) text\r
-     about the surrounding element, suitable for use in GUI tools.\r
--->\r
-<!ELEMENT description    (#PCDATA)>\r
-<!ATTLIST description    id             ID              #IMPLIED>\r
-\r
-\r
-<!-- The "display-name" element contains a short (one line) description of\r
-     the surrounding element, suitable for use in GUI tools.\r
--->\r
-<!ELEMENT display-name (#PCDATA)>\r
-<!ATTLIST display-name   id             ID              #IMPLIED>\r
-\r
-\r
-<!-- The "icon" element contains a small-icon and large-icon element which\r
-     specify the location, relative to the Struts configuration file, for small\r
-     and large images used to represent the surrounding element in GUI tools.\r
--->\r
-<!ELEMENT icon           (small-icon?, large-icon?)>\r
-<!ATTLIST icon           id             ID              #IMPLIED>\r
-\r
-\r
-<!-- The "large-icon" element specifies the location, relative to the Struts\r
-     configuration file, of a resource containing a large (32x32 pixel)\r
-     icon image.\r
--->\r
-<!ELEMENT large-icon     (%Location;)>\r
-<!ATTLIST large-icon     id             ID              #IMPLIED>\r
-\r
-\r
-<!-- The "small-icon" element specifies the location, relative to the Struts\r
-     configuration file, of a resource containing a small (16x16 pixel)\r
-     icon image.\r
--->\r
-<!ELEMENT small-icon     (%Location;)>\r
-<!ATTLIST small-icon     id             ID              #IMPLIED>\r
diff --git a/lib/struts/validation_1_1.dtd b/lib/struts/validation_1_1.dtd
deleted file mode 100755 (executable)
index 0d448ff..0000000
+++ /dev/null
@@ -1,251 +0,0 @@
-<!--\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
-    \r
-     Refer to the below DTD Instead:\r
-    \r
-    <!DOCTYPE form-validation PUBLIC\r
-          "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN"\r
-          "http://jakarta.apache.org/commons/dtds/validator_1_0.dtd">\r
-\r
-\r
-    $Id: validation_1_1.dtd,v 1.5 2002/11/14 20:33:13 rleland Exp $\r
--->\r
-\r
-\r
-<!--\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
-    The "form-validation" element is the root of the configuration file\r
-     hierarchy, and contains nested elements for all of the other\r
-     configuration settings.\r
--->\r
-<!ELEMENT form-validation (global*, formset+)>\r
-\r
-\r
-<!--\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
-    Global "constants" may be defined for use of other elements.\r
--->\r
-<!ELEMENT global (constant*)>\r
-\r
-\r
-<!--\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
-     The "constant" element defines a static value that can be used as\r
-     replacement parameters within "field" elements. The "constant-name" and\r
-     "constant-value" elements define the constant's reference id and\r
-     replacement value.\r
--->\r
-<!ELEMENT constant (constant-name, constant-value)>\r
-<!ELEMENT constant-name  (#PCDATA)>\r
-<!ELEMENT constant-value (#PCDATA)>\r
-\r
-\r
-<!--\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
-      The "formset" element defines a set of forms for a locale. Formsets for\r
-      specific locales can override only those fields that change. The\r
-      localization is properly scoped, so that a formset can override just the\r
-      language, or just the country, or both.\r
--->\r
-<!ELEMENT formset (constant*, form+)>\r
-<!ATTLIST formset language     CDATA #IMPLIED\r
-                  country      CDATA #IMPLIED >\r
-\r
-\r
-<!--\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
-     The "form" element defines a set of fields to be validated. The name\r
-     corresponds to the identifer the application assigns to the form. In the\r
-     case of the Struts framework, this is the attribute property from\r
-     the ActionMapping. Struts also offers the alternative of using the\r
-     the path property as the Validator form name.\r
--->\r
-<!ELEMENT form    (field+ )>\r
-<!ATTLIST form    name CDATA #REQUIRED>\r
-\r
-\r
-<!--\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
-     The "field" element defines the properties to be validated. In a\r
-     web application, a field would also correspond to a control on\r
-     a HTML form. To validate the properties, the validator works through\r
-     a JavaBean representation, like a Struts ActionForm. The field element\r
-     can accept up to 4 attributes:\r
-\r
-     property        The property on the JavaBean corresponding to this\r
-                     field element.\r
-\r
-     depends         The comma-delimited list of validators to apply against\r
-                     this field. For the field to succeed, all the\r
-                     validators must succeed.\r
-\r
-     page            The JavaBean corresponding to this form may include\r
-                     a page property. Only fields with a "page" attribute\r
-                     value that is equal to or less than the page property\r
-                     on the form JavaBean are processed. This is useful when\r
-                     using a "wizard" approach to completing a large form,\r
-                     to ensure that a page is not skipped.\r
-                     [0]\r
-\r
-     indexedListProperty\r
-                     The "indexedListProperty" is the method name that will\r
-                     return an array or a Collection used to retrieve the\r
-                     list and then loop through the list performing the\r
-                     validations for this field.\r
-\r
-     fieldOrder      [:FIXME: is this still supported?]\r
--->\r
-<!ELEMENT field   (msg?, arg0?, arg1?, arg2?, arg3?, var* )>\r
-<!ATTLIST field   property CDATA #REQUIRED\r
-                  depends  CDATA #IMPLIED\r
-                  page     CDATA #IMPLIED\r
-                  indexedListProperty CDATA #IMPLIED >\r
-\r
-\r
-<!--\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
-     The "msg" element defines a custom message key to use when one of the\r
-     validators for this field fails. Each validator has a default message\r
-     property that is used when a corresonding field msg is not specified.\r
-     Each validator applied to a field may have its own msg element.\r
-     The msg element accepts up to three attributes.\r
-\r
-      name        The name of the validator corresponding to this msg.\r
-\r
-      key         The key that will return the message template from a\r
-                  resource bundle.\r
-\r
-      resource    If set to "false", the key is taken to be a literal\r
-                  value rather than a bundle key.\r
-                  [true]\r
--->\r
-<!ELEMENT msg     EMPTY>\r
-<!ATTLIST msg     name     CDATA #IMPLIED\r
-                  key      CDATA #IMPLIED\r
-                  resource CDATA #IMPLIED >\r
-\r
-\r
-<!--\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
-     The "arg0" element defines the first replacement value to use with the\r
-     message template for this validator or this field.\r
-     The arg0 element accepts up to three attributes.\r
-\r
-      name        The name of the validator corresponding to this msg.\r
-\r
-      key         The key that will return the message template from a\r
-                  resource bundle.\r
-\r
-      resource    If set to "false", the key is taken to be a literal\r
-                  value rather than a bundle key.\r
-                  [true]\r
--->\r
-<!ELEMENT arg0    EMPTY>\r
-<!ATTLIST arg0    name     CDATA #IMPLIED\r
-                  key      CDATA #IMPLIED\r
-                  resource CDATA #IMPLIED >\r
-\r
-\r
-<!--\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
-     The "arg1" element defines the second replacement value to use with the\r
-     message template for this validator or this field.\r
-     The arg1 element accepts up to three attributes.\r
-\r
-      name        The name of the validator corresponding to this msg.\r
-\r
-      key         The key that will return the message template from a\r
-                  resource bundle.\r
-\r
-      resource    If set to "false", the key is taken to be a literal\r
-                  value rather than a bundle key.\r
-                  [true]\r
--->\r
-<!ELEMENT arg1    EMPTY>\r
-<!ATTLIST arg1    name     CDATA #IMPLIED\r
-                  key      CDATA #IMPLIED\r
-                  resource CDATA #IMPLIED >\r
-\r
-\r
-<!--\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
-     The "arg2" element defines the third replacement value to use with the\r
-     message template for this validator or this field.\r
-     The arg2 element accepts up to three attributes.\r
-\r
-      name        The name of the validator corresponding to this msg.\r
-\r
-      key         The key that will return the message template from a\r
-                  resource bundle.\r
-\r
-      resource    If set to "false", the key is taken to be a literal\r
-                  value rather than a bundle key.\r
-                  [true]\r
--->\r
-<!ELEMENT arg2    EMPTY>\r
-<!ATTLIST arg2    name     CDATA #IMPLIED\r
-                  key      CDATA #IMPLIED\r
-                  resource CDATA #IMPLIED >\r
-\r
-<!--\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
-     The "arg3" element defines the fourth replacement value to use with the\r
-     message template for this validator or this field.\r
-     The arg0 element accepts up to three attributes.\r
-\r
-      name        The name of the validator corresponding to this msg.\r
-\r
-      key         The key that will return the message template from a\r
-                  resource bundle.\r
-\r
-      resource    If set to "false", the key is taken to be a literal\r
-                  value rather than a bundle key.\r
-                  [true]\r
--->\r
-<!ELEMENT arg3    EMPTY>\r
-<!ATTLIST arg3    name     CDATA #IMPLIED\r
-                  key      CDATA #IMPLIED\r
-                  resource CDATA #IMPLIED >\r
-\r
-\r
-<!--\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
-     The "var" element can set parameters that a field may need to pass to\r
-     one of its validators, such as the minimum and maximum values in a\r
-     range validation. These parameters may also be referenced by one of the\r
-     arg? elements using a shell syntax: ${var:var-name}.\r
--->\r
-<!ELEMENT var (var-name, var-value)>\r
-\r
-\r
-\r
-<!--\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
-     The name of the var parameter to provide to a field's validators.\r
--->\r
-<!ELEMENT var-name  (#PCDATA)>\r
-\r
-\r
-\r
-<!--\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
-     The value of the var parameter to provide to a field's validators.\r
--->\r
-<!ELEMENT var-value (#PCDATA)>\r
-\r
-<!-- eof -->
\ No newline at end of file
diff --git a/lib/struts/validator-rules.xml b/lib/struts/validator-rules.xml
deleted file mode 100755 (executable)
index 4bc3ab7..0000000
+++ /dev/null
@@ -1,1044 +0,0 @@
-<!DOCTYPE form-validation PUBLIC\r
-          "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN"\r
-          "http://jakarta.apache.org/commons/dtds/validator_1_0.dtd">\r
-<!--\r
-\r
-   This file contains the default Struts Validator pluggable validator\r
-   definitions.  It should be placed somewhere under /WEB-INF and\r
-   referenced in the struts-config.xml under the plug-in element\r
-   for the ValidatorPlugIn.\r
-\r
-      <plug-in className="org.apache.struts.validator.ValidatorPlugIn">\r
-        <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,\r
-                                                  /WEB-INF/validation.xml"/>\r
-      </plug-in>\r
-\r
-   These are the default error messages associated with\r
-   each validator defined in this file.  They should be\r
-   added to your projects ApplicationResources.properties\r
-   file or you can associate new ones by modifying the\r
-   pluggable validators msg attributes in this file.\r
-\r
-   # Struts Validator Error Messages\r
-   errors.required={0} is required.\r
-   errors.minlength={0} can not be less than {1} characters.\r
-   errors.maxlength={0} can not be greater than {1} characters.\r
-   errors.invalid={0} is invalid.\r
-\r
-   errors.byte={0} must be a byte.\r
-   errors.short={0} must be a short.\r
-   errors.integer={0} must be an integer.\r
-   errors.long={0} must be a long.\r
-   errors.float={0} must be a float.\r
-   errors.double={0} must be a double.\r
-\r
-   errors.date={0} is not a date.\r
-   errors.range={0} is not in the range {1} through {2}.\r
-   errors.creditcard={0} is an invalid credit card number.\r
-   errors.email={0} is an invalid e-mail address.\r
-\r
--->\r
-\r
-<form-validation>\r
-\r
-   <global>\r
-\r
-      <validator name="required"\r
-            classname="org.apache.struts.validator.FieldChecks"\r
-               method="validateRequired"\r
-         methodParams="java.lang.Object,\r
-                       org.apache.commons.validator.ValidatorAction,\r
-                       org.apache.commons.validator.Field,\r
-                       org.apache.struts.action.ActionErrors,\r
-                       javax.servlet.http.HttpServletRequest"\r
-                  msg="errors.required">\r
-\r
-         <javascript><![CDATA[\r
-            function validateRequired(form) {\r
-                var isValid = true;\r
-                var focusField = null;\r
-                var i = 0;\r
-                var fields = new Array();\r
-                oRequired = new required();\r
-                for (x in oRequired) {\r
-                       var field = form[oRequired[x][0]];\r
-                       \r
-                    if (field.type == 'text' ||\r
-                        field.type == 'textarea' ||\r
-                        field.type == 'file' ||\r
-                        field.type == 'select-one' ||\r
-                        field.type == 'radio' ||\r
-                        field.type == 'password') {\r
-                        \r
-                        var value = '';\r
-                                               // get field's value\r
-                                               if (field.type == "select-one") {\r
-                                                       var si = field.selectedIndex;\r
-                                                       if (si >= 0) {\r
-                                                               value = field.options[si].value;\r
-                                                       }\r
-                                               } else {\r
-                                                       value = field.value;\r
-                                               }\r
-                        \r
-                        if (trim(value).length == 0) {\r
-                        \r
-                               if (i == 0) {\r
-                                   focusField = field;\r
-                               }\r
-                               fields[i++] = oRequired[x][1];\r
-                               isValid = false;\r
-                        }\r
-                    }\r
-                }\r
-                if (fields.length > 0) {\r
-                   focusField.focus();\r
-                   alert(fields.join('\n'));\r
-                }\r
-                return isValid;\r
-            }\r
-            \r
-            // Trim whitespace from left and right sides of s.\r
-            function trim(s) {\r
-                return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );\r
-            }\r
-            \r
-            ]]>\r
-         </javascript>\r
-\r
-      </validator>\r
-\r
-      <validator name="requiredif"\r
-                 classname="org.apache.struts.validator.FieldChecks"\r
-                 method="validateRequiredIf"\r
-                 methodParams="java.lang.Object,\r
-                               org.apache.commons.validator.ValidatorAction,\r
-                               org.apache.commons.validator.Field,\r
-                               org.apache.struts.action.ActionErrors,\r
-                               org.apache.commons.validator.Validator,\r
-                               javax.servlet.http.HttpServletRequest"\r
-                 msg="errors.required">\r
-      </validator>\r
-\r
-      <validator name="minlength"\r
-            classname="org.apache.struts.validator.FieldChecks"\r
-               method="validateMinLength"\r
-         methodParams="java.lang.Object,\r
-                       org.apache.commons.validator.ValidatorAction,\r
-                       org.apache.commons.validator.Field,\r
-                       org.apache.struts.action.ActionErrors,\r
-                       javax.servlet.http.HttpServletRequest"\r
-              depends=""\r
-                  msg="errors.minlength">\r
-\r
-         <javascript><![CDATA[\r
-            function validateMinLength(form) {\r
-                var isValid = true;\r
-                var focusField = null;\r
-                var i = 0;\r
-                var fields = new Array();\r
-                oMinLength = new minlength();\r
-                for (x in oMinLength) {\r
-                    var field = form[oMinLength[x][0]];\r
-                    \r
-                    if (field.type == 'text' ||\r
-                        field.type == 'textarea') {\r
-                        \r
-                        var iMin = parseInt(oMinLength[x][2]("minlength"));\r
-                        if ((trim(field.value).length > 0) && (field.value.length < iMin)) {\r
-                            if (i == 0) {\r
-                                focusField = field;\r
-                            }\r
-                            fields[i++] = oMinLength[x][1];\r
-                            isValid = false;\r
-                        }\r
-                    }\r
-                }\r
-                if (fields.length > 0) {\r
-                   focusField.focus();\r
-                   alert(fields.join('\n'));\r
-                }\r
-                return isValid;\r
-            }]]>\r
-         </javascript>\r
-\r
-      </validator>\r
-\r
-\r
-      <validator name="maxlength"\r
-            classname="org.apache.struts.validator.FieldChecks"\r
-               method="validateMaxLength"\r
-         methodParams="java.lang.Object,\r
-                       org.apache.commons.validator.ValidatorAction,\r
-                       org.apache.commons.validator.Field,\r
-                       org.apache.struts.action.ActionErrors,\r
-                       javax.servlet.http.HttpServletRequest"\r
-              depends=""\r
-                  msg="errors.maxlength">\r
-\r
-         <javascript><![CDATA[\r
-            function validateMaxLength(form) {\r
-                var isValid = true;\r
-                var focusField = null;\r
-                var i = 0;\r
-                var fields = new Array();\r
-                oMaxLength = new maxlength();\r
-                for (x in oMaxLength) {\r
-                    var field = form[oMaxLength[x][0]];\r
-                    \r
-                    if (field.type == 'text' ||\r
-                        field.type == 'textarea') {\r
-                        \r
-                        var iMax = parseInt(oMaxLength[x][2]("maxlength"));\r
-                        if (field.value.length > iMax) {\r
-                            if (i == 0) {\r
-                                focusField = field;\r
-                            }\r
-                            fields[i++] = oMaxLength[x][1];\r
-                            isValid = false;\r
-                        }\r
-                    }\r
-                }\r
-                if (fields.length > 0) {\r
-                   focusField.focus();\r
-                   alert(fields.join('\n'));\r
-                }\r
-                return isValid;\r
-            }]]>\r
-         </javascript>\r
-\r
-      </validator>\r
-\r
-\r
-      <validator name="mask"\r
-            classname="org.apache.struts.validator.FieldChecks"\r
-               method="validateMask"\r
-         methodParams="java.lang.Object,\r
-                       org.apache.commons.validator.ValidatorAction,\r
-                       org.apache.commons.validator.Field,\r
-                       org.apache.struts.action.ActionErrors,\r
-                       javax.servlet.http.HttpServletRequest"\r
-              depends=""\r
-                  msg="errors.invalid">\r
-\r
-         <javascript><![CDATA[\r
-            function validateMask(form) {\r
-                var isValid = true;\r
-                var focusField = null;\r
-                var i = 0;\r
-                var fields = new Array();\r
-                oMasked = new mask();\r
-                for (x in oMasked) {\r
-                    var field = form[oMasked[x][0]];\r
-                    \r
-                    if ((field.type == 'text' || \r
-                         field.type == 'textarea') && \r
-                         (field.value.length > 0)) {\r
-                        \r
-                        if (!matchPattern(field.value, oMasked[x][2]("mask"))) {\r
-                            if (i == 0) {\r
-                                focusField = field;\r
-                            }\r
-                            fields[i++] = oMasked[x][1];\r
-                            isValid = false;\r
-                        }\r
-                    }\r
-                }\r
-                \r
-                if (fields.length > 0) {\r
-                   focusField.focus();\r
-                   alert(fields.join('\n'));\r
-                }\r
-                return isValid;\r
-            }\r
-\r
-            function matchPattern(value, mask) {\r
-               return mask.exec(value);\r
-            }]]>\r
-         </javascript>\r
-\r
-      </validator>\r
-\r
-\r
-      <validator name="byte"\r
-            classname="org.apache.struts.validator.FieldChecks"\r
-               method="validateByte"\r
-         methodParams="java.lang.Object,\r
-                       org.apache.commons.validator.ValidatorAction,\r
-                       org.apache.commons.validator.Field,\r
-                       org.apache.struts.action.ActionErrors,\r
-                       javax.servlet.http.HttpServletRequest"\r
-              depends=""\r
-                  msg="errors.byte"\r
-       jsFunctionName="ByteValidations">\r
-\r
-         <javascript><![CDATA[\r
-            function validateByte(form) {\r
-                var bValid = true;\r
-                var focusField = null;\r
-                var i = 0;\r
-                var fields = new Array();\r
-                oByte = new ByteValidations();\r
-                for (x in oByte) {\r
-                       var field = form[oByte[x][0]];\r
-                       \r
-                    if (field.type == 'text' ||\r
-                        field.type == 'textarea' ||\r
-                        field.type == 'select-one' ||\r
-                                               field.type == 'radio') {\r
-\r
-                                               var value = '';\r
-                                               // get field's value\r
-                                               if (field.type == "select-one") {\r
-                                                       var si = field.selectedIndex;\r
-                                                       if (si >= 0) {\r
-                                                               value = field.options[si].value;\r
-                                                       }\r
-                                               } else {\r
-                                                       value = field.value;\r
-                                               }\r
-                        \r
-                        if (value.length > 0) {\r
-                            if (!isAllDigits(value)) {\r
-                                bValid = false;\r
-                                if (i == 0) {\r
-                                    focusField = field;\r
-                                }\r
-                                fields[i++] = oByte[x][1];\r
-\r
-                            } else {\r
-\r
-                                   var iValue = parseInt(value);\r
-                                   if (isNaN(iValue) || !(iValue >= -128 && iValue <= 127)) {\r
-                                       if (i == 0) {\r
-                                           focusField = field;\r
-                                       }\r
-                                       fields[i++] = oByte[x][1];\r
-                                       bValid = false;\r
-                                   }\r
-                            }\r
-                                               }\r
-                                               \r
-                    }\r
-                }\r
-                if (fields.length > 0) {\r
-                   focusField.focus();\r
-                   alert(fields.join('\n'));\r
-                }\r
-                return bValid;\r
-            }]]>\r
-         </javascript>\r
-\r
-      </validator>\r
-\r
-\r
-      <validator name="short"\r
-            classname="org.apache.struts.validator.FieldChecks"\r
-               method="validateShort"\r
-         methodParams="java.lang.Object,\r
-                       org.apache.commons.validator.ValidatorAction,\r
-                       org.apache.commons.validator.Field,\r
-                       org.apache.struts.action.ActionErrors,\r
-                       javax.servlet.http.HttpServletRequest"\r
-              depends=""\r
-                  msg="errors.short"\r
-       jsFunctionName="ShortValidations">\r
-\r
-         <javascript><![CDATA[\r
-            function validateShort(form) {\r
-                var bValid = true;\r
-                var focusField = null;\r
-                var i = 0;\r
-                var fields = new Array();\r
-                oShort = new ShortValidations();\r
-                for (x in oShort) {\r
-                       var field = form[oShort[x][0]];\r
-                       \r
-                    if (field.type == 'text' ||\r
-                        field.type == 'textarea' ||\r
-                        field.type == 'select-one' ||\r
-                        field.type == 'radio') {\r
-                        \r
-                        var value = '';\r
-                                               // get field's value\r
-                                               if (field.type == "select-one") {\r
-                                                       var si = field.selectedIndex;\r
-                                                       if (si >= 0) {\r
-                                                               value = field.options[si].value;\r
-                                                       }\r
-                                               } else {\r
-                                                       value = field.value;\r
-                                               }\r
-                        \r
-                        if (value.length > 0) {\r
-                            if (!isAllDigits(value)) {\r
-                                bValid = false;\r
-                                if (i == 0) {\r
-                                    focusField = field;\r
-                                }\r
-                                fields[i++] = oShort[x][1];\r
-\r
-                            } else {\r
-                        \r
-                                   var iValue = parseInt(value);\r
-                                   if (isNaN(iValue) || !(iValue >= -32768 && iValue <= 32767)) {\r
-                                       if (i == 0) {\r
-                                           focusField = field;\r
-                                       }\r
-                                       fields[i++] = oShort[x][1];\r
-                                       bValid = false;\r
-                                   }\r
-                              }\r
-                       }\r
-                    }\r
-                }\r
-                if (fields.length > 0) {\r
-                   focusField.focus();\r
-                   alert(fields.join('\n'));\r
-                }\r
-                return bValid;\r
-            }]]>\r
-         </javascript>\r
-\r
-      </validator>\r
-\r
-\r
-      <validator name="integer"\r
-            classname="org.apache.struts.validator.FieldChecks"\r
-               method="validateInteger"\r
-         methodParams="java.lang.Object,\r
-                       org.apache.commons.validator.ValidatorAction,\r
-                       org.apache.commons.validator.Field,\r
-                       org.apache.struts.action.ActionErrors,\r
-                       javax.servlet.http.HttpServletRequest"\r
-              depends=""\r
-                  msg="errors.integer"\r
-       jsFunctionName="IntegerValidations">\r
-\r
-         <javascript><![CDATA[\r
-            function validateInteger(form) {\r
-                var bValid = true;\r
-                var focusField = null;\r
-                var i = 0;\r
-                var fields = new Array();\r
-                oInteger = new IntegerValidations();\r
-                for (x in oInteger) {\r
-                       var field = form[oInteger[x][0]];\r
-\r
-                    if (field.type == 'text' ||\r
-                        field.type == 'textarea' ||\r
-                        field.type == 'select-one' ||\r
-                        field.type == 'radio') {\r
-                        \r
-                        var value = '';\r
-                                               // get field's value\r
-                                               if (field.type == "select-one") {\r
-                                                       var si = field.selectedIndex;\r
-                                                   if (si >= 0) {\r
-                                                           value = field.options[si].value;\r
-                                                   }\r
-                                               } else {\r
-                                                       value = field.value;\r
-                                               }\r
-                        \r
-                        if (value.length > 0) {\r
-                        \r
-                            if (!isAllDigits(value)) {\r
-                                bValid = false;\r
-                                if (i == 0) {\r
-                                       focusField = field;\r
-                                   }\r
-                                                       fields[i++] = oInteger[x][1];\r
-                                                       \r
-                            } else {\r
-                                   var iValue = parseInt(value);\r
-                                   if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) {\r
-                                       if (i == 0) {\r
-                                           focusField = field;\r
-                                       }\r
-                                       fields[i++] = oInteger[x][1];\r
-                                       bValid = false;\r
-                                  }\r
-                           }\r
-                       }\r
-                    }\r
-                }\r
-                if (fields.length > 0) {\r
-                   focusField.focus();\r
-                   alert(fields.join('\n'));\r
-                }\r
-                return bValid;\r
-            }\r
-\r
-            function isAllDigits(argvalue) {\r
-                argvalue = argvalue.toString();\r
-                var validChars = "0123456789";\r
-                var startFrom = 0;\r
-                if (argvalue.substring(0, 2) == "0x") {\r
-                   validChars = "0123456789abcdefABCDEF";\r
-                   startFrom = 2;\r
-                } else if (argvalue.charAt(0) == "0") {\r
-                   validChars = "01234567";\r
-                   startFrom = 1;\r
-                } else if (argvalue.charAt(0) == "-") {\r
-                    startFrom = 1;\r
-                }\r
-                \r
-                for (var n = startFrom; n < argvalue.length; n++) {\r
-                    if (validChars.indexOf(argvalue.substring(n, n+1)) == -1) return false;\r
-                }\r
-                return true;\r
-            }]]>\r
-         </javascript>\r
-\r
-      </validator>\r
-\r
-\r
-      <validator name="long"\r
-            classname="org.apache.struts.validator.FieldChecks"\r
-               method="validateLong"\r
-         methodParams="java.lang.Object,\r
-                       org.apache.commons.validator.ValidatorAction,\r
-                       org.apache.commons.validator.Field,\r
-                       org.apache.struts.action.ActionErrors,\r
-                       javax.servlet.http.HttpServletRequest"\r
-              depends=""\r
-                  msg="errors.long"/>\r
-\r
-\r
-      <validator name="float"\r
-            classname="org.apache.struts.validator.FieldChecks"\r
-               method="validateFloat"\r
-         methodParams="java.lang.Object,\r
-                       org.apache.commons.validator.ValidatorAction,\r
-                       org.apache.commons.validator.Field,\r
-                       org.apache.struts.action.ActionErrors,\r
-                       javax.servlet.http.HttpServletRequest"\r
-              depends=""\r
-                  msg="errors.float"\r
-       jsFunctionName="FloatValidations">\r
-\r
-         <javascript><![CDATA[\r
-            function validateFloat(form) {\r
-                var bValid = true;\r
-                var focusField = null;\r
-                var i = 0;\r
-                var fields = new Array();\r
-                oFloat = new FloatValidations();\r
-                for (x in oFloat) {\r
-                       var field = form[oFloat[x][0]];\r
-                       \r
-                    if (field.type == 'text' ||\r
-                        field.type == 'textarea' ||\r
-                        field.type == 'select-one' ||\r
-                        field.type == 'radio') {\r
-                        \r
-                       var value = '';\r
-                                               // get field's value\r
-                                               if (field.type == "select-one") {\r
-                                                       var si = field.selectedIndex;\r
-                                                       if (si >= 0) {\r
-                                                           value = field.options[si].value;\r
-                                                       }\r
-                                               } else {\r
-                                                       value = field.value;\r
-                                               }\r
-                        \r
-                        if (value.length > 0) {\r
-                            // remove '.' before checking digits\r
-                            var tempArray = value.split('.');\r
-                            var joinedString= tempArray.join('');\r
-\r
-                            if (!isAllDigits(joinedString)) {\r
-                                bValid = false;\r
-                                if (i == 0) {\r
-                                    focusField = field;\r
-                                }\r
-                                fields[i++] = oFloat[x][1];\r
-\r
-                            } else {\r
-                                   var iValue = parseFloat(value);\r
-                                   if (isNaN(iValue)) {\r
-                                       if (i == 0) {\r
-                                           focusField = field;\r
-                                       }\r
-                                       fields[i++] = oFloat[x][1];\r
-                                       bValid = false;\r
-                                   }\r
-                            }\r
-                        }\r
-                    }\r
-                }\r
-                if (fields.length > 0) {\r
-                   focusField.focus();\r
-                   alert(fields.join('\n'));\r
-                }\r
-                return bValid;\r
-            }]]>\r
-         </javascript>\r
-\r
-      </validator>\r
-\r
-\r
-      <validator name="double"\r
-            classname="org.apache.struts.validator.FieldChecks"\r
-               method="validateDouble"\r
-         methodParams="java.lang.Object,\r
-                       org.apache.commons.validator.ValidatorAction,\r
-                       org.apache.commons.validator.Field,\r
-                       org.apache.struts.action.ActionErrors,\r
-                       javax.servlet.http.HttpServletRequest"\r
-              depends=""\r
-                  msg="errors.double"/>\r
-\r
-\r
-      <validator name="date"\r
-            classname="org.apache.struts.validator.FieldChecks"\r
-               method="validateDate"\r
-         methodParams="java.lang.Object,\r
-                       org.apache.commons.validator.ValidatorAction,\r
-                       org.apache.commons.validator.Field,\r
-                       org.apache.struts.action.ActionErrors,\r
-                       javax.servlet.http.HttpServletRequest"\r
-              depends=""\r
-                  msg="errors.date"\r
-       jsFunctionName="DateValidations">\r
-\r
-         <javascript><![CDATA[\r
-            function validateDate(form) {\r
-               var bValid = true;\r
-               var focusField = null;\r
-               var i = 0;\r
-               var fields = new Array();\r
-               oDate = new DateValidations();\r
-               for (x in oDate) {\r
-                   var value = form[oDate[x][0]].value;\r
-                   var datePattern = oDate[x][2]("datePatternStrict");\r
-                   if ((form[oDate[x][0]].type == 'text' ||\r
-                        form[oDate[x][0]].type == 'textarea') &&\r
-                       (value.length > 0) &&\r
-                       (datePattern.length > 0)) {\r
-                     var MONTH = "MM";\r
-                     var DAY = "dd";\r
-                     var YEAR = "yyyy";\r
-                     var orderMonth = datePattern.indexOf(MONTH);\r
-                     var orderDay = datePattern.indexOf(DAY);\r
-                     var orderYear = datePattern.indexOf(YEAR);\r
-                     if ((orderDay < orderYear && orderDay > orderMonth)) {\r
-                         var iDelim1 = orderMonth + MONTH.length;\r
-                         var iDelim2 = orderDay + DAY.length;\r
-                         var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);\r
-                         var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);\r
-                         if (iDelim1 == orderDay && iDelim2 == orderYear) {\r
-                            dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");\r
-                         } else if (iDelim1 == orderDay) {\r
-                            dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");\r
-                         } else if (iDelim2 == orderYear) {\r
-                            dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");\r
-                         } else {\r
-                            dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");\r
-                         }\r
-                         var matched = dateRegexp.exec(value);\r
-                         if(matched != null) {\r
-                            if (!isValidDate(matched[2], matched[1], matched[3])) {\r
-                               if (i == 0) {\r
-                                   focusField = form[oDate[x][0]];\r
-                               }\r
-                               fields[i++] = oDate[x][1];\r
-                               bValid =  false;\r
-                            }\r
-                         } else {\r
-                            if (i == 0) {\r
-                                focusField = form[oDate[x][0]];\r
-                            }\r
-                            fields[i++] = oDate[x][1];\r
-                            bValid =  false;\r
-                         }\r
-                     } else if ((orderMonth < orderYear && orderMonth > orderDay)) {\r
-                         var iDelim1 = orderDay + DAY.length;\r
-                         var iDelim2 = orderMonth + MONTH.length;\r
-                         var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);\r
-                         var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);\r
-                         if (iDelim1 == orderMonth && iDelim2 == orderYear) {\r
-                             dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");\r
-                         } else if (iDelim1 == orderMonth) {\r
-                             dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");\r
-                         } else if (iDelim2 == orderYear) {\r
-                             dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");\r
-                         } else {\r
-                             dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");\r
-                         }\r
-                         var matched = dateRegexp.exec(value);\r
-                         if(matched != null) {\r
-                             if (!isValidDate(matched[1], matched[2], matched[3])) {\r
-                                 if (i == 0) {\r
-                                     focusField = form[oDate[x][0]];\r
-                                 }\r
-                                 fields[i++] = oDate[x][1];\r
-                                 bValid =  false;\r
-                              }\r
-                         } else {\r
-                             if (i == 0) {\r
-                                 focusField = form[oDate[x][0]];\r
-                             }\r
-                             fields[i++] = oDate[x][1];\r
-                             bValid =  false;\r
-                         }\r
-                     } else if ((orderMonth > orderYear && orderMonth < orderDay)) {\r
-                         var iDelim1 = orderYear + YEAR.length;\r
-                         var iDelim2 = orderMonth + MONTH.length;\r
-                         var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);\r
-                         var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);\r
-                         if (iDelim1 == orderMonth && iDelim2 == orderDay) {\r
-                             dateRegexp = new RegExp("^(\\d{4})(\\d{2})(\\d{2})$");\r
-                         } else if (iDelim1 == orderMonth) {\r
-                             dateRegexp = new RegExp("^(\\d{4})(\\d{2})[" + delim2 + "](\\d{2})$");\r
-                         } else if (iDelim2 == orderDay) {\r
-                             dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})(\\d{2})$");\r
-                         } else {\r
-                             dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{2})$");\r
-                         }\r
-                         var matched = dateRegexp.exec(value);\r
-                         if(matched != null) {\r
-                             if (!isValidDate(matched[3], matched[2], matched[1])) {\r
-                                 if (i == 0) {\r
-                                     focusField = form[oDate[x][0]];\r
-                                  }\r
-                                  fields[i++] = oDate[x][1];\r
-                                  bValid =  false;\r
-                              }\r
-                          } else {\r
-                              if (i == 0) {\r
-                                  focusField = form[oDate[x][0]];\r
-                              }\r
-                              fields[i++] = oDate[x][1];\r
-                              bValid =  false;\r
-                          }\r
-                     } else {\r
-                         if (i == 0) {\r
-                             focusField = form[oDate[x][0]];\r
-                         }\r
-                         fields[i++] = oDate[x][1];\r
-                         bValid =  false;\r
-                     }\r
-                  }\r
-               }\r
-               if (fields.length > 0) {\r
-                  focusField.focus();\r
-                  alert(fields.join('\n'));\r
-               }\r
-               return bValid;\r
-            }\r
-\r
-           function isValidDate(day, month, year) {\r
-               if (month < 1 || month > 12) {\r
-                    return false;\r
-                }\r
-                if (day < 1 || day > 31) {\r
-                    return false;\r
-                }\r
-                if ((month == 4 || month == 6 || month == 9 || month == 11) &&\r
-                    (day == 31)) {\r
-                    return false;\r
-                }\r
-                if (month == 2) {\r
-                    var leap = (year % 4 == 0 &&\r
-                               (year % 100 != 0 || year % 400 == 0));\r
-                    if (day>29 || (day == 29 && !leap)) {\r
-                        return false;\r
-                    }\r
-                }\r
-                return true;\r
-            }]]>\r
-         </javascript>\r
-\r
-      </validator>\r
-\r
-<!-- range is deprecated use intRange instead -->\r
-      <validator name="range"\r
-            classname="org.apache.struts.validator.FieldChecks"\r
-               method="validateIntRange"\r
-         methodParams="java.lang.Object,\r
-                       org.apache.commons.validator.ValidatorAction,\r
-                       org.apache.commons.validator.Field,\r
-                       org.apache.struts.action.ActionErrors,\r
-                       javax.servlet.http.HttpServletRequest"\r
-              depends="integer"\r
-                  msg="errors.range">\r
-\r
-         <javascript><![CDATA[\r
-            function validateRange(form) {\r
-                return validateIntRange(form);\r
-            }]]>\r
-         </javascript>\r
-\r
-      </validator>\r
-\r
-      <validator name="intRange"\r
-            classname="org.apache.struts.validator.FieldChecks"\r
-               method="validateIntRange"\r
-         methodParams="java.lang.Object,\r
-                       org.apache.commons.validator.ValidatorAction,\r
-                       org.apache.commons.validator.Field,\r
-                       org.apache.struts.action.ActionErrors,\r
-                       javax.servlet.http.HttpServletRequest"\r
-              depends="integer"\r
-                  msg="errors.range">\r
-\r
-         <javascript><![CDATA[\r
-            function validateIntRange(form) {\r
-                var isValid = true;\r
-                var focusField = null;\r
-                var i = 0;\r
-                var fields = new Array();\r
-                oRange = new intRange();\r
-                for (x in oRange) {\r
-                    var field = form[oRange[x][0]];\r
-                    \r
-                    if ((field.type == 'text' ||\r
-                         field.type == 'textarea') &&\r
-                        (field.value.length > 0)) {\r
-                        \r
-                        var iMin = parseInt(oRange[x][2]("min"));\r
-                        var iMax = parseInt(oRange[x][2]("max"));\r
-                        var iValue = parseInt(field.value);\r
-                        if (!(iValue >= iMin && iValue <= iMax)) {\r
-                            if (i == 0) {\r
-                                focusField = field;\r
-                            }\r
-                            fields[i++] = oRange[x][1];\r
-                            isValid = false;\r
-                        }\r
-                    }\r
-                }\r
-                if (fields.length > 0) {\r
-                    focusField.focus();\r
-                    alert(fields.join('\n'));\r
-                }\r
-                return isValid;\r
-            }]]>\r
-         </javascript>\r
-\r
-      </validator>\r
-\r
-      <validator name="floatRange"\r
-            classname="org.apache.struts.validator.FieldChecks"\r
-               method="validateFloatRange"\r
-         methodParams="java.lang.Object,\r
-                       org.apache.commons.validator.ValidatorAction,\r
-                       org.apache.commons.validator.Field,\r
-                       org.apache.struts.action.ActionErrors,\r
-                       javax.servlet.http.HttpServletRequest"\r
-              depends="float"\r
-                  msg="errors.range">\r
-\r
-         <javascript><![CDATA[\r
-            function validateFloatRange(form) {\r
-                var isValid = true;\r
-                var focusField = null;\r
-                var i = 0;\r
-                var fields = new Array();\r
-                oRange = new floatRange();\r
-                for (x in oRange) {\r
-                    var field = form[oRange[x][0]];\r
-                    \r
-                    if ((field.type == 'text' ||\r
-                         field.type == 'textarea') &&\r
-                        (field.value.length > 0)) {\r
-                        \r
-                        var fMin = parseFloat(oRange[x][2]("min"));\r
-                        var fMax = parseFloat(oRange[x][2]("max"));\r
-                        var fValue = parseFloat(field.value);\r
-                        if (!(fValue >= fMin && fValue <= fMax)) {\r
-                            if (i == 0) {\r
-                                focusField = field;\r
-                            }\r
-                            fields[i++] = oRange[x][1];\r
-                            isValid = false;\r
-                        }\r
-                    }\r
-                }\r
-                if (fields.length > 0) {\r
-                    focusField.focus();\r
-                    alert(fields.join('\n'));\r
-                }\r
-                return isValid;\r
-            }]]>\r
-         </javascript>\r
-\r
-      </validator>\r
-\r
-      <validator name="creditCard"\r
-            classname="org.apache.struts.validator.FieldChecks"\r
-               method="validateCreditCard"\r
-         methodParams="java.lang.Object,\r
-                       org.apache.commons.validator.ValidatorAction,\r
-                       org.apache.commons.validator.Field,\r
-                       org.apache.struts.action.ActionErrors,\r
-                       javax.servlet.http.HttpServletRequest"\r
-              depends=""\r
-                  msg="errors.creditcard">\r
-\r
-         <javascript><![CDATA[\r
-            function validateCreditCard(form) {\r
-                var bValid = true;\r
-                var focusField = null;\r
-                var i = 0;\r
-                var fields = new Array();\r
-                oCreditCard = new creditCard();\r
-                for (x in oCreditCard) {\r
-                    if ((form[oCreditCard[x][0]].type == 'text' ||\r
-                         form[oCreditCard[x][0]].type == 'textarea') &&\r
-                        (form[oCreditCard[x][0]].value.length > 0)) {\r
-                        if (!luhnCheck(form[oCreditCard[x][0]].value)) {\r
-                            if (i == 0) {\r
-                                focusField = form[oCreditCard[x][0]];\r
-                            }\r
-                            fields[i++] = oCreditCard[x][1];\r
-                            bValid = false;\r
-                        }\r
-                    }\r
-                }\r
-                if (fields.length > 0) {\r
-                    focusField.focus();\r
-                    alert(fields.join('\n'));\r
-                }\r
-                return bValid;\r
-            }\r
-\r
-            /**\r
-             * Reference: http://www.ling.nwu.edu/~sburke/pub/luhn_lib.pl\r
-             */\r
-            function luhnCheck(cardNumber) {\r
-                if (isLuhnNum(cardNumber)) {\r
-                    var no_digit = cardNumber.length;\r
-                    var oddoeven = no_digit & 1;\r
-                    var sum = 0;\r
-                    for (var count = 0; count < no_digit; count++) {\r
-                        var digit = parseInt(cardNumber.charAt(count));\r
-                        if (!((count & 1) ^ oddoeven)) {\r
-                            digit *= 2;\r
-                            if (digit > 9) digit -= 9;\r
-                        };\r
-                        sum += digit;\r
-                    };\r
-                    if (sum == 0) return false;\r
-                    if (sum % 10 == 0) return true;\r
-                };\r
-                return false;\r
-            }\r
-\r
-            function isLuhnNum(argvalue) {\r
-                argvalue = argvalue.toString();\r
-                if (argvalue.length == 0) {\r
-                    return false;\r
-                }\r
-                for (var n = 0; n < argvalue.length; n++) {\r
-                    if ((argvalue.substring(n, n+1) < "0") ||\r
-                        (argvalue.substring(n,n+1) > "9")) {\r
-                        return false;\r
-                    }\r
-                }\r
-                return true;\r
-            }]]>\r
-         </javascript>\r
-\r
-      </validator>\r
-\r
-\r
-      <validator name="email"\r
-            classname="org.apache.struts.validator.FieldChecks"\r
-               method="validateEmail"\r
-         methodParams="java.lang.Object,\r
-                       org.apache.commons.validator.ValidatorAction,\r
-                       org.apache.commons.validator.Field,\r
-                       org.apache.struts.action.ActionErrors,\r
-                       javax.servlet.http.HttpServletRequest"\r
-              depends=""\r
-                  msg="errors.email">\r
-\r
-         <javascript><![CDATA[\r
-            function validateEmail(form) {\r
-                var bValid = true;\r
-                var focusField = null;\r
-                var i = 0;\r
-                var fields = new Array();\r
-                oEmail = new email();\r
-                for (x in oEmail) {\r
-                    if ((form[oEmail[x][0]].type == 'text' ||\r
-                         form[oEmail[x][0]].type == 'textarea') &&\r
-                        (form[oEmail[x][0]].value.length > 0)) {\r
-                        if (!checkEmail(form[oEmail[x][0]].value)) {\r
-                            if (i == 0) {\r
-                                focusField = form[oEmail[x][0]];\r
-                            }\r
-                            fields[i++] = oEmail[x][1];\r
-                            bValid = false;\r
-                        }\r
-                    }\r
-                }\r
-                if (fields.length > 0) {\r
-                    focusField.focus();\r
-                    alert(fields.join('\n'));\r
-                }\r
-                return bValid;\r
-            }\r
-\r
-            /**\r
-             * Reference: Sandeep V. Tamhankar (stamhankar@hotmail.com),\r
-             * http://javascript.internet.com\r
-             */\r
-            function checkEmail(emailStr) {\r
-               if (emailStr.length == 0) {\r
-                   return true;\r
-               }\r
-               var emailPat=/^(.+)@(.+)$/;\r
-               var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";\r
-               var validChars="\[^\\s" + specialChars + "\]";\r
-               var quotedUser="(\"[^\"]*\")";\r
-               var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;\r
-               var atom=validChars + '+';\r
-               var word="(" + atom + "|" + quotedUser + ")";\r
-               var userPat=new RegExp("^" + word + "(\\." + word + ")*$");\r
-               var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$");\r
-               var matchArray=emailStr.match(emailPat);\r
-               if (matchArray == null) {\r
-                   return false;\r
-               }\r
-               var user=matchArray[1];\r
-               var domain=matchArray[2];\r
-               if (user.match(userPat) == null) {\r
-                   return false;\r
-               }\r
-               var IPArray = domain.match(ipDomainPat);\r
-               if (IPArray != null) {\r
-                   for (var i = 1; i <= 4; i++) {\r
-                      if (IPArray[i] > 255) {\r
-                         return false;\r
-                      }\r
-                   }\r
-                   return true;\r
-               }\r
-               var domainArray=domain.match(domainPat);\r
-               if (domainArray == null) {\r
-                   return false;\r
-               }\r
-               var atomPat=new RegExp(atom,"g");\r
-               var domArr=domain.match(atomPat);\r
-               var len=domArr.length;\r
-               if ((domArr[domArr.length-1].length < 2) ||\r
-                   (domArr[domArr.length-1].length > 3)) {\r
-                   return false;\r
-               }\r
-               if (len < 2) {\r
-                   return false;\r
-               }\r
-               return true;\r
-            }]]>\r
-         </javascript>\r
-\r
-      </validator>\r
-\r
-   </global>\r
-\r
-</form-validation>\r
diff --git a/lib/struts/validator-rules_1_1.dtd b/lib/struts/validator-rules_1_1.dtd
deleted file mode 100755 (executable)
index 2d24c8c..0000000
+++ /dev/null
@@ -1,282 +0,0 @@
-<!--\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
-    \r
-     Refer to the below DTD Instead:\r
-    \r
-    <!DOCTYPE form-validation PUBLIC\r
-          "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN"\r
-          "http://jakarta.apache.org/commons/dtds/validator_1_0.dtd">\r
-\r
-\r
-    $Id: validator-rules_1_1.dtd,v 1.6 2002/11/14 20:33:13 rleland Exp $\r
--->\r
-\r
-\r
-<!-- =================================================== Top Level Elements -->\r
-\r
-\r
-<!--\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
-     The "form-validation" element is the root of the configuration file\r
-     hierarchy, and contains nested elements for all of the other\r
-     configuration settings.\r
--->\r
-<!ELEMENT form-validation (global+)>\r
-\r
-\r
-<!--\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
-    The elements defined here are all global and must be nested within a\r
-    "global" element.\r
--->\r
-<!ELEMENT global (validator+)>\r
-\r
-\r
-<!--\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
-     The "validator" element defines what validators objects can be used with\r
-     the fields referenced by the formset elements. The validator element can\r
-     accept 4 properties: name, classname, method, methodparams, msg, depends,\r
-     and jsFunctionName.\r
--->\r
-<!ELEMENT validator (javascript?)>\r
-<!ATTLIST validator name           CDATA #REQUIRED\r
-                    classname      CDATA #REQUIRED\r
-                    method         CDATA #REQUIRED\r
-                    methodParams   CDATA #REQUIRED\r
-                    msg            CDATA #REQUIRED\r
-                    depends        CDATA #IMPLIED\r
-                    jsFunctionName CDATA #IMPLIED >\r
-\r
-\r
-<!--\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
-     The "javascript" element defines a JavaScript that can be used to perform\r
-     client-side validators.\r
--->\r
-<!ELEMENT javascript (#PCDATA)>\r
-\r
-\r
-<!--\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
-     The "constant" element defines a static value that can be used as\r
-     replacement parameters within "field" elements. The "constant-name" and\r
-     "constant-value" elements define the constant's reference id and replacement\r
-     value.\r
--->\r
-<!ELEMENT constant (constant-name, constant-value)>\r
-<!ELEMENT constant-name  (#PCDATA)>\r
-<!ELEMENT constant-value (#PCDATA)>\r
-\r
-\r
-<!--\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
-      The "formset" element defines a set of forms for a locale. Formsets for\r
-      specific locales can override only those fields that change. The\r
-      localization is properly scoped, so that a formset can override just the\r
-      language, or just the country, or both.\r
--->\r
-<!ELEMENT formset (constant*, form+)>\r
-<!ATTLIST formset language     CDATA #IMPLIED\r
-                  country      CDATA #IMPLIED >\r
-\r
-\r
-<!--\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
-     The "form" element defines a set of fields to be validated. The name\r
-     corresponds to the identifer the application assigns to the form. In the\r
-     case of the Struts framework, this is the attribute property from\r
-     the ActionMapping. Struts also offers the alternative of using the\r
-     the path property as the Validator form name.\r
--->\r
-<!ELEMENT form    (field+ )>\r
-<!ATTLIST form    name CDATA #REQUIRED>\r
-\r
-\r
-<!--\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
-     The "field" element defines the properties to be validated. In a\r
-     web application, a field would also correspond to a control on\r
-     a HTML form. To validate the properties, the validator works through\r
-     a JavaBean representation, like a Struts ActionForm. The field element\r
-     can accept up to 4 attributes:\r
-\r
-     property        The property on the JavaBean corresponding to this\r
-                     field element.\r
-\r
-     depends         The comma-delimited list of validators to apply against\r
-                     this field. For the field to succeed, all the\r
-                     validators must succeed.\r
-\r
-     page            The JavaBean corresponding to this form may include\r
-                     a page property. Only fields with a "page" attribute\r
-                     value that is equal to or less than the page property\r
-                     on the form JavaBean are processed. This is useful when\r
-                     using a "wizard" approach to completing a large form,\r
-                     to ensure that a page is not skipped.\r
-                     [0]\r
-\r
-     indexedListProperty\r
-                     The "indexedListProperty" is the method name that will\r
-                     return an array or a Collection used to retrieve the\r
-                     list and then loop through the list performing the\r
-                     validations for this field.\r
-\r
-     fieldOrder      [:FIXME: is this still supported?]\r
--->\r
-<!ELEMENT field   (msg|arg0|arg1|arg2|arg3|var)*>\r
-<!ATTLIST field   property CDATA #REQUIRED\r
-                  depends  CDATA #IMPLIED\r
-                  page     CDATA #IMPLIED\r
-                  indexedListProperty CDATA #IMPLIED >\r
-\r
-\r
-<!--\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
-     The "msg" element defines a custom message key to use when one of the\r
-     validators for this field fails. Each validator has a default message\r
-     property that is used when a corresonding field msg is not specified.\r
-     Each validator applied to a field may have its own msg element.\r
-     The msg element accepts up to three attributes.\r
-\r
-      name        The name of the validator corresponding to this msg.\r
-\r
-      key         The key that will return the message template from a\r
-                  resource bundle.\r
-\r
-      resource    If set to "false", the key is taken to be a literal\r
-                  value rather than a bundle key.\r
-                  [true]\r
--->\r
-<!ELEMENT msg     EMPTY>\r
-<!ATTLIST msg     name     CDATA #IMPLIED\r
-                  key      CDATA #IMPLIED\r
-                  resource CDATA #IMPLIED >\r
-\r
-\r
-<!--\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
-     The "arg0" element defines the first replacement value to use with the\r
-     message template for this validator or this field.\r
-     The arg0 element accepts up to three attributes.\r
-\r
-      name        The name of the validator corresponding to this msg.\r
-\r
-      key         The key that will return the message template from a\r
-                  resource bundle.\r
-\r
-      resource    If set to "false", the key is taken to be a literal\r
-                  value rather than a bundle key.\r
-                  [true]\r
--->\r
-<!ELEMENT arg0    EMPTY>\r
-<!ATTLIST arg0    name     CDATA #IMPLIED\r
-                  key      CDATA #IMPLIED\r
-                  resource CDATA #IMPLIED >\r
-\r
-\r
-<!--\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
-     The "arg1" element defines the second replacement value to use with the\r
-     message template for this validator or this field.\r
-     The arg1 element accepts up to three attributes.\r
-\r
-      name        The name of the validator corresponding to this msg.\r
-\r
-      key         The key that will return the message template from a\r
-                  resource bundle.\r
-\r
-      resource    If set to "false", the key is taken to be a literal\r
-                  value rather than a bundle key.\r
-                  [true]\r
--->\r
-<!ELEMENT arg1    EMPTY>\r
-<!ATTLIST arg1    name     CDATA #IMPLIED\r
-                  key      CDATA #IMPLIED\r
-                  resource CDATA #IMPLIED >\r
-\r
-\r
-<!--\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
-     The "arg2" element defines the third replacement value to use with the\r
-     message template for this validator or this field.\r
-     The arg2 element accepts up to three attributes.\r
-\r
-      name        The name of the validator corresponding to this msg.\r
-\r
-      key         The key that will return the message template from a\r
-                  resource bundle.\r
-\r
-      resource    If set to "false", the key is taken to be a literal\r
-                  value rather than a bundle key.\r
-                  [true]\r
--->\r
-<!ELEMENT arg2    EMPTY>\r
-<!ATTLIST arg2    name     CDATA #IMPLIED\r
-                  key      CDATA #IMPLIED\r
-                  resource CDATA #IMPLIED >\r
-\r
-<!--\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
-     The "arg3" element defines the fourth replacement value to use with the\r
-     message template for this validator or this field.\r
-     The arg0 element accepts up to three attributes.\r
-\r
-      name        The name of the validator corresponding to this msg.\r
-\r
-      key         The key that will return the message template from a\r
-                  resource bundle.\r
-\r
-      resource    If set to "false", the key is taken to be a literal\r
-                  value rather than a bundle key.\r
-                  [true]\r
--->\r
-<!ELEMENT arg3    EMPTY>\r
-<!ATTLIST arg3    name     CDATA #IMPLIED\r
-                  key      CDATA #IMPLIED\r
-                  resource CDATA #IMPLIED >\r
-\r
-\r
-<!--\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
-     The "var" element can set parameters that a field may need to pass to\r
-     one of its validators, such as the minimum and maximum values in a\r
-     range validation. These parameters may also be referenced by one of the\r
-     arg? elements using a shell syntax: ${var:var-name}.\r
--->\r
-<!ELEMENT var (var-name, var-value)>\r
-\r
-\r
-\r
-<!--\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
-     The name of the var parameter to provide to a field's validators.\r
--->\r
-<!ELEMENT var-name  (#PCDATA)>\r
-\r
-\r
-\r
-<!--\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
-    DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
-     The value of the var parameter to provide to a field's validators.\r
--->\r
-<!ELEMENT var-value (#PCDATA)>\r
-\r
-<!-- eof -->\r