分享
 
 
 

XML的诞生

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

首先,让我们来回顾一下可扩展置标语言XML(eXtensible Markup Language)的发展简史。

----XML有两个先驱--SGML和HTML,这两个语言都是非常成功的置标语言,但是它们都在某些方面存在着与生俱来的缺陷。SGML(Standard Generalized Markup Language)的全称是标准通用置标语言,它为语法置标提供了异常强大的工具,同时具有极好的扩展性,因此在分类和索引数据中非常有用。但是,SGML非常复杂,并且价格昂贵,几个主要的浏览器厂商都明确拒绝支持SGML,使SGML在网上传播遇到了很大障碍。

----相反,超文本置标语言HTML(HyperText Markup Language)免费、简单,在世界范围内得到了广泛的应用。它侧重于主页表现形式的描述,大大丰富了主页的视觉、听觉效果,为推动WWW的蓬勃发展、推动信息和知识的网上交流发挥了不可取代的作用。可是,HTML也有如下几个致命的弱点,这些弱点逐渐成为HTML继续发展应用的障碍。

HTML是专门为描述主页的表现形式而设计的,它疏于对信息语义及其内部结构的描述,不能适应日益增多的信息检索要求和存档要求。

HTML对表现形式的描述能力实际上也还非常不够,它无法描述矢量图形、科技符号和一些其他的特殊显示效果。

HTML的标记集日益臃肿,而其松散的语法要求使得文档结构混乱而缺乏条理,导致浏览器的设计越来越复杂,降低了浏览的时间效率与空间效率。

----正因为如此,1996年人们开始致力于描述一个置标语言,它既具有SGML的强大功能和可扩展性,同时又具有HTML的简单性。XML就是这样诞生的。

----正象SGML和HTML一样,可扩展置标语言XML也是一种置标语言,它通过在数据中加入附加信息的方式来描述结构化数据。不过,XML并非象HTML那样,只提供一组事先已经定义好的标记。准确地说,它是一种元置标语言,允许程序开发人员根据它所提供的规则,制定各种各样的置标语言。在XML中,置标的语法是通过文档类型定义DTD(Document Type Definition)来描述的,也就是说,通过DTD来描述什么是有效的标记,并进一步定义置标语言的结构。除了定义置标的语法外,为了明确各个标记的含义,XML还使用与之相连的样式单(style sheet)来向应用程序,比如浏览器,提供如何处理显示的指示说明。一言以蔽之,XML是通过数据文档、DTD、样式单三个分离的部分来描述数据的。

----虽然XML貌似复杂,但它有一些突出的优点:

----1. 良好的可扩展性。XML允许各个不同的行业根据自己独特的需要制定自己的一套标记,同时,它并不要求所有浏览器都能处理这成千上万个标记,同样也不要求一个置标语言能够适合各个行业各个领域的应用,这种具体问题具体分析的方法更有助于置标语言的发展。

----2. 内容与形式的分离。正如前面所说,XML中信息的显示方式已经从信息本身中抽取出来,放在了"样式单"中。这样做便于信息表现方式的修改,便于数据的搜索,也使得XML具有良好的自描述性,能够描述信息本身的含义甚至它们之间的关系。

----3. 遵循严格的语法要求。XML不但要求标记配对、嵌套,而且还要求严格遵守DTD的规定。这增加了网页文档的可读性和可维护性,也大大减轻了浏览器开发人员的负担,提高了浏览器的时间空间效率。

----4. 便于不同系统之间信息的传输。不同企业、不同部门中往往存在着许多不同的系统,XML可以用作各种不同系统之间的交流媒介,是一种非常理想的网际语言。

----5. 具有较好的保值性。XML的保值性来自它的先驱之一--SGML语言,可以为文档提供50年以上的寿命。

----正是基于这些优点,国际标准化组织--万维网联盟W3C(World Wide Web Consortium)推荐XML作为第二代网页发布语言。

----最后,让我们来看一个完整的XML例子,以便对XML的整体机制有一个大致的了解。在下面的例子中,我们用XML来描述一个学生花名册的信息列表。我们先为这些数据定义一个DTD:

----Stuml.dtd

<?xml version="1.0" encoding="GB2312"?>

<!ELEMENT 学生花名册 (学生)*>

<!ELEMENT 学生 (学号, 姓名, 性别, 籍贯, 出生日期)>

<!ELEMENT 出生日期 (年, 月, 日)>

<!ELEMENT 学号 (#PCDATA)>

<!ELEMENT 姓名 (#PCDATA)>

<!ELEMENT 性别 (#PCDATA)>

<!ELEMENT 籍贯 (#PCDATA)>

<!ELEMENT 年 (#PCDATA)>

<!ELEMENT 月 (#PCDATA)>

<!ELEMENT 日 (#PCDATA)>

----关于学生花名册信息的标准XML文档是这样的:

----Student.xml

<?xml version = "1.0" encoding="GB2312" standalone = "no"?>

<!DOCTYPE 学生花名册 SYSTEM "stuml.dtd">

<?xml-stylesheet type="text/xsl" href="mystyle.xsl"?>

<学生花名册>

<学生>

<学号>001</学号>

<姓名>张三</姓名>

<性别>男</性别>

<籍贯>北京市</籍贯>

<出生日期>

<年>1980</年>

<月>3</月>

<日>1</日>

</出生日期>

</学生>

<学生>

<学号>002</学号>

<姓名>李四</姓名>

<性别>女</性别>

<籍贯>河北省</籍贯>

<出生日期>

<年>1979</年>

<月>5</月>

<日>12</日>

</出生日期>

</学生>

</学生花名册>

----现在我们为它制定一个样式单,以描述这些数据的显示:

----Mystyle.xsl

<?xml version="1.0" encoding="GB2312"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"

xmlns="http://www.w3.org/TR/REC-html40" result-ns="">

<xsl:template><xsl:apply-templates/></xsl:template>

<xsl:template match = "/">

<HTML>

<HEAD>

<TITLE>学生花名册</TITLE>

</HEAD>

<BODY>

<xsl:apply-templates select="学生花名册"/>

</BODY>

</HTML>

</xsl:template>

<xsl:template match = "学生花名册">

<xsl:for-each select="学生">

<UL>

<LI><xsl:value-of select="姓名"/></LI>

<UL>

<LI>学号: <xsl:value-of select="学号"/></LI>

<LI>性别: <xsl:value-of select="性别"/></LI>

<LI>籍贯: <xsl:value-of select="籍贯"/></LI>

<LI>出生年: <xsl:value-of select="出生日期/年"/></LI>

<LI>出生月: <xsl:value-of select="出生日期/月"/></LI>

<LI>出生日: <xsl:value-of select="出生日期/日"/></LI>

</UL>

</UL>

</xsl:for-each>

</xsl:template>

</xsl:stylesheet>

----在IE5中看到的XML文件的显示结果是这样的:

l 张三

m 学号: 001

m 性别: 男

m 籍贯: 北京市

m 出生年: 1980

m 出生月: 3

m 出生日: 1

l 李四

m 学号: 002

m 性别: 女

m 籍贯: 河北省

m 出生年: 1979

m 出生月: 5

m 出生日: 12

----有兴趣的读者可以用"记事本"录入上面这三个文件,分别存盘后放在一个目录中,然后用IE5打开文件student.xml,看看结果是不是这样。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有