Да, struts-config.xml
является недопустимым в соответствии со схемой, но поскольку приложение работает, это только проблема проверки. Чтобы раскрыть , почему это недопустимо в контексте порядка дочерних элементов - Если валидатор говорит вам, что ...
Содержимое типа элемента "struts-config" должно совпадать
«(DataSource?, Форм-бобы? Глобальные-вперед?, Действие картированию?")
... тогда это означает, что, например, (сокращенные примеры для краткости):
<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