XML

来源:互联网 发布:中美7.13南海对峙知乎 编辑:程序博客网 时间:2024/05/16 14:30

什么是XML

  • 英文全称为Extensible Markup Language,翻译过来为可扩展标记语言。XML技术是W3C组织发布的,目前遵循的是W3C组织于2000发布的XML1.0规范。
  • 现实生活中存在着大量的数据,在这些数据之间往往存在一定的关系,我们希望能在计算机中保存和处理这些数据的同时能够保存和处理他们之间的关系。
  • XML就是为了解决这样的需求而产生数据存储格式。

XML是如何保存数据

  • XML语言中,它允许用户自定义标签。每一个标签用于描述一段数据;
  • 一个标签可以分为开始标签和结束标签,在开始标签和结束标签之间又可以嵌套其它标签,利用标签间的嵌套关系来保存数据之间的上下级关系;
  • 由于xml实质上是一段字符串,计算机可以十分方便的对他进行操作,开发人员也可以方便的阅读,因此可以说这是一种对人、对计算机都友好的数据存储格式,所以XML迅速普及,成为了一种非常常见的数据存储格式,在许多应用场景中得到应用。
     示例如下:
<?xml version="1.0" encoding="GB2312"?><中国><北京><海淀></海淀><丰台></丰台></北京><河北><唐山></唐山><石家庄></石家庄></河北><山东><济南></济南><青岛></青岛></山东></中国>

XML常见应用场景  

    传输数据

  • XML本质上是一段字符串,具有跨平台性的特性,因此XML常被用来在不同系统之间进行数据交换。
  • 一个典型的android应用是由服务器发送信息给android客户端后,由android客户端负责展示。此时,android客户端是java+android开发环境的。而服务器端很可能是C#+windows开发环境。如何在不同的语言、不同操作系统之间传输数据呢?XML就是一个很好的选择。

    配置文件

  • XML可以在保存数据的同时保存数据之间的关系。利用这一特点,它还经常用作应用程序配置文件来使用。

XML校验

  • 浏览器除了内置HTML解析其外还内置了XML解析器,因此我们可以使用浏览器对XML进行校验。

XML语法

  • 一个XML文件分为如下几部分内容:
    • 文档声明 
    • 元素
    • 属性
    • 注释  
    • CDATA区 、特殊字符 
    • 处理指令(processing instruction 

                               


XML文档声明

  • XML的文档声明是用来声明文档基本属性的,XML解析器将根据文档声明决定如何正确解析一个XML                
            ① 通常来说一个XML必须包含且只包含一个文档声明
            ② 文档声明必须处在XML的第一行,前面不能有其他内容
            ③ 如果一个XML不包含文档声明则称这样的XML为格式不良好的XML
            ④ 在许多时候即使不包含文档声明,XML也可以被正常使用,但是这是不符合标准的,存在风险,因此强烈推荐大家在书写XML时写上文档声明。       
       写法一:           
            最简单写法:
<?xml version="1.0" ?>
version 代表当前xml所遵循的xml标准。
在第二个问号之前应该有一个空格
注意:问号、引号、空格都必须为英文半角
         

     写法二

                用encoding属性说明文档的字符编码:
  <?xml version="1.0" encoding="GB2312" ?> 
  encoding告知解析器使用何种编码解析当前xml
  encoding默认值为ISO8859-1 
         

    写法三

                用standalone属性说明文档是否独立:
<?xml version="1.0" encoding="GB2312"  standalone="yes" ?>
 standalone表示当前xml文档是否是一个独立文档,当为yes时表示是一个独立文档,当为no时表示当前文档需要其他文档支持。

    XML元素

    ① 一个XML标签就是一个XML元素。
        ② 一个XML标签分为开始标签和结束标签,在开始标签和结束标签之间的文本被称为标签体。
包含标签体:<a>www.itcast.cn</a>
③ 如果一个不包含标签体也不包含其他元素,那么可以将开始标签和结束标签合并,这样的标签称为自闭标签
④ 不含标签体及其他元素:<a></a>可以简写为自闭标签:<a/>
⑤一个标签中也可以嵌套若干子标签。但所有标签必须合理的嵌套,绝对不允许交叉嵌套

        ⑥ 格式良好的XML文档必须有且仅有一个根标签,其它标签都是这个根标签的子孙标签。反例:
<?xml version="1.0" ?><span style="white-space:pre"></span><a>   <span style="white-space:pre"></span>www.csdn.cn<span style="white-space:pre"></span></a><span style="white-space:pre"></span><a>   <span style="white-space:pre"></span>www.it5.cn<span style="white-space:pre"></span></a>
          ⑦ 格对于XML标签中出现的所有空格和换行,XML解析程序都会当作标签内容进行处理。例如:下面两段内容的意义是不一样的。
<--第一段--><网址>www.csdn.cn</网址><--第二段--><网址>www.csdn.cn</网址>
由于在XML中,空格和换行都作为原始内容被处理,所以,在编写XML文件时,使用换行和缩进等方式来让原文件中的内容清晰可读的“良好”书写习惯可能要被迫改变。

命名规范

   一个XML元素可以包含字母、数字以及其它一些可见字符,但必须遵守下面的一些规范:
    ① 区分大小写,例如,<P>和<p>是两个不同的标记。
② 不能以数字或标点符号或"_"开头。
③ 不能以xml(或XML、或Xml 等)开头。
④ 不能包含空格。
⑤ 名称中间不能包含冒号(:)。

属性

① 一个标签可以有多个属性,每个属性都有它自己的名称和取值,例如:
<china capital="beijing"/>
② 属性值一定要用双引号(")或单引号(')引起来
<china capital='beijing'/>
③ 定义属性名必须遵循与元素相同的命名规范 

XML注释

Xml文件中的注释采用:“<!--注释-->” 格式。
      注释不能出现在文档声明之前(因为XML要求文档声明必须在第一行,之前不能有其他内容)

CDATA区

① 当XML中一段内容不希望被解析器解析时可以使用CDATA区将其包住
② 当解析器遇到CDATA区时会将其内容当作文本对待,不会进行解析


    语法:<![CDATA[ 内容 ]]>

场景一:在输入框中输入的用户名,密码,使用XML保存传递到后台。

不使用CDATA

                   

使用CDATA:

                     

转义字符

对于一些单个字符,若想显示其原始样式,也可以使用转义的形式予以处理。
     CDATA区与转义的不同:CDATA可以保留特殊符号而转义是使用其他的符号代替特殊符号。因此场景一中问题应使用用CDATA区处理.

在读取的时候,解析器会自动将其转换回"&","<",">"等特殊字符,正常来说,只有"<" 字符和"&"字符对于XML来说是严格禁止使用的。 
  需要注意的是: 
a. 转义序列各字符间不能有空格; 
b. 转义序列必须以";"结束; 
c. 单独的&不被认为是转义开始; 
d. 区分大小写。 


以下是XML中需要的转义字符:[/size] 
&(逻辑与)  &amp;        
>(大于)    &gt;        
"(双引号)  &quot;      
'(单引号)  &apos; [/size];

处理指令

处理指令,简称PI (processing instruction)。处理指令用来指挥解析引擎如何解析XML文档内容。
    例如,在XML文档中可以使用xml-stylesheet指令,通知XML解析引擎,应用css文件显示xml文档内容。
         <?xml-stylesheet type="text/css" href="1.css"?>
    处理指令必须以“<?”作为开头,以“?>”作为结尾,
    XML文档声明语句就是最常见的一种处理指令。 


0 0
原创粉丝点击