0

大多数时候我们不在DOCTYPESpring 中声明。但是我想在我的 XML 上下文文件中声明一个 DOCTYPE,以便我可以ENTITY在我的 xml 文件中使用。

例如:

<!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.....

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

4

2 回答 2

6

这对我有用。使用 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">

于 2015-10-22T19:27:14.450 回答
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">
于 2013-01-17T12:30:15.993 回答