摘录容易混淆或是不知道的XML内容,以及使用上的要求。
XML(EXtensible Markup Language) 指可扩展标记语言.
被设计用来传输和存储数据.具有自我描述性.
XML 与 HTML 的主要差异
1.XML 不是 HTML 的替代。XML 是对 HTML 的补充
2.XML 和 HTML 为不同的目的而设计。
3.XML 被设计为传输和存储数据,其焦点是数据的内容。
4.HTML 被设计用来显示数据,其焦点是数据的外观。
5.HTML 旨在显示信息,而 XML 旨在传输信息。
6.XML 没有预定义的标签,而 HTML 中使用预定义的标签。
7.XML 是独立于软件和硬件的信息传输工具。
/////////////////////////////////////////////////////
<?xml version="1.0" encoding="ISO-8859-1"?>
XML的第一行是 XML 声明。它定义 XML 的版本 (1.0) 和所使用的编码 (ISO-8859-1 = Latin-1/西欧字符集)。
在 XML 中,有 5 个预定义的实体引用:
1:< < 小于
2:> > 大于
3:& & 和号
4:' ' 单引号
5:" " 引号
注释:在 XML 中,只有字符 "<" 和 "&" 确实是非法的。大于号是合法的,但是用实体引用来代替它是一个好习惯。
在 XML 中,空格会被保留 不删除、不合并,而 HTML 会把多个连续的空格字符裁减(合并)为一个。
在 Windows 应用程序中,XML换行通常以一对字符来存储:回车符 (CR) 和换行符 (LF)。
XML 元素必须遵循以下命名规则:
名称可以含字母、数字以及其他的字符
名称不能以数字或者标点符号开始
名称不能以字符 “xml”(或者 XML、Xml)开始
名称不能包含空格
避免 "-" 字符。如果您按照这样的方式进行命名:"first-name",一些软件会认为你需要提取第一个单词。
避免 "." 字符。如果您按照这样的方式进行命名:"first.name",一些软件会认为 "name" 是对象 "first" 的属性。
避免 ":" 字符。冒号会被转换为命名空间来使用(稍后介绍)。
XML 的优势之一,就是可以经常在不中断应用程序的情况进行扩展。(既是可以添加新元素或属性)
/////////////////////////////////////////////////////
避免使用 XML 属性
因使用属性而引起的一些问题:
属性无法包含多重的值(元素可以)
属性无法描述树结构(元素可以)
属性不易扩展(为未来的变化)
属性难以阅读和维护
////////////////////////////////////////////////////
拥有正确语法的 XML 被称为“形式良好”的 XML。
通过 DTD 验证的 XML 是“合法”的 XML。
DTD 的作用是定义 XML 文档的结构。它使用一系列合法的元素来定义文档结构:
<!DOCTYPE note [
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
XML Schema
W3C 支持一种基于 XML 的 DTD 代替者,它名为 XML Schema:
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
///////////////////////////////////////////////////
XML的显示
1.通过使用 CSS,可为 XML 文档添加显示信息。
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/css" href="cd_catalog.css"?>
<CATALOG>
...
</CATALOG>
使用 CSS 格式化 XML 不是常用的方法,更不能代表 XML 文档样式化的未来。W3C 推荐使用 XSLT。
2.使用 XSLT 显示 XML 是首选的 XML 样式表语言。
XSLT (eXtensible Stylesheet Language Transformations) 远比 CSS 更加完善。
使用 XSLT 的方法之一是在浏览器显示 XML 文件之前,先把它转换为 HTML,正如以下的这些例子演示的那样:
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="simple.xsl"?>
<breakfast_menu>
....
</breakfast_menu>
第二行的<?xml-stylesheet type="text/xsl" href="simple.xsl"?>,把这个 XML 文件链接到 XSL 文件。
////////////////////////////////////////////////////////////
XML 命名空间提供避免元素命名冲突的方法。
XML 命名空间属性被放置于元素的开始标签之中.
xmlns:namespace-prefix="namespaceURI"
当命名空间被定义在元素的开始标签中时,所有带有相同前缀的子元素都会与同一个命名空间相关联。
注释:用于标示命名空间的地址不会被解析器用于查找信息。其惟一的作用是赋予命名空间一个惟一的名称。
不过,很多公司常常会作为指针来使用命名空间指向实际存在的网页,这个网页包含关于命名空间的信息。
///////////////////////////////////////////////////
所有 XML 文档中的文本均会被解析器解析。
只有 CDATA 区段(CDATA section)中的文本会被解析器忽略。
术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data)。
<![CDATA[
这中间的字符是不解析的。
]]>
CDATA 部分不能包含字符串 "]]>"。也不允许嵌套的 CDATA 部分。
标记 CDATA 部分结尾的 "]]>" 不能包含空格或折行。
PCDATA 指的是被解析的字符数据(Parsed Character Data)。
XML 解析器通常会解析 XML 文档中所有的文本。
当某个 XML 元素被解析时,其标签之间的文本也会被解析.因为 XML 元素可包含其他元素.