目录
今天的学习内容主要包括XML语法、DTD约束,以下是今天的笔记。
XML是类似于HTML的标记语言,称为可扩展标记语言,用户可以按照XML规则自定义标记。
XML | HTML |
|---|---|
用来传输和存储数据 | 用来显示数据 |
严格区分大小写 | 不区分大小写 |
有且只能有一个根元素 | 可以有多个根元素 |
空格不会自动删除 | 空格可以自动过滤 |
标记可以根据需要自己定义,并且可扩展 | 标记是预定义的 |
注意:XML不是HTML的升级,也不是HTML的替代产品
虽然两者有些相似,但它们的应用领域和范围完全不同。HTML规范的最终版本是HTML 4.01,它已经被XHTML取代。而XHTML 是 HTML 和 XML 的混合物,它完全采用XML的语法规则来编写Web页面,有效地结合了HTML的简单性和XML的可扩展性,并且XML可以应用在金融、科研等各个领域,而XHTML只是XML在Web领域的一种应用。
在一个完整的XML文档中,必须包含一个XML文档的声明,并且该声明必须位于文档的第一行。这个声明表示该文档是一个XML文档,以及遵循哪个XML版本的规范。
文档声明以符号“<?”开头,以符号“?>”结束,中间可以声明版本信息,编码信息以及文档独立性信息。需要注意的是,在“<”和“?”之间、“?”和“>”之间以及第一个“?”和xml之间不能有空格;另外,中括号([])括起来的部分是可选的。
声明的语法格式如下:
<?xml 版本信息[编码信息][文档独立性信息]?>
在XML文档中,主体内容都是由元素(Element)组成的。元素由开始标记、属性、元素内容和结束标记构成,示例如下: <城市>北京</城市>
上面的示例中,“<城市>”和“</城市>”就是XML文档中的标记,标记的名称也就是元素的名称。在一个元素中可以嵌套若干子元素。如果一个元素没有嵌套在其它元素内,则这个元素称为根元素。根元素是XML文档定义的第一个元素。如果一个元素中没有嵌套子元素,也没有包含文本内容,则这样的元素称为空元素,空元素可以不使用结束标记,但必须在起始标记的“>”前增加一个正斜杠“/”来说明该元素是个空元素,例如:<img></img>可以简写成<img/>。
在XML文档中,可以为元素定义属性。属性是对元素的进一步描述和说明。一个元素可以有多个属性,每个属性都有自己的名称和取值,比如:
<售价 单位=“元”>68.00</售价>
在XML文档中,属性的命名规范同元素相同,属性值必须要用双引号("")或者单引号('')引起来,否则被视为错误。
为了对XML元素所包含的数据含义进行说明,或插入一些附加信息,比如作者姓名、地址或电话等,或者想暂时屏蔽某些XML元素,可以使用注释标记来实现,被注释的内容会被程序忽略,XML解析器不会解析和处理注释内容。XML注释和HTML注释写法基本一致。
DTD约束是早期出现的一种XML约束模式语言,根据它的语法创建的文件称为DTD文件,可以包含元素的定义、元素之间关系的定义、元素属性的定义以及实体符号的定义。
如果想使用DTD文件约束XML文档,必须在XML文档中引入DTD文件。在XML文档中引入DTD文件有两种方式,可以外部引入,也可以直接嵌入。
1、引用本地的DTD文件,其中“外部DTD文件的URI”可以是相对于XML文档的相对路径,也可以是一个绝对路径。如下:
<!DOCTYPE 根元素名称 SYSTEM "外部DTD文件的URI">
2、引用公共的DTD文件 ,其中“外部DTD文件的URI”是Internet上的一个绝对URL地址。
<!DOCTYPE 根元素名称 PUBLIC “DTD名称” "外部DTD文件的URI">
在XML文件中直接嵌入DTD文件,语法格式如下:

在编写DTD文档时,需要遵循一定的语法。DTD的结构一般由元素类型定义、属性定义、实体定义、记号(notation)定义等构成,一个典型的文档类型定义会把将来要创建的XML文档的元素结构、属性类型、实体引用等预先进行定义。
元素是XML文档的基本组成部分,在DTD定义中,每一条<!ELEMENT…>语句用于定义一个元素,基本语法格式如下:
<!ELEMENT 元素名称 元素内容>
元素名称是自定义的名称,用来定义被约束XML文档中的元素。
元素内容是对元素包含内容的声明,包括数据类型和符号两部分。主要包括5种内容形式。
常见符号的作用:
定义元素的同时,还可以为元素定义属性。语法格式如下:

元素名:属性所属元素的名字。
属性名:属性的名称。
属性类型:用来指定该属性是属于哪种类型。
设置说明:用来说明该属性是否必须出现。