深入MyBatis-配置文件-xml知识点扩展

XML 头部DOCTYPE解析

在我们日常和XML相关的配置文件中通常会看到在XML的头部会有以下的代码片段:

<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">

以mybatis配置文件为例,咱们今天来分析下几行代码代表的意思

  1. DTD是什么
    DTD(Documnet Type Definition)即文档类型定义,是一种XML约束模式语言,是XML文件的验证机制,属于XML文件组成的一部分。
    DTD 是一种保证XML文档格式正确的有效方法,可以通过比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用是否正确。 一个 DTD文档包含:元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或符号规则。
  2. DTD分类
  • 内部
    DTD声明始终以!DOCTYPE开头,空一格后跟着文档根元素的名称。
    定义格式如下:
<!DOCTYPE rootElement [declarations]>

内部示例如下:

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE book [
  <!ELEMENT book (title,type,author)>
  <!ELEMENT title (#PCDATA)>
  <!ELEMENT type (#PCDATA)>
  <!ELEMENT author (#PCDATA)>
  ]>
<book>
  <title>JAVA</title>
  <type>电子信息技术</type>
  <author>大牛</author>
</book>

  • 外部
    外部DTD,则又分为公共DTD和私有DTD,
    公共DTD则使用PUBLIC,接着是DTD公共名称,接着是DTD的URL,
    私有DTD使用SYSTEM表示,接着是外部DTD的URL.
  • 外部公共DTD示例如下:
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">

在上面的示例中,声明了文档的根元素是 configuration,它在公共标识符被定义为 “-//mybatis.org//DTD Config 3.0//EN” 的 DTD 中进行了定义。XML解析器将明白如何寻找匹配此公共标识符的 DTD。如果找不到,XML解析器将使用公共标识符后面的 URL 作为寻找 DTD 的位置。


PUBLIC “-//mybatis.org//DTD Config 3.0//EN” 解析:

公共DTD DTD名称格式为"注册//组织//类型 标签//语言",

"注册"指示组织是否由国际标准化组织(ISO)注册,+表示是,-表示不是.

"组织"即组织名称,如:W3C;

"类型"一般是DTD,

"标签"是指定公开文本描述,即对所引用的公开文本的唯一描述性名称,后面可附带版本号。

最后"语言"是DTD语言的ISO 639语言标识符,如:EN表示英文,ZH表示中文,在下面的地址有完整的ISO 639语言标识。

  • 外部私有DTD
<!DOCTYPE root SYSTEM  "http://www.123.org/test.dtd" >
  1. 总结
    DTD的分为内部和外部,外部又包含了外部公共和外部私有两种类型,在外部公共定义时是按照一定的规范进行组织的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值