Chinaunix首页 | 论坛 | 博客
  • 博客访问: 17911656
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类:

2008-05-27 22:01:39

本文节选于《Programming PHP》第二版(中译名《PHP程序设计》第二版,Haohappy等译,电子工业出版社出版) Programming PHP中文版(第2版)

XML(eXtensible Markup Language,可扩展标识语言),是一种标准化的数据格式。它看起来有点类似HTML,也有标签(like this)和实体(如&)。但和HTML不一样的是,XML设计的目的是为了便于被解析,并且在XML 文档中你要遵循很多规则(哪些是你可以做的,哪些是你不能做的)。现在,在出版、工程、医药等很多领域,XML已经成为一种标准化的数据格式。XML可用 于远程过程调用(RPC, Remote Procedure Calls)、数据库、商品订单等等。

在很多情况下你可能会用到 XML。因为它是一种数据传送的通用格式,其他程序可以通过提取信息(解析)或者用HTML显示(转换)的方式让你使用XML文件。本章介绍如何使用 PHP内置的XML解析器,也介绍了如何使用可选的XSLT扩展来转换XML。我们还会简要介绍如何生成XML文档。

最近,XML已经被用于远程过 程调用(XML-RPC)。客户端将函数名和参数值用XML编码后通过HTTP发送至服务器,服务器收到后解码函数名和值,再决定如何处理,最后返回一个 XML编码的响应值。XML-RPC已经被证明是一种集成用不同语言编写的应用程序组件的好方法。在本章中,我们将会介绍如何编写XML-RPC服务器和 客户端。

11.1  入门指南

Lightning Guide to XML XML  

大多数XML文档由元素(类似于HTML标签)、实体和规则数据组成。例如:

  Programming PHP

 

    Rasmus Lerdorf

    Kevin Tatroe

    Peter MacIntyre

 

在HTML中,常常可以用不封闭的标签,最常见的例子:


但在XML中,这样是非法的。XML要求每个开始标签都必须有一个对应的结束标签。对于没有包含任何事物的标签,例如表示断行的
,XML使用如下语法:


标签可以嵌套但不能重叠,例如这样是合法的:

Programming PHP

但这样是非法的,因为book和title标签重叠了:

Programming PHP</book>

XML也要求文档以处理指令开始中,以确定所使用的XML版本(或其他内容,如编码)。例如:

对于具有良好格式的XML文档,最重要的是文件顶级层次中只能有一个元素,如下面的格式是良好的:

  Programming PHP

  Programming Perl

  Programming C#

下面的格式则是糟糕的,因为有三个元素在最顶级层次并列存在:

Programming PHP

Programming Perl

Programming C#

XML文档通常不是完全与众不同。XML文档中特定的标签、属性和实体,还有支配它们如何嵌套的规则构成了文档结构,有两种 方法可用于记录这种结构:DTD(Document Type Definition,文档类型定义)和Schema。DTD和Schema用来验证文档,也就是为了保证XML文档遵循其文档类型的规则。

大多数XML文档不包含DTD。许多XML文档用一个给定DTD的名称和位置(文件或URL)的标签将DTD指定为外部文档:

有时将一个XML封装到另一个XML是很方便的。例如一个显示邮件信息的XML可能会有一个带有附件的attachment元素。如果附件文件也是一个XML文档,就形成了一个

嵌套XML文档。如果邮件信息文件中有一个body元素(邮件主体),并且所带的文件也是XML格式,且也含有一个body元素,但是该元素与前者有着完全不同的DTD规则,那怎么办呢? 如何使body在文件的各部分含义不同但又是合法的?

这个问题可以用命名空间(或称名字空间,namespace)。命名空间可让你限定XML标签,如:email:body和human:body。

XML还有很多内容我们无法在此介绍,想更详细了解XML,可以阅读Erik Ray所著的《Learning XML》(由O'Reilly出版)。如果需要一本XML语法和标准的完全参考,可以阅读Elliotte Rusty Harold和W. Scott Means所著的《XML in a Nutshell》(由O'Reilly出版)。

阅读(618) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~