15. xwork.xmlの分割

設定ファイルが肥大化すると、可読性や編集効率の低下や競合の発生頻度が上がってしまうので、サブシステムや機能単位などに分割したい時があると思います。
include要素で別のxwork設定ファイルを読み込むことができ、package要素のextends属性で他のパッケージの設定の継承をすることが出来ます。
個人的にはwebwork-defaultを継承して、システム共通のinterceptorやglobal-resultを書いたpackageを作って、末端のpackageがそれを継承して、xwork.xmlにまとめてincludeするというのが良いと思います。

構造

xwork.xml
  |->system-a.xml->system-default.xml->webwork.default.xml
  |->system-b.xml->system-default.xml->webwork-default.xml
  |->system-c.xml->system-default.xml->webwork-default.xml

xwork.xml

<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN"
     "http://www.opensymphony.com/xwork/xwork-1.0.dtd">
<xwork>
    <include file="system-a.xml"/>
    <include file="system-b.xml"/>
    <include file="system-c.xml"/>
</xwork>

system-a.xml

<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN"
     "http://www.opensymphony.com/xwork/xwork-1.0.dtd">
<xwork>
    <include file="system-default.xml"/>
    <package name="system-a" extends="system-default">
        <action />
    </package>
</xwork>

system-default.xml

<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN"
     "http://www.opensymphony.com/xwork/xwork-1.0.dtd">
<xwork>
    <include file="webwork-default.xml"/>
    <package name="system-default" extends="webwork-default">
        <result-types>
            <result-type />
        </result-types>
        <interceptors>
            <interceptor />
            <interceptor-stack />
        </interceptors>
        <default-interceptor-ref name="xxxxStack"/>
        <global-results>
            <result />
        </global-results>
    </package>
</xwork>

※ packageのname属性はそれぞれユニークにする必要があると思います。