2015-12-21 41 views
0

执行的MyBatis 3.2.8我使用的元素“财产”作为元素“包括”内容,如文档中表示:的SAXParseException元素的内容包括必须匹配空

http://mybatis.org/mybatis-3/es/sqlmap-xml.html

<select id="selectUsers" resultType="map"> 
 
    select 
 
    <include refid="userColumns"><property name="alias" value="t1"/></include>, 
 
    <include refid="userColumns"><property name="alias" value="t2"/></include> 
 
    from some_table t1 
 
    cross join some_table t2 
 
</select>

当我尝试执行上面的代码中,我得到的错误:元素的SAXParseException内容包括必须匹配空

我下载了DTD,这是正确的:

<!-- Dynamic --> 
 

 
<!ELEMENT include (property+)?> 
 
<!ATTLIST include 
 
refid CDATA #REQUIRED 
 
>

那么,为什么我收到异常?

回答

2

好,一些挖掘到的MyBatis的来源后,我得到一个解释:

DTD在3.2.8版本:

<!-- Dynamic --> 
 

 
<!ELEMENT include EMPTY> 
 
<!ATTLIST include 
 
refid CDATA #REQUIRED 
 
>

DTD在3.3.0版本(目前由http://mybatis.org/dtd/mybatis-3-mapper.dtd指出):

<!-- Dynamic --> 
 

 
<!ELEMENT include (property+)?> 
 
<!ATTLIST include 
 
refid CDATA #REQUIRED 
 
>

所以,简单地从3.2.8版本升级到3.3.0版本,都将再次去细

相关问题