如何在Spring XML文件中使用DOCTYPE

时间:2013-01-17 12:08:58

标签: java xml spring dtd xml-dtd

大部分时间我们都没有在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.....

实现这一目标的方法是什么?

2 个答案:

答案 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">