這里只寫(xiě)了常用的,如果需要更多可以參閱
每個(gè)字都是本人手敲的,若需轉(zhuǎn)載請(qǐng)注明出處
文檔類型定義(Document Type Definition)
一般的xml文件都有對(duì)應(yīng)的.dtd文件,來(lái)定義和規(guī)范它的標(biāo)簽。也就是說(shuō),.dtd文件就像是API文檔一樣。讀懂它,就能自己寫(xiě)一個(gè)規(guī)范的xml
以Mybatis的select標(biāo)簽為例,文件位置在mybatis的jar包里的org,apache.ibatis.builder.xml里面的mybatis-3-mapper.dtd(這里中間的3是版本號(hào))
ELEMENT 標(biāo)簽的組成元素
() 代表當(dāng)前里面能寫(xiě)哪些內(nèi)容
| 枚舉
A,B 一定按先A后B順序
* 數(shù)量 0 ~ n
+ 數(shù)量 1 ~ n
? 數(shù)量 0或1
#PCDATA 文本
EMPTY 空標(biāo)簽,只能自閉如<a/>或<a></a>緊挨無(wú)空格
<!-- select標(biāo)簽不一定有子標(biāo)簽[由()*看出],這些子標(biāo)簽沒(méi)有順序[沒(méi)有`,`],標(biāo)簽內(nèi)可以直接寫(xiě)文本即sql語(yǔ)句 -->
<!ELEMENT select (#PCDATA | include | trim | where | set | foreach | choose | if | bind)*>
ATTLIST 標(biāo)簽的屬性集合
? attitude list的縮寫(xiě)。
CDATA 不含空格的字符串
NMTOKEN 可以有空格的字符串
#IMPLIED 可選擇的,但如果標(biāo)簽內(nèi)屬性都是可選的,就必須選一個(gè)
#REQUIRED 必要的,不可省的
#FIXED value 值是固定的
<!ATTLIST select
<!-- 不可省的屬性只有id,id的值中間不能有空格 -->
id CDATA #REQUIRED
parameterMap CDATA #IMPLIED
parameterType CDATA #IMPLIED
resultMap CDATA #IMPLIED
resultType CDATA #IMPLIED
<!-- `()`列舉屬性可以為什么值 -->
resultSetType (FORWARD_ONLY | SCROLL_INSENSITIVE | SCROLL_SENSITIVE) #IMPLIED
statementType (STATEMENT|PREPARED|CALLABLE) #IMPLIED
fetchSize CDATA #IMPLIED
timeout CDATA #IMPLIED
flushCache (true|false) #IMPLIED
useCache (true|false) #IMPLIED
databaseId CDATA #IMPLIED
lang CDATA #IMPLIED
resultOrdered (true|false) #IMPLIED
resultSets CDATA #IMPLIED
>