1:--- struts-config_1_2.dtd  2006-09-28 13:02:03.583147300 -0700
   2:+++ struts-config_1_3.dtd  2006-09-28 13:01:57.348532900 -0700
   3:@@ -5,8 +5,8 @@
   4:      DOCTYPE element at the beginning (after the "xml" declaration):
   5: 
   6:      <!DOCTYPE struts-config PUBLIC
   7:-       "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
   8:-       "http://struts.apache.org/dtds/struts-config_1_2.dtd">
   9:+       "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
  10:+       "http://struts.apache.org/dtds/struts-config_1_3.dtd">
  11: 
  12:      $Id$
  13: -->
  14:@@ -82,53 +82,9 @@
  15:      hierarchy, and contains nested elements for all of the other
  16:      configuration settings.
  17: -->
  18:-<!ELEMENT struts-config (display-name?, description?, data-sources?, form-beans?, global-exceptions?, global-forwards?, action-mappings?, controller?, message-resources*, plug-in*)>
  19:+<!ELEMENT struts-config (display-name?, description?, form-beans?, global-exceptions?, global-forwards?, action-mappings?, controller?, message-resources*, plug-in*)>
  20: <!ATTLIST struts-config  id             ID              #IMPLIED>
  21: 
  22:-
  23:-<!-- The "data-sources" element describes a set of DataSource objects [JDBC 2.0
  24:-     Standard Extension]. The individual DataSource objects are configured through
  25:-     nested <data-source> elements.
  26:--->
  27:-<!ELEMENT data-sources (data-source*)>
  28:-<!ATTLIST data-sources   id             ID              #IMPLIED>
  29:-
  30:-
  31:-<!-- The "data-source" element describes a DataSource object [JDBC 2.0 Standard
  32:-     Extension] that will be instantiated, configured, and made available as a
  33:-     servlet context attribute (or "application-scope bean"). Any object can be
  34:-     specified so long as it implements [javax.sql.DataSource] and can be
  35:-     configured entirely from JavaBean properties. The following attributes
  36:-     are required:
  37:-
  38:-     className       The configuration bean for this DataSource object. If
  39:-                     specified, the object must be a subclass of the default
  40:-                     configuration bean.
  41:-                     ["org.apache.struts.config.DataSourceConfig"]
  42:-
  43:-     key             Servlet context attribute key under which this data source
  44:-                     will be stored.  Default is the value specified by string
  45:-                     constant defined by Globals.DATA_SOURCE_KEY. The application
  46:-                     module prefix (if any) is appended to the key
  47:-                     (${key}$prefix}).
  48:-                     [org.apache.struts.Globals.DATA_SOURCE_KEY]
  49:-
  50:-                     NOTE: The application module prefix includes the leading
  51:-                     slash, so the default datasource for a module named "foo" is
  52:-                     stored under "org.apache.struts.action.DATA_SOURCE/foo".
  53:-
  54:-     type          Fully qualified Java class name for this data source object.
  55:-                     The class must implement DataSource [javax.sql.DataSource],
  56:-                     and the object must be configurable entirely from JavaBean
  57:-                     properties.
  58:--->
  59:-<!ELEMENT data-source (set-property*)>
  60:-<!ATTLIST data-source    id             ID              #IMPLIED>
  61:-<!ATTLIST data-source    className      %ClassName;     #IMPLIED>
  62:-<!ATTLIST data-source    key            %AttributeName; #IMPLIED>
  63:-<!ATTLIST data-source    type           %ClassName;     #REQUIRED>
  64:-
  65:-
  66: <!-- The "form-beans" element describes the set of form bean descriptors for this
  67:      module. The following attributes are defined:
  68: 
  69:@@ -160,19 +116,25 @@
  70:                      configuration bean.
  71:                      ["org.apache.struts.config.FormBeanConfig"]
  72: 
  73:+     extends         The name of the form bean that this bean will
  74:+                     inherit configuration information from.
  75:+
  76:      name            The unique identifier for this form bean. Referenced by the
  77:                      <action> element to specify which form bean to use with its
  78:                      request.
  79:-
  80:+                     
  81:      type            Fully qualified Java class name of the ActionForm subclass
  82:                      to use with this form bean.
  83:+                     
  84:+     enhanced        Reserved for future use.
  85: -->
  86: <!ELEMENT form-bean (icon?, display-name?, description?, set-property*, form-property*)>
  87: <!ATTLIST form-bean      id             ID              #IMPLIED>
  88: <!ATTLIST form-bean      className      %ClassName;     #IMPLIED>
  89:-<!ATTLIST form-bean      dynamic        %Boolean;       #IMPLIED>
  90:+<!ATTLIST form-bean      enhanced       %Boolean;       #IMPLIED>
  91:+<!ATTLIST form-bean      extends        %BeanName;      #IMPLIED>
  92: <!ATTLIST form-bean      name           %BeanName;      #REQUIRED>
  93:-<!ATTLIST form-bean      type           %ClassName;     #REQUIRED>
  94:+<!ATTLIST form-bean      type           %ClassName;     #IMPLIED>
  95: 
  96: 
  97: <!-- The "form-property" element describes a JavaBean property that can be used to
  98:@@ -192,9 +154,18 @@
  99:                      objects initialized to the zero-argument instantiation of that
 100:                      object class.  For example, Strings will be initialized to ""
 101: 
 102:-
 103:      name            The name of the JavaBean property described by this element.
 104: 
 105:+     reset           The flag that indicates when this property should be reset 
 106:+                     to its "initial" value when the form's "reset()" method is 
 107:+                     called.  If this is set to "true", the property is always 
 108:+                     reset when "reset()" is called.  This can also be set to 
 109:+                     one or more HTTP methods, such as GET or POST. In such a 
 110:+                     case, the property will be reset only when the HTTP method 
 111:+                     used for the request being processed is included in this 
 112:+                     attribute's value(s).  Multiple HTTP methods can be 
 113:+                     specified by separating them with whitespace or commas.
 114:+
 115:      size            The number of array elements to create if the value of the
 116:                      "type" attribute specifies an array, but there is no value
 117:                      specified for the "initial" attribute.
 118:@@ -207,6 +178,7 @@
 119: <!ATTLIST form-property  className      %ClassName;     #IMPLIED>
 120: <!ATTLIST form-property  initial        CDATA           #IMPLIED>
 121: <!ATTLIST form-property  name           %PropName;      #REQUIRED>
 122:+<!ATTLIST form-property  reset          %Boolean;       #IMPLIED>
 123: <!ATTLIST form-property  size           %Integer;       #IMPLIED>
 124: <!ATTLIST form-property  type           %ClassName;     #REQUIRED>
 125: 
 126:@@ -235,6 +207,9 @@
 127:                      configuration bean
 128:                      ["org.apache.struts.config.ExceptionConfig"]
 129: 
 130:+    extends          The name of the exception handler that this 
 131:+                     will inherit configuration information from.
 132:+
 133:     handler          Fully qualified Java class name for this exception handler.
 134:                      ["org.apache.struts.action.ExceptionHandler"]
 135: 
 136:@@ -246,8 +221,9 @@
 137:                      the request/response if this exception occurs.
 138: 
 139:     scope            The context ("request" or "session") that is used to access
 140:-                     the ActionError object [org.apache.struts.action.ActionError]
 141:-                     for this exception.
 142:+                     the ActionMessage object 
 143:+                     [org.apache.struts.action.ActionMessage] for this 
 144:+                     exception.
 145: 
 146:     type             Fully qualified Java class name of the exception type to
 147:                      register with this handler.
 148:@@ -256,8 +232,9 @@
 149: <!ATTLIST exception      id             ID              #IMPLIED>
 150: <!ATTLIST exception      bundle         %AttributeName; #IMPLIED>
 151: <!ATTLIST exception      className      %ClassName;     #IMPLIED>
 152:+<!ATTLIST exception      extends        %ClassName;     #IMPLIED>
 153: <!ATTLIST exception      handler        %ClassName;     #IMPLIED>
 154:-<!ATTLIST exception      key            CDATA           #REQUIRED>
 155:+<!ATTLIST exception      key            CDATA           #IMPLIED>
 156: <!ATTLIST exception      path           %RequestPath;   #IMPLIED>
 157: <!ATTLIST exception      scope          CDATA           #IMPLIED>
 158: <!ATTLIST exception      type           %ClassName;     #REQUIRED>
 159:@@ -291,16 +268,19 @@
 160:      nested within an <action> element and only available to an Action object
 161:      when it is invoked through that ActionMapping.
 162: 
 163:+     catalog         The name of a commons-chain catalog in which to look up
 164:+                     a command to be executed as part of servicing this request.
 165:+                     Only meaningful if "command" is also specified.
 166:+
 167:      className       Fully qualified Java class name of ActionForward
 168:                      subclass to use for this object.
 169:                      ["org.apache.struts.action.ActionForward"]
 170: 
 171:-    contextRelative  Set this to "true" if, in a modular application, the path
 172:-                     attribute starts with a slash "/" and should be considered
 173:-                     relative to the entire web application rather than the module.
 174:-                     Since Struts 1.1.
 175:-                     DEPRECATED.
 176:-                     [false]
 177:+     command         The name of a commons-chain command which should be looked up
 178:+                     and executed as part of servicing this request.
 179:+
 180:+     extends         The name of the forward configuration that this 
 181:+                     will inherit configuration information from.
 182: 
 183:      module          The module prefix to use with this path. This value should
 184:                      begin with a slash ("/").
 185:@@ -309,12 +289,9 @@
 186:                      Action object at runtime to select - by its logical name -
 187:                      the resource that should complete the request/response.
 188: 
 189:-     path            The module-relative or context-relative path to the resources
 190:-                     that is encapsulated by the logical name of this ActionForward.
 191:-                     If the path is to be considered context-relative when used in
 192:-                     a modular application, then the contextRelative attribute
 193:-                     should be set to "true". This value should begin with a slash
 194:-                     ("/") character.
 195:+     path            The module-relative path to the resources that is 
 196:+                     encapsulated by the logical name of this ActionForward.
 197:+                     This value should begin with a slash ("/") character.
 198: 
 199:      redirect        Set to "true" if a redirect instruction should be issued to
 200:                      the user-agent so that a new request is issued for this
 201:@@ -324,11 +301,13 @@
 202: -->
 203: <!ELEMENT forward (icon?, display-name?, description?, set-property*)>
 204: <!ATTLIST forward        id             ID              #IMPLIED>
 205:+<!ATTLIST forward        catalog        CDATA           #IMPLIED>
 206: <!ATTLIST forward        className      %ClassName;     #IMPLIED>
 207:-<!ATTLIST forward        contextRelative %Boolean;      #IMPLIED>
 208:+<!ATTLIST forward        command        CDATA           #IMPLIED>
 209:+<!ATTLIST forward        extends        CDATA           #IMPLIED>
 210: <!ATTLIST forward        module         %RequestPath;   #IMPLIED>
 211: <!ATTLIST forward        name           CDATA           #REQUIRED>
 212:-<!ATTLIST forward        path           %RequestPath;   #REQUIRED>
 213:+<!ATTLIST forward        path           %RequestPath;   #IMPLIED>
 214: <!ATTLIST forward        redirect       %Boolean;       #IMPLIED>
 215: 
 216: 
 217:@@ -361,6 +340,17 @@
 218:                      the bean's specified "name". Optional if "name" is specified,
 219:                      else not valid.
 220: 
 221:+     cancellable     Set to "true" if the Action can be cancelled. By default,
 222:+                     when an Action is cancelled, validation is bypassed
 223:+                     and the Action should not execute the business operation.
 224:+                     If a request tries to cancel an Action when cancellable
 225:+                    is not set, a "InvalidCancelException" is thrown.
 226:+                     [false]
 227:+
 228:+     catalog         The name of a commons-chain catalog in which to look up
 229:+                     a command to be executed as part of servicing this request.
 230:+                     Only meaningful if "command" is also specified.
 231:+
 232:      className       The fully qualified Java class name of the ActionMapping
 233:                      subclass to use for this action mapping object. Defaults to
 234:                      the type specified by the enclosing <action-mappings>
 235:@@ -368,6 +358,12 @@
 236:                      not specified.
 237:                      ["org.apache.struts.action.ActionMapping"]
 238: 
 239:+     command         The name of a commons-chain command which should be looked up
 240:+                     and executed as part of servicing this request.  
 241:+
 242:+     extends         The path of the action mapping configuration that this 
 243:+                     will inherit configuration information from.
 244:+
 245:      forward         Module-relative path of the servlet or other resource that
 246:                      will process this request, instead of the Action class
 247:                      specified by "type".  The path WILL NOT be processed
 248:@@ -394,6 +390,10 @@
 249:      name            Name of the form bean, if any, that is associated with this
 250:                      action mapping.
 251: 
 252:+     parameter       General-purpose configuration parameter that can be used to
 253:+                     pass extra information to the Action object selected by
 254:+                     this action mapping.
 255:+
 256:      path            The module-relative path of the submitted request, starting
 257:                      with a "/" character, and without the filename extension if
 258:                      extension mapping is used.
 259:@@ -402,10 +402,6 @@
 260:                      because it will look like a filename extension and
 261:                      cause your Action to not be located.
 262: 
 263:-     parameter       General-purpose configuration parameter that can be used to
 264:-                     pass extra information to the Action object selected by
 265:-                     this action mapping.
 266:-
 267:      prefix          Prefix used to match request parameter names to ActionForm
 268:                      property names, if any. Optional if "name" is specified,
 269:                      else not allowed.
 270:@@ -443,7 +439,11 @@
 271: <!ELEMENT action (icon?, display-name?, description?, set-property*, exception*, forward*)>
 272: <!ATTLIST action         id             ID              #IMPLIED>
 273: <!ATTLIST action         attribute      %BeanName;      #IMPLIED>
 274:+<!ATTLIST action         cancellable    %Boolean;       #IMPLIED>
 275:+<!ATTLIST action         catalog        CDATA           #IMPLIED>
 276: <!ATTLIST action         className      %ClassName;     #IMPLIED>
 277:+<!ATTLIST action         command        CDATA           #IMPLIED>
 278:+<!ATTLIST action         extends        %RequestPath;   #IMPLIED>
 279: <!ATTLIST action         forward        %RequestPath;   #IMPLIED>
 280: <!ATTLIST action         include        %RequestPath;   #IMPLIED>
 281: <!ATTLIST action         input          %RequestPath;   #IMPLIED>
 282:@@ -468,12 +468,19 @@
 283:                      file uploads.
 284:                      [4096]
 285: 
 286:+     catalog         Name of the catalog to use when processing requests
 287:+                     for this module.
 288:+                     [struts]
 289:+
 290:      className       Fully qualified Java class name of the
 291:                      ControllerConfig subclass for this controller object.
 292:                      If specified, the object must be a subclass of the
 293:                      default class.
 294:                      ["org.apache.struts.config.ControllerConfig"]
 295: 
 296:+     command         Name of the command to execute to process a request.
 297:+                     [servlet-standard]
 298:+
 299:      contentType     Default content type (and optional character encoding) to
 300:                      be set on each response. May be overridden by the Action,
 301:                      JSP, or other resource to which the request is forwarded.
 302:@@ -545,16 +552,19 @@
 303: 
 304:      processorClass  The fully qualified Java class name of the
 305:                      RequestProcessor subclass to be used with this module.
 306:-                     ["org.apache.struts.action.RequestProcessor"]
 307:+                     ["org.apache.struts.chain.ComposableRequestProcessor"]
 308: 
 309:      tempDir         Temporary working directory to use when processing
 310:                      file uploads.
 311:                      [{Directory provided by servlet container}]
 312:+
 313: -->
 314: <!ELEMENT controller     (set-property*)>
 315: <!ATTLIST controller     id             ID              #IMPLIED>
 316: <!ATTLIST controller     bufferSize     %Integer;       #IMPLIED>
 317:+<!ATTLIST controller     catalog        CDATA           #IMPLIED>
 318: <!ATTLIST controller     className      %ClassName;     #IMPLIED>
 319:+<!ATTLIST controller     command        CDATA           #IMPLIED>
 320: <!ATTLIST controller     contentType    CDATA           #IMPLIED>
 321: <!ATTLIST controller     forwardPattern CDATA           #IMPLIED>
 322: <!ATTLIST controller     inputForward   %Boolean;       #IMPLIED>
 323:@@ -661,19 +671,32 @@
 324:      the surrounding element is instantiated, the accessor for the indicated
 325:      property is called and passed the indicated value. The "set-property"
 326:      element is especially useful when a custom subclass is used with
 327:-     <data-source>, <forward>, <action>, or <plug-in> elements. The subclass
 328:+     <forward>, <action>, or <plug-in> elements. The subclass
 329:      can be passed whatever other properties may be required to configure the
 330:      object without changing how the struts-config is parsed.
 331: 
 332:+    Since Struts 1.3, an alternate syntax is supported.  By using
 333:+    the "key" attribute instead of the "property" attribute, you can set 
 334:+    arbitrary string properties on the Config object which is populated
 335:+    based on the containing element.   NOTE: the "key" attribute is NOT
 336:+  supported for <set-property> inside a <plug-in> element.
 337:+
 338:      property        Name of the JavaBeans property whose setter method
 339:-                     will be called.
 340:+                     will be called. Exactly one of
 341:+                     "property" or "key" must be specified.
 342:+
 343:+     key             Where supported, the key which will be used to store
 344:+                     the specified value in the given config object.  Exactly one of
 345:+                     "property" or "key" must be specified.
 346: 
 347:      value           String representation of the value to which this
 348:                      property will be set, after suitable type conversion
 349:+
 350: -->
 351: <!ELEMENT set-property   EMPTY>
 352: <!ATTLIST set-property   id             ID              #IMPLIED>
 353:-<!ATTLIST set-property   property       %PropName;      #REQUIRED>
 354:+<!ATTLIST set-property   property       %PropName;      #IMPLIED>
 355:+<!ATTLIST set-property   key            CDATA           #IMPLIED>
 356: <!ATTLIST set-property   value          CDATA           #REQUIRED>
 357: 
 358: