Я заметил такое поведение при обработке файлов конфигурации Spring.У меня есть 2 ошибки в моем файле конфигурации:
- одна ошибка синтаксиса (форматирование хорошо), скажем неправильно закрывающий тег (пробовал с тегом "html")
- ошибка «проверки пространства имен» (проверка неверного пути к пространству имен безопасности)
Поскольку xml недействителен, я подумал, что первой ошибкой, возвращенной средой выполнения, была ошибка проверки.Это не так (весна 3.0.2 с безопасностью 3.0.2).Сначала возвращается:
Соответствующий шаблон является строгим, но не найдено никакого объявления для элемента 'http'
, затем, когда я исправил эту первую ошибку, я получил(то, что я ожидал первым):
Тип элемента "http" должен заканчиваться соответствующим конечным тегом ""
Так что можно сказать опроверка синтаксиса?Кажется, что процесс проверки синтаксиса не выполняется в качестве предварительного этапа, но проверка и проверка правильности чередуются.Каждый тег сначала проверяется, а затем проверяется.Это правильно?Это зависит от реализации?
PS: мой неисправный xml (обратите внимание на две ошибки в расположении схемы и закрывающем теге http):
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsdFIRSTERROR">
<http>
<form-login />
<http-basic />
<logout />
<intercept-url pattern="/**" access="ROLE_USER" />
</SECONDERRORhttp>
<authentication-manager>
<authentication-provider>
<user-service>
<user name="myuser" password="mysecret" authorities="ROLE_USER" />
</user-service>
</authentication-provider>
</authentication-manager>
</beans:beans>