You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Spring到3.1及以上版本出现XSD校验错误,该如何修复?

问题解决方案

根本原因

该报错和你的业务XML配置无关,是XML解析器规范兼容问题:Spring 3.1及之后版本的spring-mvc.xsd使用了XML Schema 1.1规范才允许的<xsd:all minOccurs="0">写法,而你当前使用的XML解析器仅支持XML Schema 1.0,1.0规范强制要求<xsd:all>标签的minOccurs和maxOccurs属性必须都为1,所以解析校验时触发报错。

可选择的修复方案

  • 方案1:升级XML解析器(最推荐)
    升级支持XML Schema 1.1的XML解析器即可兼容高版本Spring的xsd定义,无需修改现有业务配置。如果使用Maven管理依赖,可直接引入Xerces 2.12及以上版本:
    <dependency>
        <groupId>xerces</groupId>
        <artifactId>xercesImpl</artifactId>
        <version>2.12.2</version>
    </dependency>
    
  • 方案2:显式指定3.0版本mvc xsd
    如果你暂时无法升级XML解析器,可在Spring XML配置的schemaLocation属性中,将无版本的mvc xsd地址替换为3.0版本地址,你当前用到的<mvc:resources>和<mvc:annotation-driven>标签在3.0版本xsd中均有完整定义,完全兼容使用:
    替换前:
    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
    
    替换后:
    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
    
  • 方案3:本地托管修改后的xsd文件
    如果以上两个方案都无法落地,可以将对应版本的spring-mvc.xsd下载到项目本地资源目录,手动将其中<xsd:all minOccurs="0">的minOccurs属性改为1,再在schemaLocation中指向本地的xsd文件路径即可,不需要修改Spring官方jar包。

内容的提问来源于stack exchange,提问作者eduardog3000

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 09:36:04