一、XML

XML 可扩展标记语言(标准通用标记语言的子集)是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然可扩展标记语言占用的空间比二进制数据要占用更多的空间,但可扩展标记语言极其简单易于掌握和使用。

标准通用标记语言、超文本标记语言是它的先驱。标准通用标记语言它是国际上定义电子文件结构和内容描述的标准,是一种非常复杂的文档的结构,主要用于大量高度结构化数据的防卫区和其他各种工业领域,利于分类和索引。同它相比,定义的功能很强大,缺点是它不适用于Web数据描述,而且标准通用标记语言软件价格非常昂贵。 HTML相信大家都比较熟悉,即超文本标识语言,它的优点是比较适合web页面的开发。但它有一个缺点是标记相对少,只有固定的标记集如< p>.< strong >等。缺少标准通用标记语言的柔性和适应性。不能支持特定领域的标记语言,如对数学、化学、音乐等领域的表示支持较少。举个例子来说,开发者很难在网页上表示数学公式、化学分子式和乐谱。它结合了标准通用标记语言和HTML的优点并消除其缺点。XML仍然被认为是一种标准通用标记语言。比标准通用标记语言要简单,但能实现标准通用标记语言的大部分的功能。1996年的夏天,标准通用标记语言,使其在Web中,既能利用标准通用标记语言的长处,又保留html的简单性。

计算机系统和数据使用不兼容的格式来存储数据。XML 数据以纯文本格式进行存储,因此提供了一种独立于软件和硬件的数据存储方法。这让创建不同应用程序可以共享的数据变得更加容易。

特点

  1. 可扩展标记语言是一种很像超文本标记语言的标记语言。
  2. 它的设计宗旨是存储传输数据,而不是显示数据。
  3. 它的标签没有被预定义。您需要自行定义标签。
  4. 它被设计为具有自我描述性。
  5. 它是W3C的推荐标准。

二、语法

XML 声明

XML 声明通常在 XML 文档的第一行出现。XML 声明不是必选项,但是如果使用 XML 声明,必须在文档的第一行,前面不得包含任何其他内容或空白。

文档映射中的 XML 声明包含下列内容:

  1. 版本号,<?xml version="1.0"?>
  2. 编码声明,<?xml version="1.0" encoding="UTF-8"?>

由根元素开始 扩展到叶 的结构

  1. <root property = “属性”>
  2. <child>
  3. <subchild> 这里是元素内容 </subchild>
  4. </child>
  5. <child>
  6. <subchild> 这里是元素内容 </subchild>
  7. </child>
  8. </root>

XML 元素 组成

XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。

元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。

  1. <element name=“元素”>元素内容</element>

XML 元素命名规则

  1. 名称可以含字母、数字以及其他的字符
  2. 名称不能以数字或者标点符号开始
  3. 名称不能以字符 xml”(或者 XMLXml)开始
  4. 名称不能包含空格
  5. 可使用任何名称,没有保留的字词。

XML属性 只描述额外的信息

  1. 属性无法包含多重的值(元素可以)
  2. 属性无法描述树结构(元素可以)
  3. 属性不易扩展(为未来的变化)
  4. 属性难以阅读和维护

属性到元素的转换

  1. <note date="08/08/2008">
  2. <note><date>08/08/2008</date> </note>
  3. <note>
  4. <date>
  5. <day>08</day>
  6. <month>08</month>
  7. <year>2008</year>
  8. </date>
  9. </note>

XML转义符与注释

&lt;<小于
&gt;>大于
&amp;&
&apos;'单引号
&quot;"双引号
  1. // XML 中的注释
  2. <!--This is a comment-->

XML 语法 注意

  1. 所有 XML 元素都须有 开始 关闭标签
  2. 标签名 包含 尖括号中
  3. XML 标签对大小写敏感
  4. XML 必须正确地嵌套
  5. XML 的属性值须加引号
  6. XML 中空格会被保留

三、C# XML操作模型

XML 语法注意

在程序中访问进而操作XML文件一般有两种模型,分别是使用DOM(文档对象模型)和流模型。

DOM模型:它允许编辑和更新XML文档,可以随机访问文档中的数据,可以使用XPath查询,但是,DOM的缺点在于它需要一次性的加载整个文档到内存中,对于大型的文档,这会造成资源问题。

流模型:对XML文件的访问采用的是流的概念,也就是说,任何时候在内存中只有当前节点,但它也有它的不足,它是只读的,仅向前的,不能在文档中执行向后导航操作。