XML——合法的文档构建DTD
程序员文章站
2022-03-03 17:41:24
...
XML——合法的文档构建DTD
前言
在使用mybatis过程中我们经常在mapper文件中会遇到下面的代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
当时只知道引入了mybatis的dtd,所以我们在编写的时候如果不按照它的规范写编译器就会报错,具体怎么实现的,也没关注。
介绍
DTD(文档类型定义),主要用来定义xml所需的元素和元素使用规范,DTD 可被声明在 XML 文档中,也可作为一个外部引用。(一般我们都是外部引用,单一职责原则)
实现DTD
展示一下目录结构
编写dtd文件
首先我们编写dtd文件。
<?xml version="1.0" encoding="UTF-8" ?>
<!--申明元素按顺序且只出现一次-->
<!--<!ELEMENT root (node1,node2) >-->
<!--申明root元素 node1+最少出现一次
node2*出现零次或多次
node3?出现零次或一次
(node1|node2)最后必须是node1或node2 -->
<!ELEMENT root (node1+,node2*,node3?,(node1|node2)) >
<!ELEMENT node1 (#PCDATA)> <!--#PCDATA xml可解析的-->
<!-- 声明属性 #REQUIRED属性是必需的
#IMPLIED属性不是必需的
#FIXED固定值 -->
<!ATTLIST node1
id ID CDATA #REQUIRED
name CDATA #IMPLIED
fixed CDATA #FIXED "0"
boolean (true|false) #IMPLIED
>
<!ELEMENT node2 (#PCDATA)>
<!ELEMENT node3 EMPTY><!--EMPTY 空元素-->
编写xml文件
我们通过<!DOCTYPE>引入dtd,root是根节点,SYSTEM指定本地dtd,如果是PUBLIC还要指定publicID,"xml/dtd/my.dtd"是dtd的位置
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE root SYSTEM "xml/dtd/my.dtd"> <!--SYSTEM是本地 PUBLIC是远程的-->
<root>
<node1 id="1" name="node1"></node1>
<node2></node2>
<node2></node2>
<node3/>
<node1 id=""></node1>
</root>
后言
除了DTD进行对XML文件规范构建,还有XSD(xml shema definition),请看XML——合法的文档构建XSD
上一篇: XML之DTD文档
下一篇: mysql——简单的增删改查(curd)