XWork2 introduce the notion of package to group related action under the same namepsace. Its much like how java package being used to group related class. Just that XWork2 package supports multiple inheritance.

Namespace

XWork2 package defines the namespace its containing action is under. Without this attribute specified, the action will be automatically considered to be under the default (empty) namespace.

<xwork>
   ...
   <package name="default" namespace="/myNamespace">
     ...
   </package>
   ...
 </xwork>

Abstraction

An action can be abstract, meaning that it will not be recognized by XWork2 but it does exists. This mean to identify action whose sole purpose tends to be a convenience for other action to subclass.

<xwork>
   ...
   <package name="default-abstract" abstract="true">
     ...
   </package>

   <package name="default" extends="default-abstract">
     ...
     <!-- more specific action here.  -->
   </package>
   ...
 </xwork>

Extendability

XWork2 action support inheritance such that an action could extend form anohter parent action. XWork2 action could extends off multiple action. The extending action will inherit all its parent package
s action, interceptor, result-types etc.

<xwork>
   ...
   <package name="default" namespace="/myNamespace" extends="parent1-default, parent2-default">
     ...
   </package>
   ...
 </xwork>