Hi!
Ich versuche jetzt schon den halben Tag, ein Problemchen mit der Validierung eines XML-Files gegen ein Schema zu lösen.
Ich habe einen Application-Server, der über Maven auf Tomcat gestartet werden soll. Hierzu verwende ich das tomcat-maven-plugin
mit folgenden Goals: [c]compile org.codehaus.mojo:tomcat-maven-plugin:1.1:run[/c]
Im Server gibt es eine Spring-Config-Datei namens security.xml, die folgendermaßen beginnt (wie in den Docs vorgeschlagen):
[XML]<?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.3.xsd">
<authentication-manager alias="authenticationManager" >
<authentication-provider user-service-ref="userService"/>
</authentication-manager>
....
</beans:beans>[/XML]
(Die Leerzeichen hinter http muss man sich wegdenken. Die sind nur dafür da, dass die Forensoftware nichts umformartiert)
Beim Starten des Servers bekomme ich aber:
Im XSD für Spring-Security ist das Element 'authentication-manager' allerdings definiert.
Ich vermute, dass die falsche Schema-Definition verwendet wird. Früher war das Projekt auf Spring 2.5 (da gab es dieses Element wirklich nicht) und wird jetzt auf Spring 3.0 portiert.
Im Maven-POM sind keine Abhängigkeiten mehr zu alten Spring-2.5-Paketen vorhanden. In Eclipse wird das XML auch als richtig validiert - aber davon weiß Maven ja nichts.
Jetzt ist die Frage, welche Schema-Definition wird hier verwendet? Wie finde ich das raus? Ich habe in meiner log4j.xml Debugging für Spring eingeschaltet, aber es wird nichts brauchbares ausgegeben. Hat jemand einen Tipp?
Ich versuche jetzt schon den halben Tag, ein Problemchen mit der Validierung eines XML-Files gegen ein Schema zu lösen.
Ich habe einen Application-Server, der über Maven auf Tomcat gestartet werden soll. Hierzu verwende ich das tomcat-maven-plugin
mit folgenden Goals: [c]compile org.codehaus.mojo:tomcat-maven-plugin:1.1:run[/c]
Im Server gibt es eine Spring-Config-Datei namens security.xml, die folgendermaßen beginnt (wie in den Docs vorgeschlagen):
[XML]<?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.3.xsd">
<authentication-manager alias="authenticationManager" >
<authentication-provider user-service-ref="userService"/>
</authentication-manager>
....
</beans:beans>[/XML]
(Die Leerzeichen hinter http muss man sich wegdenken. Die sind nur dafür da, dass die Forensoftware nichts umformartiert)
Beim Starten des Servers bekomme ich aber:
Caused by: org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'authentication-manager'.
Im XSD für Spring-Security ist das Element 'authentication-manager' allerdings definiert.
Ich vermute, dass die falsche Schema-Definition verwendet wird. Früher war das Projekt auf Spring 2.5 (da gab es dieses Element wirklich nicht) und wird jetzt auf Spring 3.0 portiert.
Im Maven-POM sind keine Abhängigkeiten mehr zu alten Spring-2.5-Paketen vorhanden. In Eclipse wird das XML auch als richtig validiert - aber davon weiß Maven ja nichts.
Jetzt ist die Frage, welche Schema-Definition wird hier verwendet? Wie finde ich das raus? Ich habe in meiner log4j.xml Debugging für Spring eingeschaltet, aber es wird nichts brauchbares ausgegeben. Hat jemand einen Tipp?