一、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转义符与注释

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

XML 语法 注意

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

三、C# XML操作模型

XML 语法注意

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

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

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