2015-12-21 71 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版本,都將再次去細

相關問題