一、概述
XML(Extensible Markup Language)一种扩展性标识语言,用户能够自己创造标识,可以储存、共享数据。
XML不是可执行的程序,只是一种数据的载体,其最大的特点就是可扩展性,当使用XML表示某个数据时用户可以根据需要组织任意符合XML规范的形式,且标记的名称可由用户根据需要任意指定。
二、用途
1存储数据
XML最根本的用途,对于一些需要持久化保存的数据可以使用XML格式的方式存储。如Web应用程序中的各种配置文件:Web.xml、hbm.xml、beans.xml等。
2分离数据
XML可以将数据和XML的展现分离,使数据的组织与展现相分离,提高开发效率。如HTML标记描述网页内容,而用CSS来控制网页的外观,因此当网页数据不变时,只需改变CSS就能改变网页的显示效果。
3交换数据
通过XML实现不兼容系统间的数据交换。将数据转换为XML格式减少交换数据的复杂性,且可使数据被不同的程序读取。如Ajax、Web Service、SOA等就是利用XML这种通用的数据格式,在不同系统间交换数据。
4共享数据
通过XML纯文本可以用来共享数据,由于XML数据是以纯文本的格式存储的,XML提供了一种与软件和硬件都无关的共享数据方法,因此使用XML保存的数据能够应用到不同的系统中实现数据共享的目的。
三、语法规范
1 XML的基本结构:以Web系统中hibernate.cfg.xml文档为例
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>
<session-factory>
<property name="dialect">
org.hibernate.dialect.SQLServerDialect
</property>
<property name="myeclipse.connection.profile">
com.microsoft.sqlserver.jdbc.SQLServerDriver
</property>
<property name="connection.url">
jdbc:sqlserver://localhost:1433;databaseName=hiberatetest
</property>
<property name="connection.username">sa</property>
<property name="connection.password">123456</property>
<property name="connection.driver_class">
com.microsoft.sqlserver.jdbc.SQLServerDriver
</property>
<mapping resource="bean/Member.hbm.xml" />
</session-factory>
</hibernate-configuration>
2 文档声明
<?xml version="1.0" encoding="UTF-8"?>
Version属性定义XML文档所遵循的版本,encoding属性声明了XML文档使用的字符编码格式。
3 元素规范
元素标记必须闭合,合理嵌套;当元素没有文本节点时可采取自封闭对元素节点进行封闭:<mapping resource="bean/Member.hbm.xml" />
只有一个根元素:每个XML文档都必须包含一个单独的标记来定义整个文档即根元素,也就是XML文档的第一个元素,<hibernate-configuration>为hibernate.cfg.xml的根元素;
元素为成对标签之间的内容元素之间有上下级关系,如<propert>元素为<session-factory>元素的子元素。
元素名称的命名规范:
a区分大小写
b元素名字可以包含字母、数字和其它字符;
c元素名字不能以数字或标点符号开头;
d元素名字不能以XML(xml,Xml......)开关;
e元素名字不能包含空格和一些特殊字符等。
4 XML属性
XML属性是XML元素的一部分,定义在XML元素标签中,且属性有对应的属性值。<property name="dialect">中name为属性,dialect为属性值。
属性规范:
a一个元素只能有一个同名属性;
b属性值必须用括号括起来,可用双引号也可用单引号。
5 注释的写法
注释行
<!-- Generated by MyEclipse Hibernate Tools. -->
注释段落
<!-- Generated by MyEclipse
Hibernate Tools.
-->