1、在xml文件中引入DTD约束
<!DOCTYPE ROOT[]>
2、DTD文件中添加元素定义
<!ELEMENT element-name EMPTY> (空元素)
<!ELEMENT element-name (#PCDATA)> (文本元素)
<!ELEMENT element-name (e1,e2)> (混合元素)
3、DTD文件中添加元素限制
(1).与(,)非(|)
( 2).次数 ①0或1:? ②0~N:* ③1~N:+
第一种引入方式:本地文件引入
<!-- student*,这个星号是表示可以写0-N个student标签 --> <!ELEMENT students (student*)> <!ELEMENT student (name,age,height)> <!ELEMENT name (#PCDATA)> <!ELEMENT age (#PCDATA)> <!ELEMENT height (#PCDATA)> <!ATTLIST student id CDATA #REQUIRED>
<?xml version="1.0" encoding="UTF-8" ?> <!-- DOCTYPE中是引入xml的约束,有了这个约束,xml就不能随意编写标签了,必须按照约束中的规则编写标签 --> <!-- DOCTYPE后面写的是这个xml的根标签,SYSTEM表示约束的文件为本地文件,后面是文件的路径 --> <!DOCTYPE students SYSTEM 'studentdtd.dtd'> <students> <student id="1"> <name>张三</name> <age>20</age> <height>180</height> </student> <student id="2"> <name>李四</name> <age>21</age> <height>178</height> </student> </students>
第二种引入方式:xml文件中引入
<?xml version="1.0" encoding="UTF-8" ?> <!-- 第二种引入约束的方式就是在xml文件中引入约束 --> <!DOCTYPE students [<!ELEMENT students (student*)> <!ELEMENT student (name,age,height)> <!ELEMENT name (#PCDATA)> <!ELEMENT age (#PCDATA)> <!ELEMENT height (#PCDATA)> <!ATTLIST student id CDATA #REQUIRED>]> <students> <student id="1"> <name>张三</name> <age>20</age> <height>180</height> </student> <student id="2"> <name>李四</name> <age>21</age> <height>178</height> </student> </students>
第三种引入方式:网络引入
<?xml version="1.0" encoding="UTF-8" ?> <!-- 第三种引入约束的方式就是用网络中的dtd文件引入约束 --> <!DOCTYPE students PUBLIC "dtd文件的名称" "dtd文档的URL"> <students> <student id="1"> <name>张三</name> <age>20</age> <height>180</height> </student> <student id="2"> <name>李四</name> <age>21</age> <height>178</height> </student> </students>