XML入门 (上)

xml

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 
了解XML将帮助你明白为什么说它是建立Web应用的完美选择
  
    如果你已经有了自己的个人网站或自己的公司网站,或者你已对Web有了相当的了解,那你可能已经注意到了有关一门新的Web技术的疯狂地讨论---XML。在今年早些微软公司发布了IE5(第一个商业化的支持XML标准的浏览器)后,这种疯狂的热情已经变成了大家争相参与的事实。在这里,你也许会问自己一个很重要的问题:
    
    1.什么是XML?
        
    XML是可扩展标志语言(eXtensible Markup Language)的简称.象HTML一样,XML是从所有标志语言的元语---标准通用标志语言SGML(Standard Generalized Markup Language)那里派生出来的.SGML是一种元语言,也可以称为一个定义诸如HTML等标志语言的系统.XML也是一种元语言,一个定义Web应用的SGML的子集.和SGML一样,你也可以用XML来定义种种不同的标志语言满足不同的需要,特别在数据表现方面.
  
    
  
    随着Web应用的不断发展,HTML的局限性也越来越明显的体现出来了:
  
    
  
    首先,HTML是一种界面技术:它把数据和数据的表现形式混在了一起,这使得分开两者变得相当的困难.
  
    它有一个复杂的标签集:你不能用你自己的特定应用标签来扩展它.
  
    它是"平面型"的:你不能指定一种数据的层次结构来表现数据间诸如包含,重要性等这些细节.
  
    它不能把数据简单地传送给客户端让客户端自行进行进一步的处理.事实上,HTML总是在服务器端产生,客户端只是一个显示机器.
  
    它只能提供一种显示方式给你的数据.如果你想提供不同的显示方式,你就不得不在服务器端重新产生这些数据和完整的HTML页,这样才能在客户端显示出来.如果数据和显示形式是分离的话,那你就可以把数据下载到客户端,之后根据你的需要随意发送有关这些数据的不同的显示方式.
  
    它的可读性不强,无论是人读还是计算机读都是一样.HTML也不是很严谨.有些标签需要匹配开始符和结束符
  
    (象<body>和</body>),但是也有一些只有开始符没有结束符(象<p>和<b>).HTML解释器不得不处理这些有点随机的格式.
  
    HTML和XML是World Wide Web Consortium,简称W3C 制定的标准.W3C的成员意识到随着互联网的飞速发展,必须要找到一种办法将数据和网页的表现方式分离开来----因此XML诞生了.为什么不就用SGML呢?这里我不想列举那些恼人的细节,反正有足够的理由来证明SGML相当的复杂(它的说明有500多页);XML标准远比它简单(只有少少的26页).
  
    尽管严格地讲,XML只是一种数据标志说明语言,但它已经开始渐渐地把一系列相关的技术包含进来了,象XML DOM,XSL,XLL,XML 命名空间和VML.在本文中,我们将看到XML,XSL(eXtensible Style Language可扩展形式语言),和XML DOM (Document Object Model文档对象模型)这几种先进的技术,我们还会介绍其他的标准.
  
    
  
    2.剖析一个XML文件
  
    
  
    XML 1.0标准可以在www.w3.org/TR/REC-xml这个网址上找到.不过要注意,虽然那不是学习XML的最好去处,但在你看完这篇文章后,请再看看它,相信你会有更深的体会.
  
    在看第一个例子之前,让我们先熟悉一下XML的命名系统.与HTML类似,一个XML的开始标签是这样声明的<标签>.结束标签也类似,不过在小于号后面要加一个前斜杠</标签>.一个标签对和它中包含的内容,象<movie>Gone with the Wind</movie>,被称为一个元素.所有在一个开始标签和一个结束标签中的东西都被称为一个元素的内容.在上面的例子中,Gone with the Wind是movie这个元素的内容.XML的开始标签也可以是属性列表,象<tag attribute1="100" attribute2="200">.
  
    
  
    如果XML文件遵循了基本的标准规则(以后会详细介绍),那么它们就是格式正确的XML文件.而所要遵循的最基本的规则就是每一个有开始标签的元素都要有一个相应的结束标签,而且子元素的结束标签一定要在包含它的母元素的结束标签之前.
  
    
  
    例如,这就是不和规则的形式:
  
  
  
    <auction_item>
  
     <description>
  
    </auction_item>
  
     </description>
  
    而这是合乎规则的形式:
  
    <auction_item>
  
     <description>
  
     </description>
  
    </auction_item>
  
  
  
    在W3C的XML标准中有完整而详细的规则列表.一个格式正确的XML文件必须至少包含一个元素.也就是说,文件中必须有根元素(不在其他任何一个元素中的元素).这使得每一个XML文件都是一个层次分明的元素列表.XML文件通过把元素置于其他标签对中,来定义产生这种元素间的层次关系(父子,兄弟关系).
  
    为了说明这一点,让我们来看一个例子:
  
    
  
    表 A: XML格式的航空公司的航线数据示例
  
  
  
    <?xml version='1.0'?>
  
    <!-- This is an example of airline flights in XML -->
  
    <flight_schedule>
  
     <flight flight_number="1073/61">
  
      <origination>
  
       <city> <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />Raleigh, NC </city>
  
       <airport> RDU (Raleigh Durham Intl.)</airport>
  
      </origination>
  
      <destination>
  
       <city> San Francisco </city>
  
       <airport> SFO (San Francisco Intl.)</airport>
  
      </destination>
  
      <connection>
  
       <city> Charlotte, NC </city>
  
       <airport> CLT </airport>
  
      </connection>
  
      <airline> US Airways </airline>
  
      <price>1492.00</price>
  
      <aircraft>
  
       <manufacturer> Boeing </manufacturer>
  
       <model> 747 </model>
  
      </aircraft>
  
      <movie> No </movie>
  
      <meal> dinner </meal>
  
      <departure_time> 11:00 </departure_time>
  
      <arrival_time> 14:00 </arrival_time>
  
     </flight>
  
    <!-- More flights would go here, check the data file for an example -->
  
    </flight_schedule>
  
  
  
    表A是一些以XML格式表述的航空公司的航线数据.你可以看到XML相对来说可读性比较强.标签和它们的内容都具有相当的自释性.如果在一个HTML表单中又会是怎样的呢?
  
    你几乎不可能把数据从网页中分离出来.但在XML格式下,我们可以轻松地用一个旅行代理程序得到这些数据,把它们存到一个数据库中,或重新格式它的显示方式.
  
    现在让我们进一步剖析这个例子.第一行是XML的标准标题:
  
    <?xml version="1.0" ?>
  
    这个标题告诉处理程序(在这里指IE5 XML解释器和浏览器)这是一个XML文件,同时声明这个文件遵从哪一个XML版本(到现在为止只有1.0版).
  
    文件的下一行是一个注释:
  
    <!--An example of airline flights in XML-->
  
    XML的注释格式和HTML一样,你可能对此早已熟悉.但是与HTML不同的是,XML文件中所有的开始标签都必须匹配一个结束标签,所以在层次结构首部的开始标签<flight_schedule>,必须有一个匹配的结束标签,</flight_schedule>,在文件的结尾.
  
    剩下的则是一系列被开始标签和结束标签定义的元素.这个例子描述了一个有两个航班的航班时间表.每一个航班都包含了下面所示的层次化的数据:
  
  
  
    Origination
  
     City
  
     Airport
  
    Destination
  
     City
  
     Airport
  
    Connection
  
     City
  
     State
  
     Airport
  
    Airline
  
    Price
  
    Aircraft
  
     Manufacturer
  
     Model
  
    Departure_time
  
    Arrival_time

