<?xml version="1.0" encoding="UTF-8" standalone="yes"?><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>]>
元素类型
ANY
<!ELMENT student ANY>表示student元素里面可以是任意内容
EMPTY
<!ELMENT student EMPTY>表示student元素里面必须为空
元素内容
<!ELMENT student (#PCDATA)>表示student元素里面的内容为文本内容
<!ELMENT student (name)>表示student元素里面为name元素
子元素出现的次数
可以用? * + 来指定子元素出现的次数
<!ELMENT student (name?)>表示student里面可以有0或者1个name元素
<!ELMENT student (name*)>表示student里面可以有0到n个name元素
<!ELMENT student (name+)>表示student里面可以有1到n个name元素
多个子元素
<!ELMENT student (name,age,sex)>表示student里面必须有三个子元素、并且顺序必须与声明一致
枚举子元素
<!ELMENT student (name|age|sex)>表示student里面只有一个元素、可以是声明的三个元素中的任意一个
复合声明
<!ELMENT student (name|age|sex)?>表示student里面只有一个元素、可以是声明的三个元素中的任意一个
<!ELMENT student (name|age|sex)*>表示student里面可以有0到n个元素、可以是声明的三个元素中的任意一个
<!ELMENT student (name|age|sex)+>表示student里面可以有1到n个元素、可以是声明的三个元素中的任意一个
属性定义的格式
<!ATTLIST 元素名<br> 属性名1 属性类型 设置说明<br> 。。。<br>>
最常见的属性类型:CDATA,表示文本类型
其他两种属性类型
ID,注意ID不能以数字开头
<span>(</span><i>en1</i><span>|</span><i>en2</i><span>|..), </span><span>此值是枚举列表中的一个值</span>
最常见的设置说明1:#REQUIRED,表明属性是必须的
最常见的设置说明2:#IMPLIED,表明属性是可选的