0
我注意到在彈簧配置文件處理中的這種行爲。
我在我的配置文件2個錯誤:
彈簧配置文件驗證
- 一個語法(井)中的錯誤,說一個拼寫錯誤的關閉標籤(tryed與 「HTML」 標籤)
- 一個 「命名空間」(驗證)錯誤(tryed一個錯誤的道路安全命名空間)
由於XML是無效的,我認爲第一個錯誤是運行時environement返回了驗證錯誤。
這是不正確的(彈簧3.0.2與安全3.0.2)。
它首先回報:
匹配通配符是嚴格的,但沒有聲明可以爲元素的「http」
然後,當我固定的這第一個錯誤,我得到的發現(我期待作爲第一):
0被終止元素類型的「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>