一、XML语言简介

1、XML发展史

1) gml:(1969)Generalized Markup Language通用标记语言:主要的目的是为了达到不同的电脑进行通讯的数据规范
2) sgml(1985)标准通用标记语言
3) html(1993)HyperText Markup Language :随着万维网的出现才出现的html语言,但是本身是有缺点的,例如其标记不能自定义,本身缺少一些含义;html没有真正的国际化
4) xml():1998  Extensiable markup  language(可扩展标记语言)   w3c组织在html语言的基础上推出xml语言

备注 :可扩展标记语言主要是给浏览器或者给一些语言观看的,但并不是纯粹的给浏览器看的,也可以给java、其他语言看,xml的编程是好多语言都可以使用的。

2、XML的常见应用

1)xml的出现解决了程序间数据传输的问题:(数据传输的通用格式),用xml格式来传送数据,具有良好的可读性和可维护性
2)xml可以做配置文件
比如tomcat服务器的Server.xml,web.xml;sturts中的sturts-config.xml文件;以及hibernate的hibernate.cfg.xml
3)xml可以充当小型的数据库
可使用xml文件做小型数据库,程序中会用到一些经常要人工配置的数据。如果放在数据库中读取不合适(会增加数据库的维护工作),则可以考虑用xml来做小型数据库(比如msn中保存用户聊天记录就是用xml文件的),而且直接读取文件显然要比读取数据库快

3、XML文件的构成:

【1】 文档声明

<?xml vesion="1.0" enconding="gb2312"? standalone="yes"?>
1) xml :表明该文件是xml文件
2) version :表示xml的版本号
3) enconding :文档的字符编码,用来告诉浏览器按照什么样的编码方式来解析,但是文件在存储的时候用的是ANSI,(在保存的时候可以进行不同的编码格式保存)编码问题:ANSI是American national standard insitute(美国国家标准协会)制定的一个编码格式,在不同的国家是不一样的,中国ansi对应的就是gb2312;在台湾ansi对应的可能就是gbk big5

4) standalone :文档定义是否独立使用(即这个xml文件是否和别的文件由配合使用)standalone="no"是默认的

【2】 元素

1)一个xml元素可以包含的内容:字母、数字以及其他一些可见字符,但是必须遵守下面一些规范:
  A、区分大小写,例如:<P><p> 是两个不同的标记
  B、不能以数字或“_”(下划线)开头
  C、不能包含空格
  D、名称不能以数字开头,中间不能包含冒号,冒号是留给命名空间使用的
  E、标签成对、空标签关闭、标签正确嵌套[2]元素/标签 的写法:

2)备注:

 不含标签体的两种写法:<age></age>  或者</age>

 对于xml标签中出现的所有空格和换行,xml解析程序都会当做标签内容进行处理,例如下面两段内容的意义就不一样:
     写法一:<stu>xiaoming</stu>    这种写法是标准的格式要求写法
     写法二:
    <stu>
      xiaoming 
    </stu>

由于在xml文件中,空格和换行都作为原始内容被处理,所以,在编写xml文件中,要特别注意

【3】属性

  属性值用双引号括起来,或者用单引号括起来。如果属性值中有单引号,则用双引号分隔,有双引号,用单引号分隔;属性值不能包括<,>,&
<stu id='a001'>  允许
<stu id="a001"> 允许
<stu id='a"0"01'>  允许  单引号中间有多少个双引导都无所谓
<stu id="a'0'01">  允许  双引号中间有多少个单引号都无所谓
<stu id=a001>   不允许
特别说明:如果属性值有单引号,有双引号,则需要使用html 转义字符(实体)例如:

常见的转义字符/实体:对于一些单个字符,若想显示其原始样式,也可以使用转义字符进行处理;
转义字符      字符
&lt;        <
&gt;       >
&amp;        &
&quot;       "
&apos;       '

可参看帮助文档   http://www.phpstudy.net/e/html/html_entities.html

【4】注释

1) 注释的写法:<!-- 注释 -->
2) 注释内容中不要出现- -
3) 不要把注释放在标记中间: <Name<!--the name-->>Tom</name>
4) 注释不能嵌套
5) 注释可以在除标记以外的任何地方注释
【5】CDATA节:

  有些内容不想让解析引擎解析执行,而是当做原始内容处理,用于把整段文本解释为纯字符数据而不是标记。里面包含大量<、>、& 或者 字符,CDATA节中的所有字符都会被当做元素字符数据的常量部分,而不是xml标记。
  语法:可以输入任意字符除]]>外,且不能嵌套
  <![CDATA[
    ........
  ]]>
备注:文件主要分为文本文件和二进制文件;
例如:<intro><![CDATA[这个是sdfadfafas&*(&*(&(*&;学生]]></into>
放在<![CDATA[........]]>  CDATA中间的东西文本解析器就不会把它当做一个标记来解析,而是将其当做文本可以通过一个方法将CDATA中间的内容给取出来;

【6】处理指令:processing insturction

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

 

posted @ 2016-12-30 18:22  爱笑的berg  阅读(398)  评论(0)    收藏  举报