一脚踩进java之xml01——基础语法
一、XML简介
1.1 什么是XML?
  1)XML是指可扩展标记语言(eXtensible Markup Language),它是一种标记语言,很类似HTML。它被设计的宗旨是传输数据,而非显示数据。
  2)XML标签没有被预定义,需要用户自行定义标签。
  3)XML技术是W3C组织(World Wide Web Consortium万维网联盟)发布的,目前遵循的是W3C组织于2000年发布的XML1.0规范。
  4)XML被广泛认为是继Java之后在Internet上最激动人心的新技术。
1.2 XML技术用于解决什么问题?
1) 在现实生活中存在大量有关系的数据,如下图所示。
  
2)问题:这样的数据该如何表示并交给计算机处理呢?
  ①XML语言出现的根本目的在于描述向上图那种有关系的数据。
  ②XML是一种通用的数据交换格式。
  ③在XML语言中,它允许用户自定义标签。一个标签用于描述一段数据;一个标签可分为开始标签和结束标签,在起始标签之间,又可以使用其它标签描述其它数据,以此来实现数据关系的描述。
④XML中的数据必须通过软件程序来解析执行或显示,如IE;这样的解析程序称之为Parser(解析器)。
1.3 XML常见应用
  1)XML技术除用于保存有关系的数据之外,它还经常用作软件配置文件,以描述程序模块之间的关系。(如后面将要学习到的Struts、Spring和Hibernate都是基于XML作为配置文件的)
  2)在一个软件系统中,通过XML配置文件可以提高系统的灵活性。即程序的行为是通过XML文件来配置的,而不是硬编码。
  3)数据交换:不同语言之间用来交换数据
二、XML语法
2.1 一个XML文件分为如下几部分内容:
  文档声明 
  元素
  属性
  注释  
  CDATA区 、特殊字符 
  处理指令(PI:Processing Instruction)
2.2 文档声明
  1)在编写XML文档时,需要先使用文档声明来声明XML文档。且必须出现在文档的第一行。并且必须指定
  2)最简单的语法:<?xml version=“1.0”?>
  3)用encoding属性说明文档所使用的字符编码。保存在磁盘上的文件编码要与声明的编码一致。如:<?xml version=“1.0” encoding=“GB2312”?>
  4)用standalone属性说明文档是否独立,即是否依赖其他文档。
	  如:<?xml version=“1.0” standalone=“yes”?>
	  yes不用引入外部的文件,no需要引入。(不常用)
2.3 XML元素
  1)XML元素指XML文件中出现的标签。一个标签分为起始和结束标签(不能省略)。一个标签有如下几种书写形式:
    包含标签主体:<mytag>some content</mytag>
    不含标签主体:<mytag/>
  2)一个标签中可以嵌套若干子标签,但所有标签必须合理的嵌套,不允许有交叉嵌套。
    <mytag1><mytag2></mytag1></mytag2>   WRONG
  3)一个XML文档必须有且仅有一个根标签,其他标签都是这个根标签的子标签或孙标签。
4)对于XML标签中出现的所有空格和换行,XML解析程序都会当作标签内容进行处理。
  5)一个XML元素可以包含字母、数字以及其它一些可见字符,但必须遵守下面的一些规范:
    ①区分大小写,例如,<P>和<p>是两个不同的标记。
    ②不能以数字或“-” (中划线)开头。
    ③不能以xml(或XML、或Xml 等)开头。
    ④不能包含空格。
    ⑤名称中间不能包含冒号(:)。
2.4 XML属性
  1)一个元素可以有多个属性,每个属性都有它自己的名称和取值,例如:<mytag name=“value” …/>
  2)属性值一定要用引号(单引号或双引号)引起来。
  3)属性名称的命名规范与元素的命名规范相同
  4)元素中的属性是不允许重复的
  5)在XML技术中,标签属性所代表的信息也可以被改成用子元素的形式来描述,例如:
  <mytag>
	    <name>
		      <firstName/>
		      <lastName/>
	    </name>
  </mytag>
2.5 注释
  1)XML中的注释语法为:<!--这是注释-->
  2)注意:
    ①XML声明之前不能有注释
    ②注释不能嵌套,例如:
    <!--大段注释
    …
	      <!--有一段注释-->
    …
    -->
2.6 转义字符
1)对于一些单个字符,若想显示其原始样式,也可以使用转义的形式予以处理。
  
2.7 CDATA区
  1)CDATA是Character Data的缩写
  2)作用:把标签当做普通文本内容;
  3)语法:<![CDATA[内容]]> 
  <![CDATA[
	    if(age > 50){
		      <name> 大于50的人 <name>
	    }
  ]]>
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号