mybatis源码研究-2019/12/04
主要参考资料:
mybatis整体架构
mybatis思维导图
所有的 XML 文档(以及 HTML 文档)均由以下简单的构建模块构成:
元素
属性
实体
PCDATA
CDATA
名称空间为了避免条目命名冲突
文档类型声明或DOCTYPE告诉解析器,XML文档必须遵循DTD定义。同时它也告诉解析器,到哪里找到文档定义的其余内容。
<!DOCTYPE name [ ]>
引用外部DTD要用下面两种方法之一:系统标识符和公共标识符。
关键字SYSTEM和指向文档位置的URI引用。URI可以是硬盘上的一个文件,也可以是局域网或者internet上的一个文件。
<!DOCTYPE name SYSTEM "name.dtd" [...]>
以PUBLIC关键字开始,其后紧跟一个专用的标识符,但是公共标识不是用来表示对文件的引用,而是表示目录中的一个记录。 根据XML规范,公共标识符可以采用任何格式,但是一种经常使用的格式是正式公共标识符(Formal Public Identifier, FPI)。
FPI的语法要匹配下面的基本结构:
-//Owner//Class Description//Language//Version
从底层的角度看,它与名称空间的作用相似,但是公共标识符不能把两个不同的词汇组合到同一个文档里。就因为这一点,名称空间比它功能更强大。
在标识符字符串之后,还可以插入一个可选的系统标识符。这样,当处理器不能解析公共标识符时,可以查找这个文档的副本(大多数处理器不能解析公共标识符)。
<!DOCTYPE name PUBLIC "-//Beginning XML//DTD Name Example//EN" "name.dtd">
通常,DTD由三个基本部分组成:
- 元素声明
- 属性声明
- 实体声明
由三个部分组成:ELEMENT声明 元素名 元素内容模型
<!ELEMENT name (first, middle, last)>
ELEMENT声明告诉解析器当前声明一个元素。
就XML标准而言,有四类内容文档。(FAQ. 重点,请自行查阅相关资料)
- 元素内容
- 混合内容
- 空内容
- 任意内容
指示符 | 说明 |
---|---|
[none] | 内容模型中默认方式,表示这个元素必须且只出现一次 |
? | 表示元素出现一次或零次 |
-
|表示元素出现零次或多次
-
|表示元素出现一次或多次