DTD可以作为单独的文件编写,也可以在XML内部文件编写
XML文件使用DOCTYPE声明语句来指明它所遵循的DTD文件,DOCTYPE声明语句有两种形式:
1、引用本地文件时:<!DOCTYPE 文档根节点 SYSTEM "DTD文件的URL">
2、引用公共文件时:<!DOCTYPE 文档根节点 PUBLIC "DTD名称" "DTD文件的URL”>DTD约束语法:元素定义、属性定义、实体定义
元素定义:
格式:<!ELEMENT 元素名称 元素类型> 元素类型可以是内容 或类型 ,类型有EMPTY、ANY
内容顺序问题:
1.<!ELEMENT MYFILE(TITLE,AUTHOR,EMAIL)>前后顺序2.<!ELEMENT MYFILE(TITLE|AUTHOR|EMAIL)>只能出现一个
元素出现次数:
+:一次货多次(书+)
?:0次或一次(书?)
*:0次或多次(书*)
(书):必须出现一次
<!ELEMENT MYFILE((TITLE*,AUTHOR?,EMAIL)*|COMMENT)>
属性定义:
格式:<!ATTLIST 元素
属性名1 属性值类型 设置说明
属性名2 属性值类型 设置说明
>
例子1:
<!ATTLIST 商品
类别 CDATA #REQUIRED
颜色 CDATA #IMPLIED
>
设置说明:#REQUIRED #IMPLIED #FIXED 直接使用默认值
<!ATTLIST 页面制作
姓名 CDATA # IMPLIED
年龄 CDATA #IMPLIED
联系信息 CDATA #REQUIRED
网站职务 CDATA #FIXED “页面制作”
个人爱好 CDATA “上网”
>
常用属性类型:CDATA ENUMERATED ID ENTITY(实体)
ENTITY(实体):主要在XML文档中使用
引用实体:
实例:<!ENTITY copyright "I am a programmer">
.......
©right;
实例:<!ENTITY % TAG_NAMES "姓名|EMAIL|电话|地址">
<!ELEMENT 个人信息 (%TAG_NAMES; | 生日)>
<!ELEMENT 客户信息 (%TAG_NAMES; | 生日)>