- 一、XML
- 特点
- 二、语法
- 三、C# XML操作模型
- XML 语法注意
- XML 语法注意
一、XML
XML 可扩展标记语言(标准通用标记语言的子集)是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然可扩展标记语言占用的空间比二进制数据要占用更多的空间,但可扩展标记语言极其简单易于掌握和使用。
标准通用标记语言、超文本标记语言是它的先驱。标准通用标记语言它是国际上定义电子文件结构和内容描述的标准,是一种非常复杂的文档的结构,主要用于大量高度结构化数据的防卫区和其他各种工业领域,利于分类和索引。同它相比,定义的功能很强大,缺点是它不适用于Web数据描述,而且标准通用标记语言软件价格非常昂贵。 HTML相信大家都比较熟悉,即超文本标识语言,它的优点是比较适合web页面的开发。但它有一个缺点是标记相对少,只有固定的标记集如< p>.< strong >等。缺少标准通用标记语言的柔性和适应性。不能支持特定领域的标记语言,如对数学、化学、音乐等领域的表示支持较少。举个例子来说,开发者很难在网页上表示数学公式、化学分子式和乐谱。它结合了标准通用标记语言和HTML的优点并消除其缺点。XML仍然被认为是一种标准通用标记语言。比标准通用标记语言要简单,但能实现标准通用标记语言的大部分的功能。1996年的夏天,标准通用标记语言,使其在Web中,既能利用标准通用标记语言的长处,又保留html的简单性。
计算机系统和数据使用不兼容的格式来存储数据。XML 数据以纯文本格式进行存储,因此提供了一种独立于软件和硬件的数据存储方法。这让创建不同应用程序可以共享的数据变得更加容易。
特点
● 可扩展标记语言是一种很像超文本标记语言的标记语言。
● 它的设计宗旨是存储传输数据,而不是显示数据。
● 它的标签没有被预定义。您需要自行定义标签。
● 它被设计为具有自我描述性。
● 它是W3C的推荐标准。
二、语法
XML 声明
XML 声明通常在 XML 文档的第一行出现。XML 声明不是必选项,但是如果使用 XML 声明,必须在文档的第一行,前面不得包含任何其他内容或空白。
文档映射中的 XML 声明包含下列内容:
版本号,<?xml version="1.0"?>
编码声明,<?xml version="1.0" encoding="UTF-8"?>
由根元素开始 扩展到叶 的结构
<root property = “属性”>
<child>
<subchild> 这里是元素内容 </subchild>
</child>
<child>
<subchild> 这里是元素内容 </subchild>
</child>
</root>
XML 元素 组成
XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。
元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。
<element name=“元素”>元素内容</element>
XML 元素命名规则
● 名称可以含字母、数字以及其他的字符
● 名称不能以数字或者标点符号开始
● 名称不能以字符 “xml”(或者 XML、Xml)开始
● 名称不能包含空格
● 可使用任何名称,没有保留的字词。
XML属性 只描述额外的信息
● 属性无法包含多重的值(元素可以)
● 属性无法描述树结构(元素可以)
● 属性不易扩展(为未来的变化)
● 属性难以阅读和维护
属性到元素的转换
<note date="08/08/2008">
<note><date>08/08/2008</date> </note>
<note>
<date>
<day>08</day>
<month>08</month>
<year>2008</year>
</date>
</note>
XML转义符与注释
< | < | 小于 |
> | > | 大于 |
& | & | 和 |
' | ' | 单引号 |
" | " | 双引号 |
// XML 中的注释
<!--This is a comment-->
XML 语法 注意
● 所有 XML 元素都须有 开始 关闭标签
● 标签名 包含 尖括号中
● XML 标签对大小写敏感
● XML 必须正确地嵌套
● XML 的属性值须加引号
● 在 XML 中空格会被保留
三、C# XML操作模型
XML 语法注意
在程序中访问进而操作XML文件一般有两种模型,分别是使用DOM(文档对象模型)和流模型。
DOM模型:它允许编辑和更新XML文档,可以随机访问文档中的数据,可以使用XPath查询,但是,DOM的缺点在于它需要一次性的加载整个文档到内存中,对于大型的文档,这会造成资源问题。
流模型:对XML文件的访问采用的是流的概念,也就是说,任何时候在内存中只有当前节点,但它也有它的不足,它是只读的,仅向前的,不能在文档中执行向后导航操作。