时间: 2025-01-15 03:03:06

XML入门 (上)的相关文章

XML入门精解之结构与语法

xml|语法 现在我们暂且使用"记事本"来创建我们的XML文件吧.先看一个XML文件: 例1 〈?xml version="1.0" encoding="gb2312" ?〉 〈参考资料〉 〈书籍〉 〈名称〉XML入门精解〈/名称〉 〈作者〉张三〈/作者〉 〈价格 货币单位="人民币"〉20.00〈/价格〉 〈/书籍〉 〈书籍〉 〈名称〉XML语法〈/名称〉 〈!--此书即将出版--〉 〈作者〉李四〈/作者〉 〈价格 货币单位

XML入门精解之文件格式定义

xml DTD实际上可以看作一个或多个XML文件的模板,这些XML文件中的元素.元素的属性.元素的排列方式/顺序.元素能够包含的内容等,都必须符合DTD中的定义.XML文件中的元素,即我们所创建的标记,是根据我们应用的实际情况来创建的.想要创建一份完整性高.适应性广的DTD是非常困难的,因为各行各业都有他们自己的行业特点,所以DTD通常是以某种应用领域为定义的范围,如:医学.建筑.工商.行政.DTD定义的元素含盖范围越广泛,那么就越复杂.  DTD可以是一个完全独立的文件,也可以在XML文件中直

