SGML和PDF,为什么我们两者都需要(上)
(SGML and PDF——Why We Need Both)
·SGML ,the Standard Portable Generalized Markup Language,标准通用标记语言。
·PDF,Portable Document Format,Adobe Acrobat的可移动文件格式。
SGML和PDF是图书和期刊出版商用以制作印刷和电子出版物的两种技术,它们针对点各有不同而又相互补充,大多数出版商应综合运用这两种技术,因为这样会使整个出版过程更流畅,而且更有利于资源利用。
一、基本介绍
出版商从印刷物出版转入电子出版后有一个普遍误区,那就是认为电子出版时SGML和PDF只能选其一。事实上,这两种技术是相互补充的,真正了解它们各自的特点,就能更好地把它们结合起来,加以使用。首先应该从电子出版步骤入手,逐一环节分析。
(一)SGML和PDF一种偶然情况下的综合
当传统出版商扩大到电子出版领域后,他们的普遍作法是将人工标好的内容、表格和HTML语言格式的文本样本发布到站点上出网络版,同时将稿件以PostScript文件形式传送给印刷商出版。殊不和右这时就已经实现了SGML和PDF的综合,因为HTML是SGML的衍生物,而PostScript是PDF的源头。但这种情况下的综合是完全偶然的,出版商还并没有意识到各自价值所在。
当出版商已经为印刷版提供了PostScript文件,再准备出电子版时,出版商乐意选择PDF文件格式,因为PDF是PostScript的一个副产品,无论是从PostScript向PDF转换还是使用PDF文件都很便宜而且快捷。所以在这一阶段,出版商很容易下结论:“PDF已经能够实现向电子版的转换,干嘛还要用SGML呢?”
(二)SGML使文件结构化、易改编
随着电子出版物数量和复杂性的增加,出版商需要一种方式来组织和管理它们,这时SGML的好处就凸现出来了,因为SGML语言是一种结构性很强的语言,并通过这种结构来组织内容,所以SGML不仅能够帮助出版商组织PDF文件,还可以帮助读者在众多文件中寻找自己需要的信息,所以即使读者最终需要的是PDF格式,他们也得需要SGML作为搜索信息的工具。
同时,随着技术的进步,出版商的电子文档随时有可能被淘汰,当新的XML语言为一般浏览器所接受后,过去的HTML文件就会过时,这种情况下多数出版商不得不回过头来,给这些电子文件重新编码、结构化。无疑这会带来大量的资金投入,出版商需要寻找一种途径,减小这种损失,此时如果选择SGML语言,可以把这种技术更新带来的损失减少到最小。
当今电子出版虽然发展迅猛,并抢占了部分印刷出版物的市场,但事实上多数人还是亲睐印刷媒体。印刷版的出版物是许多人想要的,而为屏幕显示制作的文件格式很少适于印刷,因此电子出版和印刷出版的文件格式之间需要一定转换。如果使用SGML可以减少这种转换成本,因为SGML可以使排版过程更加自动化。
由此可见,整个出版流程首先由SGML开始,它可以用以生成HTML(或XML)和PDF,HTML(或OCML)用于网络出版,PPF格式的电子页面用于印刷(无论是批量印刷还是按需印刷)。这样一种理想的工作流程也许不会立即被认识到,但实际的工作以验会让出版商逐渐靠近它,出版商对SGML和PDF认识越透彻,就越能找到合理利用它们的方式。
(三) SGML生成结构,PDF生成页面
总的来说,SGML和PDF是两种相互补充的技术而不是相排斥的,它们的本质区别可以用一句话来描述:SGML是关于文件结构和意义的语言,它与页面的表现形式基本无关。相反,PDF是关于页面表现形式的,而与文件结构和意义基本无关。明白这一点是有效利用这两种技术的关键。
下面,本文将分别对SGML和PDF作详尽的介绍,描述各自的基本特征,对比它们的优缺点,并分析如何更有效地利用它们。
二、关于SGML
我们常遇到这样的情况,某一文件无法被其它系统读取而只有沿原路返回。因为不同系统,不同平台、不同软件都使用着自己的专有标记符,它们是无法被其它系统理解的。所以随着计算机系统的增多,实现不同系统间的信息交换越来越重要。
通常实现这种信息交换有两种不同方向:水平方向和垂直方向。水平方向即直接将文件从个人传向个人,从系统传向系统。垂直方向即允许许多人共同编写,改编某一文件或文件的一部分, 即多人共同操作。
水平交换是最常见的方式。这种方式几乎对所有文件都有效,从系统到系统,每一次都按接收文件系统的要求对文件进行一次改编。比如说,用某一文字处理软件编写的文件,必须通过排版系统生成电子页面,用电子出版系统生成电子版本,这些系统互不兼容,所以各个系统下的工作都要分别完成,其间想要重复使用数据几乎是不可能的。即使在今天,用于一处的文件再到别处使用,都要经过大量的转换,代价是高昂的。
另一种交换方式——垂直方式,允许不同的人共同使用同一文本,即文件可以以不同方式反复使用。比如说,作者在编写别克车的维修手册时,就可以直接选取雪佛兰车维修手册的相同部分,而无需重新编写。
(一)SGML,将结构从表现形态中独立出来
SGML语言的设计思想是不描述文件的表现形式而只描绘出其逻辑框架,具体方法就是将文件的结构从整体形态中独立出来,而把文件最后的表现形式留给最后的显示系统去完成。通过这种方式,当文件从一个系统转到另一个系统或文件的一部分在其它部分加以使用时,就无需对它们再重新编码了。
1986年,SGML语言成为一种国际标准(ISO8879),SGML没有限定专有标记符,相反每一个用户/用户群都可以按需生成自己的标记符。这一原则很有用,SGML既允许把标题标作
,也允许标作或,某一文件的标题在王码系统中的标记符,到了Penta系统或Folio系统中又会自动按这一系统规则转换成新的标记符。
在使用最终的SGML文件时,使用它的系统可将它转换成自己的标码系统,并决定它的表现形态。文件既可以用以生成印刷格式,也可以用以生成屏幕显示形式……无论哪一种情况下,都无需对文件重新编码,这样用在同系统间转转换时的大量时间和经费就节省下来。
(二)SGML是一种语言,而不是一组标记符
事实上,一份SGML文件由三部分组成:Declaration,给用户提供文件的基本信息,如文件使用什么语言,用的什么标记符;DTD,文件类型注释,详述限制用户使用的所有标记符组及规则;Intance,举例。这三部分必不可少。
很多人误以为SGML就是一组标记符,事实上恰恰相反,SGML支持不限量组的标记符,你可以去规定自己的标记符,往往你也必须这么做。
SGML是一种语言,从某种意义上说,它就像一种编程语言,它可以用来生成对SGML毫无所知的人都能使用的“应用程序”,但是这种“应用程序”首先必须由那些SGML高手编出来。在图书和期刊出版过程中,这种“应用程序”(即一组标记符和DTD)可以是专为一本书或期刊设计的,也可以是针对一系列相关书和期刊的。
(三)SGML通常都很复杂
原则上SGML不需那么复杂,但事实上的SGML是相当复杂的。通常来说所给DTD容纳的材料越多,它就越复杂难懂。比如说,一本参考书的DTD比较容易,因为成百上千页重复的都是那么些结构,然而这样的DTD描述一本教科书或学术期刊恐怕就不好使了。给一本满是注解和各种习题的教科书写DTD非常麻烦,而要写一组能包含一系列教科书的DTD就更头疼了。事实上要想有一个不同出版商都适用的DTD标准几乎是不可能的。也正因如此,SGML通常是相当复杂的。
期刊是SGML的理想用户,因为期刊的结构性强、重复多,但是期刊出版的实践证明,要同时满足印刷版和电子版需要,组织一组准确而详尽描述各个细节的DTD同样不容易。比如说,在给作者名作标记时,主要作者和协作作者是否该有的区别?在参考项中,只标记出每一条参考够吗?是否还应该标记各自的出版地、出版者、出版时间?
(四)SGML比排字标记符丰富
很多SGML标记符在电子文本中非常有用,但在印刷排版中就没什么用了。排版文件中用表示作者名下划的横线,除此之外不会用更多的细节描述这一点,在参考项中同样如此。对于数字和表格,排版文件中只有在它们第一次出版时作标记,而在SGML文件中,以后每一次提到这一数字或表格都会作相应链接。
这说明SGML文件通常比仅为排版使用的文件作更多的标记,当然它们也可以不这么复杂,可以有一种简单的方法,就是建立与排版标记符相同的SGML标记符,但这样SGML给电子出版带来的好处就少了,所以出版商常常要在这种丰富与简单之间作选择。通常选择是这样的,出于电子存档目的时,选SGML。仅为出印刷时,选简单的。既要出电子版又要出印刷版时选SGML无疑是明智的。
(五)关于Metadata的管理
SGML的另一个重要作用在于能够收集并整理已经出版了的材料,即使这些信息实际上在印刷页中并看不到,或是以不同方式出现。如一本传记参考书可能希望系统地记录下所有传记人物的生死日期、埋葬地、民族、教育状况及其它有关事实,无论这些信息在文章中出现与否。
SGML以一种灵活有效的方式管理metadata,它允许出版商为不同目的而组织这些出版信息,还是以上述传记参考书为例,尽管在其印刷版本中的传记是按字母先后顺序排列的,在电子版中,这种顺序则可以按年代排,排地区排等等。
由于DTD不仅包括定义还包括解释,即决定使用的规则,所以DTD可以包括一处出现的内容,而不包括另一处出现的内容,这一点对出版商显然很有用,比如说,一份期刊的DTD就可以将网上免费公开的部分(如篇目、作者、摘要、关键字等)和需要付费的订阅的部分(正文、数据、图表等)区分开。
(六)SGML文件的语法检查
SGML的另一个重要功能在于,可以通过软件来检查SGML文件中的标记正确与否,即对SGML文件进行语法分析,检查文件的Dedaration和 DTD,确保文件中标记符使用的合法性、正确性。如果文件中某些特点内容没有作出标记,软件会找出它们,如果作者忘了标必要的结束符或错误使用标记符(如SGML规定必须在出现后才能使用),软件会提醒用户注意这一错误。但正如拼写检查无法替代校对一样,SGML文件的语法检查也无法确保文件完全正确,它只能确保逻辑上没有语法错误,而非语法错误是发现不了的,如:大多数DTD只允许出现一个章节标题,当多余的出现时会被找到,但但当作者在该用时用了,语法检查就发现不了,所以计算机的语法检查取代不了编辑和校对工作。
(七)SGML的通用性
SGML作为一个国际标准,它是完全非专有性的,所以它省去了文件在不同系统间操作时复杂的转换工作,运行SGML文件也不需要特定的硬、软件支持,同时显示方式也不受限制。
但是这种灵活性兼容性是需要代价的,要同时满足电子格式和印刷格式的需要,写出结构化的DTD,要去分析一大堆的文件编码,这是件很繁杂的工作。如果出版商仅仅想要出版印刷本,SGML没有必要,但如果要同时出电子版与印刷版,则用SGML物有所值。
(八)为什么不仅用HTML
在确切了解了使用SGML的复杂性之后,很多出版商试图使用HTML来减少麻烦。其实,这是一种目光短浅的危险作法。
HTML是从SGML衍化而来的,用以告诉浏览器如何为网络格式化文件,一般来说HTML是很有用的,这几年也相当流行,原因是它很简单,和SGLM不一样,它是一组特定的标记符,使用和学习起来自然就简单了。但这种简单性也正是HTML在图书和期刊出版中最大的不足,出版商很快就发现HTML无法提供足够的标记符来标记作品全部细节。比如说HTML中就没有标记“摘要”的标记符。所以出版商常常要用来表示摘要,所以浏览器会把摘要当作方括号的引用来处理,文章摘要就无法和摘录区分开了。又如HTML只规定了到六级标题,对于那些层次很多的文章,可能就不够用了。
当然这也并不是说HTML就没有用,事实上,HTML相当有用。SGML是一种存档格式,而HTML是一种输出格式,SGML可以转换成HTML格式,所以你即使想把摘要显示成方括弧引用的形式,SGML存档文件也能明白它是摘要而不是摘录。
(九)XML:综合SGML和HTML
认识到HTM局限性和SGML的复杂性以后,人们尝试去建立一套克服上述缺点的新标准,于是有了XML和SGML一样,XML也允许用户决定自己的标记符,不同的是,它不需要DTD,事实上多数时候XML和SGML还是一致的,但在某些方面XML有所简化。如SGML有时允许一些文本中“标码最小化”而省去最后的结束标记符,而XML不支持这种省略,所以XML文件的编写和使用要明确一些,自然也就简单些了。XML的另一个原则,就是允许出版商以任何一种有意义的途径来标记其文件,而无需限制一组特定标记符或DTD。
那么既然有了XML,为什么出版商还需要DTD呢?试想,如果编辑将摘要标作,而另一个编辑把它标作,另一个标作,这些情况在XML文件中都是合法以的,但仅作出这样的标记,而不作任何注释,最后的混乱可想而知。
XML改进了信息标记和结构化的方式,它的两个相关技术XL和XSL,会改进信息超级链接和显示的方式,但必须明确SGML仍是真正的核心。出版商在建立了SGML文档后,必要时可以方便地转换成XML格式,从而扩大SGML的适用性。
在使用最终的SGML文件时,使用它的系统可将它转换成自己的标码系统,并决定它的表现形态。文件既可以用以生成印刷格式,也可以用以生成屏幕显示形式……无论哪一种情况下,都无需对文件重新编码,这样用在同系统间转转换时的大量时间和经费就节省下来。
(二)SGML是一种语言,而不是一组标记符
事实上,一份SGML文件由三部分组成:Declaration,给用户提供文件的基本信息,如文件使用什么语言,用的什么标记符;DTD,文件类型注释,详述限制用户使用的所有标记符组及规则;Intance,举例。这三部分必不可少。
很多人误以为SGML就是一组标记符,事实上恰恰相反,SGML支持不限量组的标记符,你可以去规定自己的标记符,往往你也必须这么做。
SGML是一种语言,从某种意义上说,它就像一种编程语言,它可以用来生成对SGML毫无所知的人都能使用的“应用程序”,但是这种“应用程序”首先必须由那些SGML高手编出来。在图书和期刊出版过程中,这种“应用程序”(即一组标记符和DTD)可以是专为一本书或期刊设计的,也可以是针对一系列相关书和期刊的。
(三)SGML通常都很复杂
原则上SGML不需那么复杂,但事实上的SGML是相当复杂的。通常来说所给DTD容纳的材料越多,它就越复杂难懂。比如说,一本参考书的DTD比较容易,因为成百上千页重复的都是那么些结构,然而这样的DTD描述一本教科书或学术期刊恐怕就不好使了。给一本满是注解和各种习题的教科书写DTD非常麻烦,而要写一组能包含一系列教科书的DTD就更头疼了。事实上要想有一个不同出版商都适用的DTD标准几乎是不可能的。也正因如此,SGML通常是相当复杂的。
期刊是SGML的理想用户,因为期刊的结构性强、重复多,但是期刊出版的实践证明,要同时满足印刷版和电子版需要,组织一组准确而详尽描述各个细节的DTD同样不容易。比如说,在给作者名作标记时,主要作者和协作作者是否该有的区别?在参考项中,只标记出每一条参考够吗?是否还应该标记各自的出版地、出版者、出版时间?
(四)SGML比排字标记符丰富
很多SGML标记符在电子文本中非常有用,但在印刷排版中就没什么用了。排版文件中用
这说明SGML文件通常比仅为排版使用的文件作更多的标记,当然它们也可以不这么复杂,可以有一种简单的方法,就是建立与排版标记符相同的SGML标记符,但这样SGML给电子出版带来的好处就少了,所以出版商常常要在这种丰富与简单之间作选择。通常选择是这样的,出于电子存档目的时,选SGML。仅为出印刷时,选简单的。既要出电子版又要出印刷版时选SGML无疑是明智的。
(五)关于Metadata的管理
SGML的另一个重要作用在于能够收集并整理已经出版了的材料,即使这些信息实际上在印刷页中并看不到,或是以不同方式出现。如一本传记参考书可能希望系统地记录下所有传记人物的生死日期、埋葬地、民族、教育状况及其它有关事实,无论这些信息在文章中出现与否。
SGML以一种灵活有效的方式管理metadata,它允许出版商为不同目的而组织这些出版信息,还是以上述传记参考书为例,尽管在其印刷版本中的传记是按字母先后顺序排列的,在电子版中,这种顺序则可以按年代排,排地区排等等。
由于DTD不仅包括定义还包括解释,即决定使用的规则,所以DTD可以包括一处出现的内容,而不包括另一处出现的内容,这一点对出版商显然很有用,比如说,一份期刊的DTD就可以将网上免费公开的部分(如篇目、作者、摘要、关键字等)和需要付费的订阅的部分(正文、数据、图表等)区分开。
(六)SGML文件的语法检查
SGML的另一个重要功能在于,可以通过软件来检查SGML文件中的标记正确与否,即对SGML文件进行语法分析,检查文件的Dedaration和 DTD,确保文件中标记符使用的合法性、正确性。如果文件中某些特点内容没有作出标记,软件会找出它们,如果作者忘了标必要的结束符或错误使用标记符(如SGML规定
必须在出现后才能使用),软件会提醒用户注意这一错误。但正如拼写检查无法替代校对一样,SGML文件的语法检查也无法确保文件完全正确,它只能确保逻辑上没有语法错误,而非语法错误是发现不了的,如:大多数DTD只允许出现一个章节标题,当多余的出现时会被找到,但但当作者在该用时用了,语法检查就发现不了,所以计算机的语法检查取代不了编辑和校对工作。
(七)SGML的通用性
SGML作为一个国际标准,它是完全非专有性的,所以它省去了文件在不同系统间操作时复杂的转换工作,运行SGML文件也不需要特定的硬、软件支持,同时显示方式也不受限制。
但是这种灵活性兼容性是需要代价的,要同时满足电子格式和印刷格式的需要,写出结构化的DTD,要去分析一大堆的文件编码,这是件很繁杂的工作。如果出版商仅仅想要出版印刷本,SGML没有必要,但如果要同时出电子版与印刷版,则用SGML物有所值。
(八)为什么不仅用HTML
在确切了解了使用SGML的复杂性之后,很多出版商试图使用HTML来减少麻烦。其实,这是一种目光短浅的危险作法。
HTML是从SGML衍化而来的,用以告诉浏览器如何为网络格式化文件,一般来说HTML是很有用的,这几年也相当流行,原因是它很简单,和SGLM不一样,它是一组特定的标记符,使用和学习起来自然就简单了。但这种简单性也正是HTML在图书和期刊出版中最大的不足,出版商很快就发现HTML无法提供足够的标记符来标记作品全部细节。比如说HTML中就没有标记“摘要”的标记符。所以出版商常常要用来表示摘要,所以浏览器会把摘要当作方括号的引用来处理,文章摘要就无法和摘录区分开了。又如HTML只规定了到六级标题,对于那些层次很多的文章,可能就不够用了。
当然这也并不是说HTML就没有用,事实上,HTML相当有用。SGML是一种存档格式,而HTML是一种输出格式,SGML可以转换成HTML格式,所以你即使想把摘要显示成方括弧引用的形式,SGML存档文件也能明白它是摘要而不是摘录。
(九)XML:综合SGML和HTML
认识到HTM局限性和SGML的复杂性以后,人们尝试去建立一套克服上述缺点的新标准,于是有了XML和SGML一样,XML也允许用户决定自己的标记符,不同的是,它不需要DTD,事实上多数时候XML和SGML还是一致的,但在某些方面XML有所简化。如SGML有时允许一些文本中“标码最小化”而省去最后的结束标记符,而XML不支持这种省略,所以XML文件的编写和使用要明确一些,自然也就简单些了。XML的另一个原则,就是允许出版商以任何一种有意义的途径来标记其文件,而无需限制一组特定标记符或DTD。
那么既然有了XML,为什么出版商还需要DTD呢?试想,如果编辑将摘要标作,而另一个编辑把它标作,另一个标作,这些情况在XML文件中都是合法以的,但仅作出这样的标记,而不作任何注释,最后的混乱可想而知。
XML改进了信息标记和结构化的方式,它的两个相关技术XL和XSL,会改进信息超级链接和显示的方式,但必须明确SGML仍是真正的核心。出版商在建立了SGML文档后,必要时可以方便地转换成XML格式,从而扩大SGML的适用性。
时用了,语法检查就发现不了,所以计算机的语法检查取代不了编辑和校对工作。
(七)SGML的通用性
SGML作为一个国际标准,它是完全非专有性的,所以它省去了文件在不同系统间操作时复杂的转换工作,运行SGML文件也不需要特定的硬、软件支持,同时显示方式也不受限制。
但是这种灵活性兼容性是需要代价的,要同时满足电子格式和印刷格式的需要,写出结构化的DTD,要去分析一大堆的文件编码,这是件很繁杂的工作。如果出版商仅仅想要出版印刷本,SGML没有必要,但如果要同时出电子版与印刷版,则用SGML物有所值。
(八)为什么不仅用HTML
在确切了解了使用SGML的复杂性之后,很多出版商试图使用HTML来减少麻烦。其实,这是一种目光短浅的危险作法。
HTML是从SGML衍化而来的,用以告诉浏览器如何为网络格式化文件,一般来说HTML是很有用的,这几年也相当流行,原因是它很简单,和SGLM不一样,它是一组特定的标记符,使用和学习起来自然就简单了。但这种简单性也正是HTML在图书和期刊出版中最大的不足,出版商很快就发现HTML无法提供足够的标记符来标记作品全部细节。比如说HTML中就没有标记“摘要”的标记符。所以出版商常常要用来表示摘要,所以浏览器会把摘要当作方括号的引用来处理,文章摘要就无法和摘录区分开了。又如HTML只规定了到六级标题,对于那些层次很多的文章,可能就不够用了。
当然这也并不是说HTML就没有用,事实上,HTML相当有用。SGML是一种存档格式,而HTML是一种输出格式,SGML可以转换成HTML格式,所以你即使想把摘要显示成方括弧引用的形式,SGML存档文件也能明白它是摘要而不是摘录。
(九)XML:综合SGML和HTML
认识到HTM局限性和SGML的复杂性以后,人们尝试去建立一套克服上述缺点的新标准,于是有了XML和SGML一样,XML也允许用户决定自己的标记符,不同的是,它不需要DTD,事实上多数时候XML和SGML还是一致的,但在某些方面XML有所简化。如SGML有时允许一些文本中“标码最小化”而省去最后的结束标记符,而XML不支持这种省略,所以XML文件的编写和使用要明确一些,自然也就简单些了。XML的另一个原则,就是允许出版商以任何一种有意义的途径来标记其文件,而无需限制一组特定标记符或DTD。
那么既然有了XML,为什么出版商还需要DTD呢?试想,如果编辑将摘要标作,而另一个编辑把它标作,另一个标作,这些情况在XML文件中都是合法以的,但仅作出这样的标记,而不作任何注释,最后的混乱可想而知。
XML改进了信息标记和结构化的方式,它的两个相关技术XL和XSL,会改进信息超级链接和显示的方式,但必须明确SGML仍是真正的核心。出版商在建立了SGML文档后,必要时可以方便地转换成XML格式,从而扩大SGML的适用性。
(七)SGML的通用性
SGML作为一个国际标准,它是完全非专有性的,所以它省去了文件在不同系统间操作时复杂的转换工作,运行SGML文件也不需要特定的硬、软件支持,同时显示方式也不受限制。
但是这种灵活性兼容性是需要代价的,要同时满足电子格式和印刷格式的需要,写出结构化的DTD,要去分析一大堆的文件编码,这是件很繁杂的工作。如果出版商仅仅想要出版印刷本,SGML没有必要,但如果要同时出电子版与印刷版,则用SGML物有所值。
(八)为什么不仅用HTML
在确切了解了使用SGML的复杂性之后,很多出版商试图使用HTML来减少麻烦。其实,这是一种目光短浅的危险作法。
HTML是从SGML衍化而来的,用以告诉浏览器如何为网络格式化文件,一般来说HTML是很有用的,这几年也相当流行,原因是它很简单,和SGLM不一样,它是一组特定的标记符,使用和学习起来自然就简单了。但这种简单性也正是HTML在图书和期刊出版中最大的不足,出版商很快就发现HTML无法提供足够的标记符来标记作品全部细节。比如说HTML中就没有标记“摘要”的标记符。所以出版商常常要用
来表示摘要,所以浏览器会把摘要当作方括号的引用来处理,文章摘要就无法和摘录区分开了。又如HTML只规定了到
六级标题,对于那些层次很多的文章,可能就不够用了。
当然这也并不是说HTML就没有用,事实上,HTML相当有用。SGML是一种存档格式,而HTML是一种输出格式,SGML可以转换成HTML格式,所以你即使想把摘要显示成方括弧引用的形式,SGML存档文件也能明白它是摘要而不是摘录。
(九)XML:综合SGML和HTML
认识到HTM局限性和SGML的复杂性以后,人们尝试去建立一套克服上述缺点的新标准,于是有了XML和SGML一样,XML也允许用户决定自己的标记符,不同的是,它不需要DTD,事实上多数时候XML和SGML还是一致的,但在某些方面XML有所简化。如SGML有时允许一些文本中“标码最小化”而省去最后的结束标记符,而XML不支持这种省略,所以XML文件的编写和使用要明确一些,自然也就简单些了。XML的另一个原则,就是允许出版商以任何一种有意义的途径来标记其文件,而无需限制一组特定标记符或DTD。
那么既然有了XML,为什么出版商还需要DTD呢?试想,如果编辑将摘要标作,而另一个编辑把它标作 ,另一个标作 ,这些情况在XML文件中都是合法以的,但仅作出这样的标记,而不作任何注释,最后的混乱可想而知。
XML改进了信息标记和结构化的方式,它的两个相关技术XL和XSL,会改进信息超级链接和显示的方式,但必须明确SGML仍是真正的核心。出版商在建立了SGML文档后,必要时可以方便地转换成XML格式,从而扩大SGML的适用性。