本系列是 COMPSCI 752 的笔记总结,本文为第一篇,XML
XML 指可扩展标记语言(eXtensible Markup Language),用来传送和携带数据信息,其焦点是数据的内容。(HTML 被设计用来显示数据,其焦点是数据的外观)
HTML 旨在显示信息,而 XML 旨在传输信息。
entity 译为"实体"。它的作用类似 word 中的"宏",也可以理解为DW中的摸板,可以预先定义一个 entity(可以包含字符,文字等),然后在一个文档中多次调用(reference),或者在多个文档中调用同一个 entity。
使用 entity 的好处在于:
- 减少差错。文档中多个相同的部分只需要输入一遍就可以。
- 提高维护效率。比如有 40个文档都包含 copyright 的entity,如果需要修改这个 copyright, 不需要所有的文件都修改,只要改最初定义的 entity 语句。
XML 定义了两种类型的 entity。一是普通 entity,在 XML 文档中使用;另一种是参数 entity,在 DTD 文件中使用。
XML 注释写法:
特殊的 applications 使用的代码行,被其他 applications 忽略。
如:
需要 XSLT stylesheet 来相应。
XML 文档中的所有文本均会被解析器解析,只有 CDATA 区段中的文本会被解析器忽略。
某些文本,比如 JavaScript 代码,包含大量 “<” 或 “&” 字符。为了避免错误,可以将脚本代码定义为 CDATA。
<script>
<![CDATA[ //此处开始
function matchwo(a,b)
{
if (a < b && a < 0) then
{
return 1;
}
else
{
return 0;
}
}
]]> //此处结束
</script>
由 “” 结束
XML 文档可以进行分类,主要依赖的机制为 DTD(Document Type Definitions)
A document with proper opening and closing of tags is said to be well-formed.
A document that conforms to its DTD is said to be valid
命名空间,提供避免元素命名冲突的方法。
在 XML 中,元素名称是由开发者定义的,当两个不同的文档使用相同的元素名时,就会发生命名冲突。
如一下两个 XML 文档:
<table>
<tr>
<td>Applestd>
<td>Bananastd>
tr>
table>
<table>
<name>African Coffee Tablename>
<width>80width>
<length>120length>
table>
假如这两个 XML 文档被一起使用,由于两个文档都包含带有不同内容和定义的
元素,就会发生命名冲突。解决方法:
在跟元素或产生冲突的元素中的 xmlns 属性定义用于前缀的命名空间(namespace),从而借助前缀的不同来避免元素的命名冲突。
<root>
//
或在<root>标签中定义:
<root xmlns:h="http://www.w3.org/TR/html4/"
xmlns:f="http://www.w3cschool.cc/furniture">
//
<h:table xmlns:h="http://www.w3.org/TR/html4/">
<h:tr>
<h:td>Applesh:td>
<h:td>Bananash:td>
h:tr>
h:table>
<f:table xmlns:f="http://www.w3cschool.cc/furniture">
<f:name>African Coffee Tablef:name>
<f:width>80f:width>
<f:length>120f:length>
f:table>
root>