zoukankan      html  css  js  c++  java
  • .net学习笔记---xml基础知识

    一、XML简介

      XML是一种标记语言,用于描述数据,它提供一种标准化的方式来来表示文本数据。XML文档以.xml为后缀。需要彻底注意的是XML是区分大小写的。

      先从一个简单的XML例子来了解下xml基础:

    <?xml version="1.0" encoding="utf-8" ?>
    <books ISBN="9787544238212">
      <title>xml学习笔记</title>
      <price>30</price>
      <pagecount>300</pagecount>
    </books>

      第一行表明,本XML遵守的版本是1.0,使用的字符编码是UTF-8字符集。

      每个XML元素都已一个起始标记开始和一个结束标记结束。比如开始:<title>,结束:</title>。XML元素可以带有属性,属性值要加引号。比如上例中的ISBN就是属性,属性值要加双引号。同时用等号连接。

      一个XML文档只能够有一个根节点,如上例中books就是根节点。

      以下列出XML的几个要点:

    1. XML是一种可扩展标记语言;
    2. XML的标记没有被预定义,用户可以自行定义标记来描述数据;
    3. XML主要用来描述和存储数据;
    4. XML具有自我描述性;
    5. XML是树状结构的文档,是个结构化的文档;
    6. XML文档是个文本文件;

    二、XML语法

    1. 每个开始标记都必须有结束标记;
    2. 一个XML文档只能够有一个根元素;
    3. 所有XML元素必须正确嵌套;
    4. 属性值必须加引号;
    5. 一个元素不能有相同的属性;

      下面以示例来解释XML常用的术语。

      1、标记

      标记分为开始标记和结束标记,如<title>就是一个开始标记。</title>就是一个结束标记。开始标记与结束标记之间的内容成为XML元素的内容。如果一个XML元素没有内容,我们称其为空元素。如<title></title>。

      2、元素

      XML元素是从一个开始标记到它结束标记的一段内容。比如 <title>XML学习笔记</title> 就是一个元素。

      3、属性

      一个元素可以带有属性,属性写在开始标记里,写在元素名称的后面。比如<books ISBN="9787544238212">,其中ISBN="9787544238212"就是books元素的一个属性。ISBN 是属性的名称, 9787544238212 是属性值。一个XML元素不能有相同的XML属性名。

    三、XML元素之间的关系

    1. 子节点;
    2. 父节点;
    3. 并列节点(兄弟关系);

      下面以一个例子来解释这三种关系。

    复制代码
    <?xml version="1.0" encoding="utf-8" ?>
    <father>Tom Smith
      <son>
        John Smith
        <grandson>Hans Smith</grandson>
      </son>
      <daughter>Jane Smith</daughter>
    </father>
    复制代码

        在上面的例子中,son元素就是father元素的子节点。father元素就是son元素和daughter元素的父节点。son元素和daughter又称并列节点。

      XML元素中可以带有属性作为XML元素的附加信息。

      如果属性值中包含双引号,就用单引号包围属性值。如:

    <site info = 'wo "ai" ni'>

      如果属性值中包含单引号,就用双引号包围属性值。如:

    <site info = "wo 'ai' ni">

      一个XML元素可以有一个或多个属性,每个属性用空格分开。如:

      <person name="zhangsan" age="23">

    四、XML名称命名规则

      XML的名称可以包含英文字母和数字,或者其他字符比如下划线。XML名称不能以数字或者标点符号开头,XML不能以xml开头(或者xml的大小写,因为这是XML相关标准的保留词)。XML名称不能包含空格,虽然XML名称支持下划线(_)、连字符(-)、句号(.)和冒号(:),但XML开头不能使用连字符(-)、句号(.)和冒号(:)。

       1、XML实体应用

      (1)、在XML标记里除了表示一个标记的开始之外,不允许有小于号<,因为小于号总是被XML解析器解释为一个标记的开始。

      如 :

    <person> if age < 10 </person>

      这行代码是错误的,如果一定要在XML元素内容里书写小于号,那么可以使用小于号的实体引用,即:&lt; 来替换小于号。

      如:

    <person> if age &lt; 10</person>

      是正确的写法。

      (2)在XML里也不能使用&这个字符,因为&被解释为某个实体引用的开始。所以必须使用&的实体引用&amp; 来代替&。

      如:

    • <person>a & b</person>     是错误的
    • <person>a &amp; b</person>  是正确的

      下面给出XML5个预定的实体引用

    实体引用 字符 说明
    &lt; < 小于号
    &gt; > 大于号
    &amp; &
    &apos; ' 单引号
    &quot; " 双引号

      当XML解析器解析含有上述实体引用的XML文档时,会将这些实体引用转换成相应的字符。

      只有<和&在XML是非法的。另外几个是合法的,可以直接写,只是用实体引用更加清晰而已。    

      2、XML CDATA区

      当需要往XML文档里添加一段内容,而内容里有很多<或者&的时候,将所有<或&转换为实体引用是很麻烦的事情,这时候可以使用CDATA区,在CDATA区里不必使用实体引用,因为XML解析器不会计算CDATA区里的内容。

      CDATA区以   <![CDATA[  开始 ,以  ]]>  结束

      示例如下:

    复制代码
         <mycode>
            <![CDATA[
              <html>
                <title></title>
                <body></body>
              </html>
            ]]>
         </mycode>
    复制代码

       需要注意的是:在CDATA区内,不能出现 ]]>

      3、XML注释

      XML注释以  <!--  开始,以  -->  结束。

      示例:

    <!-- 这是注释 -->

      在XML注释里面,除了结束符-->,不能出现两个连字符--。XML注释也可以放在元素内容里。

      4、XML声明

      XML文档应当以XML声明开始,不过不是必须的。

      示例:

    <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
    <person>
        张三
    </person>

      如果一个XML文档含有声明,必须放在XML文档的第一行。

      XML文档声明主要有三个参数。

    1. 版本:版本表示遵循的是W3C的XML1.0标准。
    2. 字符编码:字符编码表示该XML文档使用的字符编码方式。对于中文文档,应该使用UTF-8或者Unicode。如果是纯英文,可以使ISO-8859-1编码。
    3. 独立:如果XML standalone的值是no,表示它需要DTD。不需要DTD的XML文档,standalone的值应该写为yes。

      5、格式正确的XML文档。

    • 每个开始标记必须有结束标记。
    • XML文档只有一个根元素。
    • XML元素必须被正确嵌套。
    • XML元素不能有相同名称的属性。
    • XML属性值必须加引号。
    • XML注释不能卸载标记里。
    • XML文档里不能出现<和&标记。必须用实体引用代替。

      6、XML命名空间

      XML命名空间是为了解决当XML文档中存在多个相同名称的元素时,避免冲突而引入的。

      命名空间的语法:

    • xmlns:prefix="URI"
    • xmlns:表示必须的属性。
    • prefix:表示命名空间的别名,它的值不能为xml。
    • URI:用来标识抽象或物理资源的的紧凑字符串。为了保证标识的唯一性,xml采用Internet上的网址作为这个标识符,因为网址是独一无二的。

      默认命名空间示例:

    <?xml version="1.0" encoding="utf-8" ?>
    <Article xmlns="http://www.xxx.com/"> <!--默认命名空间-->
      <author age="30">张三</author>
      <length>12000</length>
      <price>42</price>
    </Article>

      带名字的命名空间|:

    <?xml version="1.0" encoding="utf-8" ?>
    <h:Article xmlns:h="http://www.xxx.com/"> <!--带前缀的命名空间-->
      <h:author age="30">张三</h:author>
      <h:length>12000</h:length>
      <h:price>42</h:price>
    </h:Article>

      7、DTD和XML Schema

      DTD文档类型定义,是一套关于标记符的语法规则。它是XML1.0班规格的一部分,是XML文件的验证机制。属于XML文件组成的一部分。DTD是一种保证XML文档格式正确的有效方法,可以通过比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用是否正确。一个DTD文档包括:元素的定义规则,元素间关系的定义规则,元素可使用的属性、可使用的实体或符号规则。不同的公司之需定义好标准的DTD,个公司都能够依照DTD建立XML文件,并且进行验证,如此就可以轻易的建立标准与交换数据。这样便满足了网络共享和数据交互。

      DTD文件是一个ASCII的文本文件,后缀名为.dtd。每一个XML文档都可以携带一个DTD,用来对该文档格式进行描述,测试该文档是否为有效的XML文档。

      XML Schema如果DTD一样是负责定义和描述XML文档的结构和内容模式的。它可以定义XML文档中存在哪些元素和元素之间的关系,并且可以定义元素和属性的数据类型。是针对DTD的某些缺点,如:DTD不支持数据类型,扩展性较差等而出现的。

      XML Schema具有以下优点:

    •   一致性:Schema使得XML得定义不必再利用一种特定的形式化语言,而是直接借助XML自身的特性,利用XML的基本语法规则来定义XML文档的结构。
    •   扩展性:Schema对DTD进行了扩充,引入了数据类型,命名空间,从而具备较强的可扩展性。
    •   互换性:利用Schema,我们能够书写XML文档以及验证文档的合法性。另外通过特性的映射机制,还可以将不同的Schema进行转换,以实现更高层次的数据交换。
    •   规范性:同DTD一样,Schema野提供了一套完整的机制以约束XML文档中的标记的使用。相比之下Schema基于XML,更具有规范性。
    •   XML Schema的限制功能例如:那些元素可以出现在文档中,元素间的关系是什么,每个元素有那些内容和属性以及元素出现的顺序和次数等等。
  • 相关阅读:
    华硕ASUS A3V 拆解图 http://m.linktone.com/report/pdjj/14001781862.shtml
    华硕A3V 迅驰 配置详情
    Dvbbs 更换论坛置顶图片
    Flash 图片轮换效果
    动网官方最新dvbbs7.1sp1商业版下载,附存储过程解密代码!
    在VC中为应用程序添加图形超链接功能
    VC常见数据类型转换详解
    查询Access逻辑字段遇到的问题 武胜
    几个不错的开源的.net界面控件 转自http://zchuang2004.spaces.live.com/blog/cns!8C4AEEE059DED8B1!157.entry 武胜
    C#正则表达式整理备忘 转载(http://www.cnblogs.com/KissKnife/archive/2008/03/23/1118423.html) 武胜
  • 原文地址:https://www.cnblogs.com/changrulin/p/4773340.html
Copyright © 2011-2022 走看看