春天的xml问题
Posted
技术标签:
【中文标题】春天的xml问题【英文标题】:Spring xml problem 【发布时间】:2011-10-20 01:24:26 【问题描述】:我正在尝试编写一个简单的 Spring AOP 应用程序,但我的 xml 配置有问题。
我的 xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop">
<bean id="audience" class="springaop.Audience">
</bean>
<bean id="sam" class="springaop.Singer">
<property name="id" value="1"></property>
</bean>
<aop:config>
<aop:aspect ref="audience">
<aop:before pointcut="* springaop.Singer.perform(..)"
method="takeSeats"></aop:before>
</aop:aspect>
</aop:config>
</beans>
我收到此警告和异常:
警告:忽略 XML 验证警告 org.xml.sax.SAXParseException: SchemaLocation: schemaLocation value = 'http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http: //www.springframework.org/schema/aop' 必须有偶数个 URI。 异常:来自类路径资源 [aop-conf.xml] 的 XML 文档中的第 18 行无效;嵌套异常是 org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: 匹配通配符是严格的,但找不到元素“aop:config”的声明。另外,我无法理解 xmlns
【问题讨论】:
【参考方案1】:将 XML 顶部的 <beans
声明更改为如下所示:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
您只是添加了这个“http://www.springframework.org/schema/aop/spring-aop-3.0.xsd”。 xsi:schemaLocation
属性只是一堆对。每对中的第一个是模式 URI,第二个是可以找到模式的 URL。您可以将其视为一个映射:键,然后是值。
【讨论】:
【参考方案2】:xsi:schemaLocation
属性必须有偶数个 URI。每对都将命名空间 URI 与 XSD 的位置相关联。你的xsi:schemaLocation
包含三个URI,所以它是无效的。这就是信息告诉你的。
您需要为http://www.springframework.org/schema/aop
提供XSD的位置
【讨论】:
以上是关于春天的xml问题的主要内容,如果未能解决你的问题,请参考以下文章