XML原始标记语言 一个dtd文件就是一个新的xml语言 设计目标:数据的存储和传输
dtd : 下列是xml的基本语法格式:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>声明 version="1.0"版本 encoding="utf-8"编辑方式 standalone表明该文档不依赖外部的DTD文件
<!DOCTYPE 跟标记名称 [ 内容]>内部的dtd
//<!DOCTYPE 跟标记名称 SYSTEM "dof.dtd">引入外部的DTD文件,这个文件属于私有的
<跟标记>
<></>
------------------
</跟标记>
dtd主要是对xml文档起约束作用
dtd:定义能够在xml文档中出现的元素和其相关的属性。下列是有关xml文档的格式
首先是声明:<?xml version="1.0" encoding="utf-8"?>
再是DTD约束:<!DOCTYPE 跟标记名称 [约束内容]>这个属于内部约束格式dtd
<!DOCTYPE 跟标记名称 SYSTEM ("sfoe.dtd")>这个属于外部约束dtd文件的引用
约束的内容:<!ELEMENT 元素名 类型>
<!ATTLIST 元素名 属性 类型 keyword "默认值">定义属性
<!ENTITY %实体名 "实体值">定义实体 实体的作用:1提高代码的复用,方便修改,维护xml文档。2使用某些特殊的符号,这些符号可能使xml解析器混淆。3减少字符输入量,如果某个字符串特别长,而且经常使用,可以定义为实体。 实体的引用:&实体名;注意的是“&”符号和“;”。
此外约束中的内容都要应用到xml文档中,并且xml也必需遵循约束的内容。
再是:xml的主要内容:<根标签>
<></>
-----------------------
</根标签>约束内经常定义的类型、属性和实体:<!ELEMENT br EMPTY> 空元素的定义 在xml中使用时:<br/>或<br></br>
<!ELEMENT 元素名 (#PCDATA)>此定义没有字标记而且是文本内容 注意的是:元素名和后面的括号内容之间有空格后面文本定义要加括号
<!ELEMENT 父元素的名称 (#PCDATA| 元素1|元素2|元素3|......)*>解释:()*表示括号中的内容可以出现0次或多次,|表示互斥的意思。#PCDATA定义为文本格式
例:<!ELEMENT 学生(学号,姓名)>学号和姓名是学生的子标记,这里的定义在xml文档中不是文本的而且内容只能出现一次,并且是按照顺序依次出现的
在元素后加*表示可出现0次或多次,加+号表示可出现1次或多次,加?可有可无(可出现0次或1次)
有序元素(a,b),互斥元素(a|b)和无序元素(a,b)*、(a,b)+、(a,b)?
属性限定条件:#REQUIRED必需的#IMPEIED可有可无的#FIXED固定值
实体:用名字来代替符号 例如定义这样的实体: content="详细内容的介绍" 可以在xml中这样应用:&content;
实体的分类:实体可分为:可解析的,不可解析的
内部实体,外部实体
一般实体,参数实体
普通实体语法:<!ELEMENT 实体名 "实体值">
使用:&实体名;
<!ELEMENT title"所有计算机书籍的列表"
参数实体语法:<!ELEMENT %实体名 "实体值">引用时和普通实体相同