1.DTD简介
(1)DTD,Document Type Definition,文档类型定义.
(2)DTD用于约束xml的文档格式,保证xml是一个有效的xml.
(3)DTD可以分为两种,内部DTD,外部DTD.
2.使用内部DTD
(1)内部DTD的定义,语法如下:
<!DOCTYPE 根元素 [元素声明]>
(2)元素声明语法:
<!ELEMENT 元素名 (子元素[, 子元素...])>
(3)数量词
>+:表示出现1次或多次,至少一次
>?:表示出现0次或1次
>*:表示出现任意次
(4)属性声明语法:
>属性类型:CDATA,表示字符数据(character data)
>默认值:
- #REQUIRED ,表示必须出现
- #IMPLIED,表示不是必须的
<!ATTLIST 元素名称 属性名称 属性类型 默认值>
(5)带DTD的完整xml代码:
<?xml version="1.0" econding="UTF-8"?> <!-- 声明内部DTD --> <!DOCTYPE scores [ <!ELEMENT scores (student+)> <!ELEMENT student (name,course,score)> <!ATTLIST student id CDATA #REQUIRED> <!ELEMENT name (#PCDATA)> <!ELEMENT course (#PCDATA)> <!ELEMENT score (#PCDATA)> ]> <scores> <student id="1"> <name>张三</name> <course>java</course> <score>89</score> </student> <student id="2"> <name>李四</name> <course>sql</course> <score>69</score> </student> </scores>
3.使用外部DTD
(1)创建一个独立的DTD文件:scores.dtd
<?xml version="1.0" econding="UTF-8"?> <!ELEMENT scores (student+)> <!ELEMENT student (name,course,score)> <!ATTLIST student id CDATA #REQUIRED> <!ELEMENT name (#PCDATA)> <!ELEMENT course (#PCDATA)> <!ELEMENT score (#PCDATA)>
(2)在xml中引入外部DTD文件
<!-- 引入外部DTD文件 --> <!DOCTYPE scores SYSTEM "scores.dtd">