春天的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 顶部的 &lt;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问题的主要内容,如果未能解决你的问题,请参考以下文章

xml 春天的哨兵

xml 春天的安全

xml 春天缓存哨兵

xml 春天日期转换器

xml 春天靴子码头pom设置

骆驼不是春天开始的