为什么Spring Integration有多个XML模式,我应该使用哪一个?

时间:2012-06-21 12:09:22

标签: spring xsd spring-integration

要在Spring XML配置文件中使用Spring Integration,我需要声明si命名空间,并提供XML Schema的架构位置:

<?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:int="http://www.springframework.org/schema/integration"
   xsi:schemaLocation="http://www.springframework.org/schema/integration
      http://www.springframework.org/schema/integration/spring-integration.xsd
      http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans.xsd">

但是,根据文档,有两种模式可供选择:

  

从现在开始,用户必须始终声明最新的XML架构   (目前版本2.1)。或者,他们可以使用无版本   架构。通常,最好的选择是使用无版本的命名空间,   因为这些将自动使用最新的Spring版本   集成。

来自:http://static.springsource.org/spring-integration/reference/htmlsingle/#2.1-schema-updated

为什么spring-integration.xsdspring-integration-2.1.xsd都有?我检查了两个,后者几乎是前者的三倍。

那么为什么文档说使用无版本模式更好?使用其中一个或另一个会有什么后果?或者它只是spring-integration.xsdspring-integration-2.1.xsd不同的错误?

1 个答案:

答案 0 :(得分:6)

你不应该看看互联网上托管的模式;模式分布在罐子里; META-INF下还有一个映射文件。

如您所见,在下面,我们始终将无版本架构映射到当前架构;所以我们建议在应用程序配置中始终使用无版本模式,否则每次升级时都必须更改文件;例如,2.2将不会与2.1模式一起运行,但是,如果您在模式上不使用任何版本,框架将负责使用正确的模式。

互联网上的无版本架构是旧的1.0架构;我们需要弄清楚我们如何改变它,但由于种种原因,这并不简单,

http\://www.springframework.org/schema/integration/spring-integration-1.0.xsd=org/springframework/integration/config/xml/spring-integration-1.0.xsd http\://www.springframework.org/schema/integration/spring-integration-2.0.xsd=org/springframework/integration/config/xml/spring-integration-2.0.xsd http\://www.springframework.org/schema/integration/spring-integration-2.1.xsd=org/springframework/integration/config/xml/spring-integration-2.1.xsd http\://www.springframework.org/schema/integration/spring-integration.xsd=org/springframework/integration/config/xml/spring-integration-2.1.xsd