XML入门精解之CSS和XSL

css|xml CSS(叠层样式表)和XSL(可扩展样式语言)都可以定义XML文件的显示,这两种方式有哪些不同以及它们在使用中的具体方法,我们将在本文给予介绍. 在XML文件中,使用的基本上是自定义的标记,显然一个浏览器是无法理解这些标记的,现在,浏览器仅仅是作为一个XML文件的解析器--只要你的XML文件是Well-Formed的,那么它就将文件原封不动地给你显示出来.在XML中内容与表现形式是分开的,在一个XML的源文件中并没有关于它表现形式的信息.XML的最大特点就是揭示了信息本身的含义,

XML入门精解-------结构与语法

xml|语法 ■创建XML文件的工具 XML文件和HTML文件一样,实际上是一个文本文件.显然大家立刻就会明白,创建XML文件最普通的工具和HTML一样,就是"记事本"了.除了"记事本"之外,当然还有一些更加方便的工具,如XML Notepad.XML Pro.CLIP!XML Editor等,这些工具的一大特点是:能够检查你所建立的XML文件是否符合XML规范.不过,现在这些工具都只有英文版的,并且需要付费使用.当然,你仍然能够使用FrontPage.DreamW

sql xml入门:xpath和xquery

/* sql xml 入门:     --by jinjazz     --http://blog.csdn.net/jinjazz         1.xml:        能认识元素.属性和值         2.xpath:    寻址语言,类似windows目录的查找(没用过dir命令的话就去面壁)                                 语法格式,这些语法可以组合为条件:                 "."表示自己,".."表

XML入门精解之结构与语法(1)

xml|语法 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />  ■创建XML文件的工具 XML文件和HTML文件一样,实际上是一个文本文件.显然大家立刻就会明白,创建XML文件最普通的工具和HTML一样,就是"记事本"了.除了"记事本"之外,当然还有一些更加方便的工具,如XML Notepad.XML Pro.CLIP!XML E

Manifest.xml 入门基础 (四) &amp;lt;application&amp;gt;标签

Manifest.xml 入门基础 (四) <application>标签 一个AndroidManifest.xml中必须含有一个Application标签,这个标签声明了每一个应用程序的组件及其属性(如icon,label,permission等) <application android:allowClearUserData=["true" | "false"] android:allowTaskReparenting=["true

Manifest.xml 入门基础(一) 概述与&amp;lt;manifest&amp;gt;标签

Manifest.xml 入门基础 (一)概述与<manifest>标签 第零讲 概述 每个应用的根目录中都必须包含一个 AndroidManifest.xml 文件(且文件名精确无误). 清单文件向 Android 系统提供应用的必要信息,系统必须具有这些信息方可运行应用的任何代码. 此外,清单文件还可执行以下操作: (1)为应用的 Java 软件包命名.软件包名称充当应用的唯一标识符. (2)描述应用的各个组件,包括构成应用的 Activity.服务.广播接收器和内容提供程序.它还为实现每

Manifest.xml 入门基础 (三) &amp;lt;uses-sdk&amp;gt;标签

Manifest.xml 入门基础 (三) <uses-sdk>标签 <uses-sdk android:minSdkVersion="integer" android:targetSdkVersion="integer" android:maxSdkVersion="integer" /> 用于表明应用程序与一个或多个版本 Android 平台的兼容性,以整数型的 API 级别来表示. 应用程序声明的 API 级别将与给