dtd 学习这个够简短精辟了,我就不写了:http://www.w3school.com.cn/dtd/dtd_intro.asp
< | < | 小于号 |
> | > | 大于号 |
& | & | 和 |
' | ' | 单引号 |
" | " | 双引号 |
我在用XML的中间主要遇到的问题是: ibatis中什么时候需要用到 : <![CDATA[ 标记
经过反复的实验证明,如果在IBATIS中自己的SQL中包含
<
>
&
需要用<![CDATA[ 。
一般 ibatis中出现 < 表示 小于号,于XML格式冲突。 > 号一样。
& 符号ibatis中一般不出现,除非很特殊就是写死要查某个值里含有这个&。
' 单引号我试了,没有影响:类似如下SQL配置是没有问题的:
<select id="getByHobby" resultMap="baby-Result" cacheModel="baby-cache"> select * from Baby where hobby = '\'' </select>
" 引号我也试了,同样没有问题:类似如下:
<select id="getByHobby" resultMap="baby-Result" cacheModel="baby-cache"> select * from Baby where hobby = '"' </select>
看了IBAITS的DTD文档,没有发现有其自己定义过的实体,综上所述,只有在SQL中遇到 < > & 符号时才需要用
<![CDATA[
==================== 后来我又仔细学习了DTD文档 ================
CDATA 标志在属性声明中用于指明属性为CDATA字符类型,这种类型中&,<,和引号 具有特殊意义。 PCDATA标志在元素声明中用于指明元素有混合内容(字符数据或者字符数据与子元素的混合)。元素内容将被解析。 这种类型中&和< 具有特殊意义,如果不是作为标记开始,则使用时要转义。
而我们IBATIS的DTD文档中些定义的数据类型是PCDATA,所以引号不过敏。