新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 关于 XML 的一般性技术讨论,提供 XML入门资料 和 XML教程
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 XML基础 』 → XML标记语言定义 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 3117 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: XML标记语言定义 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     hsower 帅哥哟,离线,有人找我吗?狮子座1983-8-21
      
      
      威望:7
      等级:大四寒假(收到IBM的Offer啦)
      文章:72
      积分:1606
      门派:XML.ORG.CN
      注册:2004/4/3

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给hsower发送一个短消息 把hsower加入好友 查看hsower的个人资料 搜索hsower在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看hsower的博客楼主
    发贴心情 XML标记语言定义

    在XML出现之前,我们一般都是通过HTML语言来显示数据,为了能够更好的显示信息,HTML 可以和 CSS 一起用于格式化和表示超文本页面。当时随着Web的发展,静态的HTML已经不能满足人们的需要,人们需要在客户端能够对HTML剧本进行动态的控制。也就是说,希望能够通过交互的行为来改变HTML显示模式。这样就出现了DHTML(动态 HTML),DHTML通过 文档对象模型(DOM),使 HTML 中的所有元素,都可以通过与语言无关的脚本和其他编程语言来访问,从而在很大程度上提高了客户机端的交互能力,而且不需要对服务器的额外需求。页面的对象模型允许动态更改任何方面的内容(包括增加、删除和移动)。

      但是以上的HTML,CSS,DHTML都是着重于对内容表现的处理,而缺少对内容本身的管理。这样就出现了XML标记语言。通过为结构化数据添加 XML,为开发人员提供了构造下一代丰富、灵活 Web 应用程序的技术。使用 XML,他们可以为桌面提供结构化数据,并且用 XML 对象模型计算数据。现在的开发人员可以在浏览器或者其他应用程序中,通过脚本显示基于 XML 的数据。

      XML按照它字面的意思来说,就是扩展的文本标记语言的意思。也就是说它首先是一种文本标记语言,但是它不同于HTML,它是一个可扩展的文本标记语言。为了说明问题,我们举一个最简单的用XML编写的文本。例子如下(不妨命名为SimpleSample.xml):

      <?xml version="1.0" encoding="GB2312"?>
      <!-- 注意在?和xml之间不准有空格,这就是xml语法严格性的一个体现 -->
      <?xml-stylesheet type="text/css" href="SimpleSample.css"?>
      <2000年阅读书籍>
      <书籍>
      
      <书名>ATL开发指南
      <作者>Tom Armstrong
      <作者>Ron Patton
      <出版社>
      <名称>电子工业出版社
      <地址>北京市海淀区万寿路173信箱
      
      <出版日期>2000-11
      <价格>56元
      <评论>
      呵呵,让您失望了,我还在阅读,不过感觉讲到了一些技术细节。
      要不,你也搞一本自己去看看?
      
      
      <书籍>
      <书名>Inside Server-Based Application
      <作者>Douglas J.Reilly
      <出版社>
      <名称>北京大学出版社
      <地址>北京市海淀区中关村北京大学校内
      
      <出版日期>2000-09
      <价格>98元
      <评论>
       贵是贵了一点,不过你要真成了服务器端编程的牛人,钱还不<BR>   是大大的?呵呵,这是书评么?

      首先注意第一行,<?xml version="1.0" encoding="GB2312"?>,version表示XML的版本,因为解析器对不同的版本的解析肯定会有区别,尽管现在还没有正式的2.0版本。encoding表示解码方式,这里采用的汉字国标的解码方式,但是你也可以省略这个字段,如果省略的话,你就必须采用UNICODE的编码方式,也就是说要以UTF-8或者是UTF-16作为编码。一般推荐指定编码方式,以免产生乱码,这个在下面的章节会有更加详细的介绍。

      第二行实际上是一个批注,也就是相当于C++中的注释,在C++中,我们是用"//"做起始符号表示注释的开始的。而在XML语言中,是用""做为结束的。

      然后,我们注意第三行,<?xml-stylesheet type="text/css" href="SimpleSample.css"?>,因为XML是内容和表示形式分离的,类似MFC中的文档/视图结构,文档只关心内容,视图表示对内容的表现形式,这行代码就规定了内容的表现形式是由SimpleSample.css这个CSS来控制的,当然更加正宗的是用XSL作为XML的表现形式。

      需要注意的是,以""结尾的标注被称为PI,它是Processing Instruction的缩写。PI的作用是用来告诉解析器这个文档的一些相关的信息的。比如上面示例文档的第一句就告诉解析器,我这个文档使用的是XML1.0的规范。第三句告诉解析器,请用SimpleSample.css来装饰并显示我的内容。

      另外,从上面这个示例文档中,我们可以看到:与HTML一样,XML也是一个基于文本的标记语言,用标记(一对尖括号)来表示数据。不同的是,XML的标记说明了数据的含义,而不是如何显示它。例如,HTML用标记(< b >...< /b >)表示"粗体",而XML用标记(< message >...< /message >)表示信息的内容。比如<价格>里面的内容就表示是该书的价格。

      另外需要注意的是,XML的标记由一对尖括号组成(< tag >...< /tag >),在它们之间是XML数据的一个元素。一个元素可以完全包含在另一个元素之中,这样就可以表示层次结构。XML与HTML的一个重大区别就是XML文档必须是格式良好(well-formed)的,它必须满足一些规则,比如标记不能交错嵌套等。如果没有DTD(Document Type Definition,文档类型定义),文档可以包含任何类型的标记。但如果XML文档有相应的DTD,那么它还需满足DTD所规定的语义。DTD规定在XML文档中可以包含的标记种类和有效布置。只有其结构、数据类型和数据关联等均满足DTD要求的XML文档,才能被称为有效的(validity)XML文档。  

      每个XML文档都有一个逻辑结构和物理结构。从物理角度来看,文档由实体单元组成,一个实体也可以在其他文档的实体中被引用。一个文档以一个根元素或文档实体来开始。从逻辑上讲,文档由声明(declaration)、元素(element)、注释(comment)、字符引用(character reference)和处理说明(processing instruction)组成。这些组成部分在文档的标记中必须明确规定。 物理结构从另一角度来规范XML文档。文档的起始标记和结束标记对数据进行结构化组织,并确定了元素的范围和相互之间的关系。  

      在XML文档中,除标记之外就是字符数据。一般的字符用其本身来表示,但这不适用于XML中的保留字符。例如,字符"&"和"<"只能作为标记定界符,或在注释、处理指令和CDATA字段中直接使用,其他情况下则需要用字符引用或特定的字符串来表示。这类字符是XML的预定义实体。比如用<来表示"<",用&gt来表示">"。

      实际上,为了能够在不同的组织或单位之间进行信息的传递,就需要使用XML来创建特殊团体之间进行通讯的标准,当前已经存在的标记语言有开放式金融交换标记语言(Open Financial Exchange markup language),它为客户和银行之间的数据传送提供了一个框架结构。


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/6/19 14:11:00
     
     GoogleAdSense狮子座1983-8-21
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XML基础 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2026/3/15 21:59:29

    本主题贴数1,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    46.875ms