1.什么是XML约束?
XML约束就是利用另外的文档来约束XML文档的书写规范
2.约束技术
约束技术一般有两种,一种是XML DTD,一种是XML Schema
3.DTD是什么?
Document Type Definition 文档类型定义
4.引入DTD文件
一般引入DTD文件有两种方式,本地和公共
<1>.本地:<!DOCTYPE 文档根节点 SYSYTEM "dtd文件名">
<2>.公共:<!DOCTYPE 文档根节点 PUBLIC "dtd文件名" "DTD文件URL">
今天我就用本地DTD的方式简单讲一下
1.DTD语法
(1).元素ELEMENT
<1>.格式:<!ELEMENT 元素名称 元素类型>
<2>.元素类型:①EMPTY:表示定义空元素
②ANY:表示元素内容为任意类型
③也可以写元素内容
<3>.①用逗号隔开:表示内容的出现顺序必须与声明一致
②用"|"隔开:表示任选其一,即多个只能出现一个
③出现次数: +:一次或多次
?:0次或1次
*:0次或多次
(2).属性ATTLIST
<1>.格式:<!ATTLIST 元素名 属性名 属性值类型 设置说明>
<2>.属性值类型:①CDATA 普通文本字符串
②ENUMERATED 枚举
③ID 唯一(不能以数字开头)
④ENTITY
<3>.设置说明:
①#REQUIRED 必须
②IMPLIED 可选
③FIXED 该属性的值是固定的,不能在XML中进行修改,但是必须设置这个属性
接下来将一下简单的应用:
XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE persons SYSTEM "persons.dtd">
<persons>
<person psex="女">
<pid>1</pid>
<pname>张三</pname>
<page>10</page>
<person>
<person psex="男">
<pid>2</pid>
<pname>李四</pname>
<page>15</page>
<person>
</persons>
DTD文件:
<!ELEMENT persons (person+)> //这是在根节点中设置子标签person出现的次数
<!ELEMENT person (pid,pname,page)> //给标签person设置子标签pid、pname、page
<!ELEMENT pid (#PCDATA)> //这是子标签的值类型
<!ELEMENT pname (#PCDATA)>
<!ELEMENT page (#PCDATA)>
<!ATTLIST person psex CDATA #REQUIRED> //这是给person标签这是属性,以及属性值类型,还有设置说明,#REQUIRED就是必须出现
注意:在写DTD文件时,写完第一行报错了,是因为我们设置了person,一环套一环,所以我们需要一直写下去,写完了才不会报错!