03、DTD - XML 组成部件

XML文档和 HTML文档非常类似,他们的主要构成部分都是类似 <body> 等元素标签

XML 文档组成部件

所有的XML 文档(以及 HTML 文档)均由以下简单的部件构成

  • 元素
  • 属性
  • 实体
  • PCDATA
  • CDATA

接下来我们对每个部件作简要描述

元素(Element)

元素(Element) 是 XML 以及 HTML 文档的主要组成部件

HTML 元素的例子是 body 和 table 就是元素

XML元素的例子是 article 和 content

元素可包含文本、其他元素或者是空的

空的HTML 元素的例子是 "hr"、"br" 以及 "img"

范例:

<body>这是主题内容</body>
<content>消息 or 内容</content>

属性(ATTLIST)

属性(ATTLIST) 可提供有关元素的额外信息

  • 属性总是被置于某元素的开始标签中
  • 属性总是以 名称/值 的形式成对出现的

下面的"img" 元素拥有关于源图片的额外信息:

<img src="your_image_url.gif" />

元素的名称是 img,属性的名称是 "src",属性的值是 "your_image_url.gif"。

由于元素本身为空,它被一个 "/" 关闭

实体(entities)

实体是用来定义普通文本的变量

实体引用是对实体的引用。 这句话好别扭有没有,我也没找到更好的描述

大多数前端或者做过 WEB 开发的相信对 &nbsp 是空格的引用都习以为常了。这个无折行空格实体在 HTML 中被用于在某个文档中插入一个额外的空格

当文档被 XML 解析器解析时,实体就会被展开

XML 规范中定义了下表实体

实体引用 字符
&lt; <
&gt; >
&amp; &
&quot; "
&apos; '

PCDATA

PCDATA 的意思是被解析的字符数据(parsed character data)

可把字符数据想象为 XML 元素的开始标签与结束标签之间的文本

PCDATA 是会被解析器解析的文本。这些文本将被解析器检查实体以及标记

文本中的标签会被当作标记来处理,而实体会被展开。

不过,被解析的字符数据不应当包含任何 &、< 或者 > 字符;需要使用 &、< 以及 > 实体来分别替换它们

CDATA

CDATA 的意思是字符数据(character data)。

CDATA 是不会被解析器解析的文本。

在这些文本中的标签不会被当作标记来对待,其中的实体也不会被展开