大部分时间我们都没有在Spring中声明DOCTYPE
。
但我想在我的XML上下文文件中声明一个DOCTYPE,以便我可以在我的xml文件中使用ENTITY
。
例如:
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"
"http://www.springframework.org/dtd/spring-beans-2.0.dtd"
[<!ENTITY % crmHome SYSTEM "crm-home.dtd"> %crmHome;]
>
这会产生许多错误,例如......
- Attribute "xmlns" must be declared for element type "beans".
- Attribute "xmlns:xsi" must be declared for element type "beans".
etc.....
实现这一目标的方法是什么?
答案 0 :(得分:5)
这对我有用。使用Spring Framework V.4.2.1
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
答案 1 :(得分:2)
如果您正在使用模式验证,那么您可以定义足以声明参数实体的内部DTD子集,而不是引用http://www.springframework.org/dtd/spring-beans-2.0.dtd
:
<!DOCTYPE beans [
<!ENTITY % crmHome SYSTEM "crm-home.dtd">
%crmHome;
]>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">