はい、struts-config.xml
スキーマによると無効ですが、アプリが機能しているため、これは検証の問題に過ぎません。子要素の順序のコンテキストで無効である理由を詳しく説明するには-バリデーターがそれを伝えている場合...
要素タイプ「struts-config」の内容は、「(datasource?,form-beans?,global-forwards?,action-mapping?」) と一致する必要があります。
...つまり、たとえば(簡潔にするために例を減らします):
<struts-config>
<datasource>...</datasource>
<form-beans>...</form-beans>
<global-forwards>...</global-forwards>
<action-mapping>...</action-mapping>
</struts-config>
...スキーマの有効な実装ですが、たとえば...
<struts-config>
<datasource>...</datasource>
<global-forwards>...</global-forwards>
<form-beans>...</form-beans>
<action-mapping>...</action-mapping>
</struts-config>
...ではありません。ところで、これは、問題の Struts 1.0 DTD が言うという事実によるものです...
<!ELEMENT struts-config (data-sources?,form-beans?,global-forwards?,action-mappings?)>
...そしてそれによって、子要素の特定の順序が要求されます。これは、DTD の作成者が不注意で行うものではなく、次の事実によるものです。
DTD で発生制約を使用して順序付けられていないリストを宣言すると、多くの場合、長くて複雑に見える宣言になります。1