发布于2026-07-22 阅读(0)
扫一扫,手机访问
平时我们写文章用的语言,叫书面自然语言。如果我们在里面加了一些标记,比如为了强调某句话,就在下面画条线,那这种带标记的语言,就是置标语言(Markup Language)。不过,这里要聊的置标语言,是专门给计算机看的——它的标记通常用文字或数字来表示,含义清晰。做法也很简单:先定义一套有特定含义的标记,然后把这些标记加到书面语言里,就成了置标语言。
举个例子,为了让计算机知道一段文字里,哪部分是标题、哪部分是作者、哪部分是正文,我们可以定义这样一套标记:<标题>、标题>;<作者>、作者>;<正文>、正文>。然后,把上面那段文字改写成置标语言,就成了:
<标题>什么是置标语言?标题>
<作者>xml.net.cn作者>
<正文>我们日常书写的语言,被称为书面自然语言。… …正文>
置标语言和那些控制流编程语言不一样,它更像是一种描述文档结构的数据流语言。在计算机处理时,这些标记既可以当作数据,也可以当作控制指令来用。
在编程世界里,习惯把一种语言的定义整体称为“某某程序设计语言”,而把用这种语言写的文字叫做“某某语言程序”。套用这个习惯,我们可以把置标语言的定义整体称为“某某置标语言”,而把用这种置标语言写的文字段落,叫做“某某语言文档”。比如,如果我们把上面那套标记命名为“文章置标语言”,那么下面那段带标记的文字,就是“文章置标语言文档”。
从字面上看,SGML(Standard Generalized Markup Language —— 标准的通用置标语言)是一种置标语言,但它其实是一种通用的文档结构描述语言,主要用来定义文献模型的逻辑和物理结构。SGML是ISO组织在1986年发布的ISO 8879国际标准。
一个SGML语言程序,由三部分组成:语法定义、文件类型定义(简称DTD)和文件实例。语法定义规定了DTD和文件实例的语法结构;DTD定义了文件实例的结构以及组成结构的元素类型;文件实例则是SGML语言程序的主体部分。
在实际使用中,每一个特定的DTD都定义了一类文件。比如,所有新闻稿件都可以用同一个DTD。所以,人们习惯把拥有特定DTD的SGML语言称为某某置标语言,比如HTML。这样一来,SGML就成了那些派生语言的元语言。
XML是eXtensible Markup Language(可扩展的置标语言)的缩写,由W3C组织在1998年2月发布。W3C制定XML标准的初衷,是定义一种在互联网上交换数据的标准。做法是简化SGML:去掉语法定义部分,适当简化DTD,并增加一些互联网特有的成分。所以,XML也是一种置标语言,基本上是SGML的一个子集。因为XML也有DTD,所以它也可以作为派生其他置标语言的元语言。
HTML是Hypertext Markup Language(超文本置标语言)的缩写,它是SGML的一个实例,也是W3C发布的标准,专门用于在互联网上发布信息。
HTML是SGML的一个实例,它的DTD是固定的标准,所以HTML不能作为定义其他置标语言的元语言。XML是SGML的一个子集,严格来说,XML也还是SGML。和HTML不同,XML有DTD,所以可以像SGML一样作为元语言,用来定义其他文件系统或置标语言。如果把置标语言分为元置标语言和实例置标语言,那么SGML和XML都是元置标语言,而HTML以及由XML派生的XHTML都是实例置标语言。
在互联网上,服务器之间、服务器与浏览器之间需要大量数据交换,尤其是电子商务。这些数据需要说明内容和表现方式,用置标语言来干这事再合适不过。SGML完全可以胜任,但SGML对互联网来说太复杂了。所以,我们需要一种既能像SGML那样作为元语言,又相对简单的置标语言——XML就这样诞生了。因此,XML在互联网上的用途主要有两个:一是作为元置标语言,定义各种实例置标语言标准;二是作为标准交换语言,描述交换的数据。
简单来说,HTML做不了XML要做的事。因为XML的任务必须由元置标语言完成,而HTML只是一个实例置标语言。在XML出现前,互联网的发展被HTML的以下几个问题束缚着:
1)HTML无法描述数据内容,而这恰恰是数据检索、电子商务所必需的。
2)HTML对数据表现的描述能力很有限,比如无法描述矢量图形、科学符号等,只能通过图片来表现。
3)HTML作为实例置标语言,完全无法适应新标记需求的发展。
XML的出现,正好解决了这些问题。
为了简化SGML,XML重新定义了一些内部值和参数,删掉了很多繁杂、不常用、让编程变复杂的特征。具体细节可以参考W3C的相关文档。
答案是肯定的,这也是XML与HTML最大的区别之一。
XML是W3C的一个项目,规格说明书由W3C的XML工作组制定。这个工作组成员来自各个领域和公司,通过电子邮件交流信息,不断修改和完善。XML是集体智慧的结晶,不是某个公司的专利。1.0版规格说明书在1998年2月10日由W3C正式推荐使用。
试想一下,如果互联网世界里大家都讲方言,交换信息时都得翻译,那得多麻烦。XML之所以重要,正是因为它扮演了“国际语言”的角色。而且,它还为互联网世界提供了定义各行各业“专业术语”的工具。
文档类型定义(DTD)是一套关于标记符的语法规则。它告诉你文档里可以用哪些标记符,它们按什么顺序出现,哪些标记符可以出现在其他标记符里面,哪些标记符有属性,等等。DTD原本是为SGML开发的,它可以是XML文档的一部分,但通常是一份单独的文档或一系列文档。XML本身没有通用的DTD,需要数据交换的行业或组织可以定义自己的DTD。
阅读XML文档的工具一般叫XML解析器,也叫XML处理器。XML处理器把数据传给应用软件,让软件去处理、出版、查询或显示。XML本身不提供应用程序接口(API),只是把数据传过去。XML处理器不会解析不符合规范的数据。Netscape和Microsoft都已经把XML解析器集成到浏览器中。还有一些免费的XML阅读器和解析器,可以在应用软件或XML制作软件中使用。
XML标准发布不久,很多软件还在试验阶段。处理HTML的浏览器有很多,但将来会涌现大量不同领域的XML应用程序,所以别指望有一个浏览器能100%处理所有程序。
XML的工具(比如解析器、树结构管理、搜索、格式化等)会被加到浏览器的库或工具包里,帮助开发人员更容易编写XML程序。这类应用程序可以通过增加语义来适应特定领域,或者用Ja va等语言为浏览器开发插件,在Web上传输模块。
Microsoft的IE4和5浏览器可以处理一些Microsoft-oriented的XML程序,但显示时需要转换为HTML。Arbortext的XML Stylesheet程序介绍了如何使用XML+XSL。你还需要ActiveX控件和XSL codebase。Microsoft建议可以在HTML文件中加入XML段,因为只支持HTML的浏览器会忽略不认识的标识元素。
Netscape(Mozilla)浏览器已经通过了一个XML+RDF测试,使用了James Clark的expat XML解析器。
比较重要的原因有以下六条:
1)作者和供应商能用XML设计自己的文档类型,不必被HTML束缚。
2)XML的超文本链接能力比HTML强得多,提供的信息内容更丰富,也更易用。
3)XML能提供更多更好的机制,方便浏览器的信息表现和性能优化。
4)XML舍弃了SGML的复杂性,编写处理XML的应用程序更容易。
5)信息易于存储,可重复使用。
6)XML文件在SGML环境中也可使用,不局限于Web。
不需要。现有的SGML和HTML应用软件会继续和现有文件一起工作。但如果你想查看或下载XML文件,就需要使用能理解、处理XML的程序。
是的,任何程序设计语言都能用来从XML源文档中输出数据。已经有很多前端和后端工具让程序设计和数据管理更方便。你可以在一些技术网站上找到更详细的说明。
在W3C官网上就可以找到。
在标准SGML文档中,所有用到的标记、元素、元素的属性都必须由DTD来说明。但XML并不总是需要DTD,所以XML文档可以带DTD,也可以不带。DTDless的意思就是没有DTD的XML文件,你可以创建自己的标识和元素,但不用在DTD中正式定义。DTDless文件通过创建元素时直接定义它们。不过,当XML应用程序(比如浏览器)遇到DTDless文件时,因为没有DTD告诉它文件的结构,所以创建DTDless文档时仍需要一些规则来规范。于是,“well-formed”XML文档的概念就产生了,它规定了书写XML文档的语法规范。所有符合这个规范的XML文档就是“well-formed”的。如果一个“well-formed”的XML文档还包含了DTD,那它就是一个“valid”的XML文档。
这是编码问题引起的。XML标准规定,XML解析器必须支持UTF-8和UTF-16编码,并且能自动区分这两种编码。对于其他编码(比如中文的GB2312或BIG5)并不要求支持。如果XML文件里有编码声明,解析器就按声明处理;否则就按识别结果(总是UTF-8或UTF-16之一)。所以,如果文件编码不是这两种,你必须在文件前面加上编码声明,比如,表示文件编码是GB2312。
现有的XML解析器大多不支持中文编码,因此无法读取包含中文的XML文件。你可以使用支持中文编码的解析器,比如MSXML、IBMJA VA4C、IBMJA VA4J等。也可以用内码转换工具,把编码转换成UTF-8或UTF-16后再解析,然后再把结果转回原编码。你甚至自己写一个内码转换程序也完全可以。
关于UTF-8和UTF-16编码的详细信息,可以在相关标准文档中找到。
XML是一种文件格式,它没有规定与数据库的连接方法。你需要用传统的方法连接数据库,进行查询,然后把结果转成XML格式。现在有些工具提供了这样的流程,基本步骤都差不多。下面是一个用ASP直接生成XML文件的例子,你可以参考一下(代码略)。
(注:代码示例中包含了ASP代码,用于从数据库查询并生成XML。由于涉及具体实现,保留原样。)
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8