Java 在配置XML中指定SpringDTD和xsd版本会在将表单3迁移到表单4时引起任何问题吗

Java 在配置XML中指定SpringDTD和xsd版本会在将表单3迁移到表单4时引起任何问题吗,java,xml,spring,xsd,dtd,Java,Xml,Spring,Xsd,Dtd,当我们从Spring3升级到Spring4时,我们遇到了用XML硬编码的SpringDTD和xsd版本,如 spring-beans-3.0.xsd或spring-beans-3.0.dtd 。理想情况下,这不应该用XML硬编码,因为有些spring jar将引用父pom依赖项中的4[,有些将引用本地xmls中的3。如果我删除该版本,我确信它应该从类路径中获取 如果我从xmls中删除dtd和xsd的版本,会有任何其他影响。 对于DTD: <!DOCTYPE beans PUBLIC "-/

当我们从Spring3升级到Spring4时,我们遇到了用XML硬编码的SpringDTD和xsd版本,如

spring-beans-3.0.xsd
spring-beans-3.0.dtd

。理想情况下,这不应该用XML硬编码,因为有些spring jar将引用父pom依赖项中的4[,有些将引用本地xmls中的3。如果我删除该版本,我确信它应该从类路径中获取

如果我从xmls中删除dtd和xsd的版本,会有任何其他影响。

对于DTD:

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"  "http://www.springframework.org/dtd/spring-beans-3.0.dtd">

对于XSD:

http://www.springframework.org/schema/beans/spring-beans-3.0.xsd “>

如有任何意见,将不胜感激

谢谢
Pradeep

您应该使用DTD或XSD,而不是两者都使用。对于XSD,建议的方法是使用版本较少的版本。对于DTD(您实际上不应该再使用这些版本),这是不可能的。我没有在同一个文件中使用XSD和DTD。如果我删除版本号,如spring beans.DTD[没有版本号]在xmls中,它会产生任何冲突。如果我们不在xmls中指定dtd/xsd的版本,我认为它应该从类路径中获取。我的假设是错误的吗?正如我所说的,该机制只适用于xsd文件,而不适用于dtd文件。这与这些内容的加载方式有关(如前所述,您应该不再使用DTD,我也不认为2.0之后DTD会被维护(从来源判断)。因此,如果yu将其设置为3.0或其他可能严重失败的设置。实际上,从类的数量来看,它应该适用于DTD,但仅适用于2.0(因为这是目前唯一的版本,所以您不会获得任何新功能)。但要回答您的问题,它会引起问题吗?这取决于您使用的名称空间,有时名称空间背后的bean已经发生了很大的变化并改变了行为。我想到的一件事是,例如,
早期版本使用了
PropertyPlaceHolderConfigure
和较新版本使用的
PropertySourceSplaceHolderConfigure