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 开发的相信对   是空格的引用都习以为常了。这个无折行空格实体在 HTML 中被用于在某个文档中插入一个额外的空格
当文档被 XML 解析器解析时,实体就会被展开
XML 规范中定义了下表实体
实体引用 | 字符 |
---|---|
< |
< |
> |
> |
& |
& |
" |
" |
' |
' |
PCDATA
PCDATA 的意思是被解析的字符数据(parsed character data)
可把字符数据想象为 XML 元素的开始标签与结束标签之间的文本
PCDATA 是会被解析器解析的文本。这些文本将被解析器检查实体以及标记
文本中的标签会被当作标记来处理,而实体会被展开。
不过,被解析的字符数据不应当包含任何 &、< 或者 >
字符;需要使用 &、< 以及 >
实体来分别替换它们
CDATA
CDATA 的意思是字符数据(character data)。
CDATA 是不会被解析器解析的文本。
在这些文本中的标签不会被当作标记来对待,其中的实体也不会被展开