這里只寫了常用的,如果需要更多可以參閱
每個(gè)字都是本人手敲的,若需轉(zhuǎn)載請注明出處
文檔類型定義(Document Type Definition)
一般的xml文件都有對應(yīng)的.dtd文件,來定義和規(guī)范它的標(biāo)簽。也就是說,.dtd文件就像是API文檔一樣。讀懂它,就能自己寫一個(gè)規(guī)范的xml
以Mybatis
的select標(biāo)簽為例,文件位置在mybatis
的jar包里的org,apache.ibatis.builder.xml
里面的mybatis-3-mapper.dtd
(這里中間的3是版本號)
ELEMENT 標(biāo)簽的組成元素
()
代表當(dāng)前里面能寫哪些內(nèi)容
|
枚舉
A,
B 一定按先A后B順序
*
數(shù)量 0 ~ n
+
數(shù)量 1 ~ n
?
數(shù)量 0或1
#PCDATA
文本
EMPTY
空標(biāo)簽,只能自閉如<a/>或<a></a>緊挨無空格
<!-- select標(biāo)簽不一定有子標(biāo)簽[由()*看出],這些子標(biāo)簽沒有順序[沒有`,`],標(biāo)簽內(nèi)可以直接寫文本即sql語句 -->
<!ELEMENT select (#PCDATA | include | trim | where | set | foreach | choose | if | bind)*>
ATTLIST 標(biāo)簽的屬性集合
? attitude list的縮寫。
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
>