XML

来源:互联网 发布:floydwarshall 算法 编辑:程序博客网 时间:2024/06/08 07:55

XML语言即是可扩展标记语言,可以对文档和数据进行结构化处理,它被设计用来传输和存储数据

XML语法

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

文档声明

一般放在文档的第一行,说明XML文档的类型和字符编码格式

<?xml version="1.0" encoding="utf-8"?>

元素

XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。一个元素可以包含其他元素、文本、属性等,一般一个XML文件包含一个根标签,其他标签都是这个根标签的子标签。
- 一个标签中可以嵌套多个子标签,但所有标签必须合理嵌套,不允许交叉嵌套;

  • XML标签中出现的空格和换行都会被当做标签的内容进行处理;

  • XML元素可以包含字母数字和一些可见字符,但是名称不能以数字或者标点符号开始、名称不能以字母 xml(或者 XML、Xml 等等)开始、名称不能包含空格;

  • XML是大小写敏感的;

  • XML中的标签总是成对出现的,结束标签不能省略;

  • 如果没有结束标签,元素必须以/结尾;

属性

XML元素具有属性,类似 HTML。属性(Attribute)提供有关元素的额外信息。一个标签可以有多个属性,每个属性都有自己的名称和取值;例如

<applet code = 'hellloWorld.class' width = '300' height = '100'>
  • 属性必须用单引号和双引号括起来;

  • 所有属性必须有属性值;

  • 标签属性所代表的信息,其实可以用子元素的形式来描述;

<applet>    <code>hellloWorld.class</cede>    <width>300</width>    <height>100</height></applet>

注释

XML 中编写注释以 < !–注释– > 格式,注释中不能包含字符串–。

CDATA区

CDATA区的内容不会而被解析引擎解析,而是被当做原始内容处理,一般被放在 < ![CDATA[内容]] > 中,内容中可以包含<、>、&之类的特殊字符。

特殊字符

字符引用:可以使用&#的十进制或&#x的十六进制形式;
实体引用:对一些特殊字符,如果要显示其原始样式,需要使用&name的形式,也可以在DTD中定义其他实体引用

特殊字符 替代字符 & &amp < &lt > &gt “ &quot ‘ &apos

处理指令

处理指令(processing instruction,PI)用来告诉解析引擎如何解析XML文档内容,以

<?xml-stylesheet type = "text/css" herf = "1.css">

XML约束

用来约束XML文件结构的文档,有文档类型定义(Document Type Definition,DTD)和XML Schema两种方式,它们都包含了用于解释文档应如何构成的规则,这些规则指定了每个元素的合法子元素和属性。

DTD

文件使用

DTD既可以在XML文件内编写,也可以从外部引用。
- 在XML文件内编写格式为:

<!DOCTYPE 根元素 [元素声明]>

文档类型必须匹配根元素的名字,例子如下:

<!DOCTYPE configuration [    <!ELEMENT configuration...>    more rules    ...]><configuration>...</configuration>
  • 外部引用:当引用的文档在本地时,可以使用SYSTEM声明来进行引用,格式为:
<!DOCTYPE 根元素 SYSTEM "文件名">

例如:

<!DOCTYPE configrition SYSTEM "config.dtd">

解析XML文件

要处理XML文件必须先解析它,解析一个XML的过程是,先读入一个文件,确认文件具有正确的格式,然后将其分解为各个元素,JAVA提供了两种XML文件解析器:文档对象模型解析器和流机制解析器;

文档对象模型解析器

文档对象模型解析器(DOM)将读入的XML转换成树结构,当需要处理很长的文档时,用它生成树结构将耗费大量的内存,如果程序只关心文档中的某些元素而不关心上下文,可以考虑使用流机制解析器。

原创粉丝点击