xml学习笔记
什么是 XML?
?XML 指可扩展标记语言(EXtensible Markup Language)
?XML 是一种标记语言,很类似 HTML
?XML 的设计宗旨是传输数据,而非显示数据
?XML 标签没有被预定义。您需要自行定义标签。
?XML 被设计为具有自我描述性。
?XML 是 W3C 的推荐标准
XML的用途
1)存储数据
XML最基本得用途,由于它可以保存为数据文件,对一些需要持久化保存的数据可以使用XML格式的方式保存。
2)分离数据
如果你需要在 HTML 文档中显示动态数据,那么每当数据改变时将花费大量的时间来编辑 HTML。
通过 XML,数据能够存储在独立的 XML 文件中。这样你就可以专注于使用 HTML 进行布局和显示,并确保修改底层数据不再需要对 HTML 进行任何的改变。
通过使用几行 JavaScript,你就可以读取一个外部 XML 文件,然后更新 HTML 中的数据内容。
3)交换数据
通过XML可以在不兼容的系统之间交换数据
4)共享数据
通过XML纯文本文件可以用来共享数据,XML 独立于硬件、软件以及应用程序,这样可以创建一个能不不同应用程序读取的数据文件。
XML的技术架构
1)数据定义Schema、DTD:XML Schema 的作用是定义 XML 文档的合法构建模块,类似 DTD。
2)数据解析DOM、SAX
3)样式风格XSTL:用来转换XML文档结构的语言,使用XSTL可以将XML文件中存放的内容,按指定的样式显示为HTML页面。
4)java、.net、javascript:所有操作xml的功能,都由额外的程序设计语言或者应用软件提供。
xml基本语法
1)xml文档的基本结构
XML 使用简单的具有自我描述性的语法:
<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
第一行是 XML 声明。它定义 XML 的版本 (1.0) 和所使用的编码 (ISO-8859-1 = Latin-1/西欧字符集)。
下一行描述文档的根元素(像在说:“本文档是一个便签”):
<note>接下来 4 行描述根的 4 个子元素(to, from, heading 以及 body):
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
最后一行定义根元素的结尾:
</note>
XML 文档形成一种树结构
XML 文档必须包含根元素。该元素是所有其他元素的父元素。
XML 文档中的元素形成了一棵文档树。这棵树从根部开始,并扩展到树的最底端。
所有元素均可拥有子元素:
<root>
<child>
<subchild>.....</subchild>
</child>
</root>
父、子以及同胞等术语用于描述元素之间的关系。父元素拥有子元素。相同层级上的子元素成为同胞(兄弟或姐妹)。
所有元素均可拥有文本内容和属性(类似 HTML 中)。
2)所有 XML 元素都须有关闭标签
3)XML 标签对大小写敏感
4)XML 必须正确地嵌套
5)XML 的属性值须加引号
6)实体引用
在 XML 中,一些字符拥有特殊的意义。
如果你把字符 "<" 放在 XML 元素中,会发生错误,这是因为解析器会把它当作新元素的开始。
这样会产生 XML 错误:
<message>if salary < 1000 then</message>为了避免这个错误,请用实体引用来代替 "<" 字符:
<message>if salary < 1000 then</message> 在 XML 中,有 5 个预定义的实体引用:
< < 小于
> > 大于
& & 和号
' ' 单引号
" " 引号
注释:在 XML 中,只有字符 "<" 和 "&" 确实是非法的。大于号是合法的,但是用实体引用来代替它是一个好习惯。
7)XML 中的注释
在 XML 中编写注释的语法与 HTML 的语法很相似:
<!-- This is a comment -->
8)在 XML 中,空格会被保留
9)CDATA
术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data)。
在 XML 元素中,"<" 和 "&" 是非法的。
"<" 会产生错误,因为解析器会把该字符解释为新元素的开始。
"&" 也会产生错误,因为解析器会把该字符解释为字符实体的开始。
某些文本,比如 JavaScript 代码,包含大量 "<" 或 "&" 字符。为了避免错误,可以将脚本代码定义为 CDATA。
CDATA 部分中的所有内容都会被解析器忽略。
CDATA 部分由 "<![CDATA[" 开始,由 "]]>" 结束:
<script>
<![CDATA[
function matchwo(a,b)
{
if (a < b && a < 0) then
{
return 1;
}
else
{
return 0;
}
}
]]>
</script>
在上面的例子中,解析器会忽略 CDATA 部分中的所有内容。
关于 CDATA 部分的注释:
CDATA 部分不能包含字符串 "]]>"。也不允许嵌套的 CDATA 部分。
标记 CDATA 部分结尾的 "]]>" 不能包含空格或折行。
什么是 XML 元素?
XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。
元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。
XML 命名规则
XML 元素必须遵循以下命名规则:
?名称可以含字母、数字以及其他的字符
?名称不能以数字或者标点符号开始
?名称不能以字符 “xml”(或者 XML、Xml)开始
?名称不能包含空格
可使用任何名称,没有保留的字词。