DTD
例子:<br><!ELEMENT students (student*) > students为根标签,students里只能出现student标签,*代表无数次<br><!ELEMENT student (name,age,sex)> student标签里只能出现name,age,sex,次数为1且顺序唯一<br><!ELEMENT name (#PCDATA)> #PCDATA字符串类型<br><!ELEMENT age (#PCDATA)><br><!ELEMENT sex (#PCDATA)><br><!ATTLIST student number ID #REQUIRED> 设置number为student的属性,ID指该属性唯一且属性值不能以数字开头,#REQUIRED指该属性是必须的
引入dtd文档到xml文档方式
外部dtd
将约束的规则定义在外部的dtd文件中
本地:<!DOCTYPE 根标签名 <b>SYSTEM</b> "dtd文件的位置">
<?xml version="1.0" encoding="UTF-8" ?><br><!DOCTYPE students SYSTEM "student.dtd"><br><br><students><br> <student number="itcast_0001"><br> <name>tom</name><br> <age>18</age><br> <sex>male</sex><br> </student><br></students>
网络:<!DOCTYPE 根标签名 <b>PUBLIC </b>"dtd文件名字(随便起)" "dtd文件的位置URL">
内部dtd(不常用)
将约束规则定义在xml文档中
<?xml version="1.0" encoding="UTF-8" ?><br><!DOCTYPE students [<br><!ELEMENT students (student*) ><br><!ELEMENT student (name,age,sex)><br><!ELEMENT name (#PCDATA)><br><!ELEMENT age (#PCDATA)><br><!ELEMENT sex (#PCDATA)><br><!ATTLIST student number ID #REQUIRED><br>]><br><br><students><br> <student number="itcast_0001"><br> <name>tom</name><br> <age>18</age><br> <sex>male</sex><br> </student><br></students>