XML(eXtensible Markup Language,可扩展标记语言)是由W3C(World Wide Web Consortium,万维网联盟)推出的新一代网络数据表示、传递和交换的标准,是Internet环境中跨平台的、依赖于内容的技术。
在创建一个XML文档时,可以由用户自己定义各种标记并以任何名字为它们命名,XML 几乎可以用来描述所有形式的文档。例如,程序的内容是描述一本书的相关信息。通常,可以在IE 浏览器中打开XML文档
<?xml version="1.0" encoding="gb2312"?>
<books>
<book isbn="7-302-02368-9">
<title>数据结构</title>
<author>严蔚敏,吴伟民</author>
<publisher>清华大学出版社</publisher>
<price>22.0</price>
</book>
</books>
1)良好的可扩展性
2)XML数据内容与显示样式的分离
XML的特点:
1)具有良好的格式
2)具有验证机制
3)增强了Web 应用的灵活性
4)具有丰富的显示样式
5)是电子数据交换(EDI) 的通用格式
6)支持复杂的数据关系和快捷的数据处理
7)具有面向对象的特性
8)是一种开放的标准
9)技术体系性强
DTD与Schema:
DTD(文档类型定义):是一套关于标记的语法规则,它可以详细描述一组XML文档的结构。DTD中声明了XML文件可以拥有的元素、属性、注释或实体。
XML Schema:提供了一套完整的机制用以约束XML文档中属性、标记等元数据的使用,并且本身也是一个符合XML标准的XML格式文件,更具规范性。
一个正规的XML文档如果与某个DTD文档或Schema文档相关联,并遵守相应的限制条件,就称之为有效的XML文档。
图书信息表XML文档对应的DTD文档:
在XML文档中声明相应的DTD文档出处的程序语句为
完整代码:
<?xml version=“1.0” encoding=“gb2312”?>
<!--文件名:例1-5.xml-->
<!DOCTYPE 图书信息表 SYSTEM “例1-4.dtd” >
<图书信息表>
<图书>
<书名>XML高级编程</书名>
<作者>(英)Mark Birbeck</作者>
<定价>108.00元</定价>
</图书>
<图书>
<书名>XML程序设计</书名>
<作者>栗松涛</作者>
<定价>40.00元</定价>
</图书>
</图书信息表>
XSLT 即XML Stylesheet Language Transformation,是一种用来实现在XML文档之间进行相互转换的语言。利用XSLT技术,可以从一个已经存在的XML文档中抽取数据,组织不同的形式,并转换为指定的目标文件。
如:
修改xml文件:
<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type="text/xsl" href="1-5.xsl" ?>
<books>
<book isbn="7-302-02368-9">
<title>数据结构</title>
<author>严蔚敏,吴伟民</author>
<publisher>清华大学出版社</publisher>
<price>22.0</price>
</book>
</books>
结果如下:
文档对象模型(Document Object Model,DOM)是W3C制定的一套应用程序标准接口规范。
XML DOM以树状层次节点来存储XML文档中的所有数据,每一个节点都是一个相应的对象。当XML文件较大时,XML DOM 的处理效率较低,甚至会出现由于文件过大导致内存溢出问题。利用DOM,程序开发人员可以方便地对XML文档进行操作,包括创建文档、遍历文档,添加、删除、修改和编辑文档内容,改变文档的显示方式等。
SAX是一种轻量级方式,采用了基于事件驱动的处理方式,可以在对XML文件进行读取的同时,进行响应和处理,不需要把整个XML文件读入内存,适合处理大型XML文档的操作。
StAX是一种基于流的处理方式。
XPath:
1)用于实现对XML文档中某个特定标记的定位,是一门在XML文档中查找信息的语言。
2)采用路径表达式,借助于元素和属性选取XML文档中的节点或者节点集。
3)简单的XPath表达式:/books/book/title,表示选定一个XML文档中所有图书名称节点。