将改变我们生活的XML有关的这些应用,你知道多少? 1.XHTML XHTML1.0[W3C推荐标准]基本上是对HTML4的改写,使其成为结构良好的XML。HTML是一种SGML应用,当XML作为对SGML在Web应用上的简化和规范化开发出来的时候,HTML(本身是Web上的通用语言)就成为采用XML的首选目标。于是出现了HTML的一种变体,称为XHTML。XHTML研究的目标是一种更容易解析(因为XML的语法更加严格)的HTML语言。XHTML很容易用现成的XML工具处理,力求更好地分离内容与表示。XHTML是最古老的XML应用之一,有许多利益集团在不同的部分和版本中起过作用。我将尽力对其中的大部分加以概括。 与三种HTML4DTD——Strict、Transitional和Frameset对应,XHTML1.0定义了不同的DTD和名称空间。ModularizationofXHTML[W3C推荐标准]提供了一个框架,把XHTML分解成单独的模块,作为不同的DTD定义。比如,用于定义列表的所有元素和属性组成一个模块,而和表示有关的元素类型则放在另一个模块中。这样,就可以通过增加、减少和修改通用的独立模块开发和重新定义XHTML。沿着这条路线,第一步就是XHTMLBasic[W3C推荐标准],它定义了任何作为XHTML的语言都必须具有的最小XHTML模块集。XHTMLBasic本身可以作为Web客户的内容语言,如移动电话、PDA、寻呼机和置顶盒。XHTML1.1[W3C推荐标准]基本上就是使用模块框架分解的XHTML1.0StrictDTD。 XHTML2.0[开发中]是对XHTML的重写,没有考虑与HTML的向后兼容。这种想法差不多就是为Web编写一种全新的内容语言,学习过去的经验而又不束缚于过去。其中大的变化有: 取消了<br/>、<img/>以及其他认为过于面向表示的元素 取消HTML风格的表单,改为支持XForm(本系列文章前已述及) 取消HTML风格的链接改为HLink(本系列文章中前已述及) 用XMLEvent代替许多JavaScript驱动的动态任务 用XFrame代替HTML风格的框架 更重要的是,XHTML2.0做了许多扩展,增强了作者表达内容结构和含义的能力。打破向后兼容性引起了争议。一些评论者认为保持(X)HTML的名称只修改版本号会造成混乱。其他人则说这些修改非常必要,而XHTML实际上仍然是一种可扩展超本文标记语言,因此保留原来的名称非常合适。 XHTML常常和其他嵌入格式一起使用,如MathML、RDF、SVG、SMIL和VoiceXML(后面都将予以介绍)。这种混合文档称为多模的或者非单体的。W3C、ISO以及其他组织正投入巨大的努力鼓励对这种文档的强力支持。 2.Docbook Docbook原来是一种流行的SGML格式,用于编纂书籍和文档,尤其是带有较多技术特性的文档。后来增加了一个XML版本,DocBookXMLV4.2[OASIS委员会规范]是最新的成果。Docbook非常流行,得到了许多工具的支持,其中很多工具非常成熟。它作为避免混合表示问题与内容格式的一个范例而受人尊敬。最近,一些开发人员开始抱怨它从过去的版本继承了太多的负担,纷纷讨论(甚至包括它的主要开发者NormWalsh)为这种格式重新开发一种新的、不向后兼容的版本。 TextEncodingInitiative(TEI)甚至比Docbook更古老,这种文档格式在某种程度上与Docbook的应用范围类似,区别在于它通常处理的是人文学科的文本而非技术文本。TEI本身不是一种SGML或XML应用,而是一组用于构造语言(DTD)的指导原则。最常用的TEI变体是TEILite[社区标准]。TEI以其复杂性驰名,这在一定程度上限制了它被大量采用,但是它得到了很好的维护,并在一些社区中有狂热的用户。 3.XSL-FO ExtensibleStylesheetLanguageFormattingObjects(XSL-FO)[W3C推荐标准]是一种使用XML定义的表示语言。(注意,链接规范的标题是"ExtensibleStylesheetLanguage(XSL)",但内容事实上只包括XSL的格式化对象方面。)XSL-FO是一种XML格式,可被任何用户代理用于按照开发人员给定的精确规范呈现内容。它的角色类似于Web用户界面中的XHTML,但是更加复杂,以便表达适用于打印形式的格式化细节。这些细节和级联样式表(CSS——本系列文章前已述及)中所规定的没有什么不同,但是在XSL-FO中,这些细节构成了这种标记语言本身的一个实例,而不是呈现单个标记的指令。 XSL-FO常用作XSLT(本系列文章前已述及)的输出格式。事实上,最初XSLT和XSL-FO是一个系统,称为XSL,但是工作组明智地将这两个部分分成了两个不同的规范。有多种开放源代码的或者商业化的工具可以将XSL-FO转化成TeX、Adobe的PDF以及其他适于打印和排版的(非XML)输出格式。这种应用模式使XSL-FO非常流行,但是XSL-FO一直希望成为WYSIWYG工具或者类似工具的原生呈现格式,它的这种应用也开始受到推动。XSL-FO1.1[开发中]是这种语言的升级,增加了注释、索引、书签之类的特性,并增强了图像的处理能力。 4.SVG ScalableVectorGraphics(SVG)1.1[W3C推荐标准]是一种描述二维图像的语言。它主要是一种向量图形语言,尽管也支持一些光栅图形特性。SVG的非凡雄心是提供一种实用的、灵活的、使用(以冗长闻名的)XML表示的图像格式,而且在这点上做的很成功。SVG的特性包括:嵌套转换、剪辑路径、alpha蒙板、光栅过滤效果、模板对象,当然还有可扩展性。SVG也支持动画、缩放和移动视图、各种图形原语、分组、脚本、超链接、结构化元数据、CSS、一种专用的DOM超集(DOM和CSS前已述及),并且很容易嵌入其他XML文档。SVG的一些设计决策经历了不很激烈的争论,其中包括向量路径在单个属性中使用空格分隔的数字列表表示,但是总体上SVG已经成为应用最广泛的并受到热烈欢迎的一种XML应用。该规范已经被翻译成了多种语言。 SVG1.1是对SVG1.0[W3C推荐标准]的更新,增加了一些新特性,也包括一些更正。最大的区别是SVG1.1以类似XHTML1.1+的方式进行了模块化。这种模块化使得SVG能够扩展甚至精简,就像MobileSVGProfiles:SVGTinyandSVGBasic[W3C推荐标准]那样。后者定义了SVG模块的精简集,适用于移动电话和PDA。SVG1.2[开发中]致力于增加许多新工具,使SVG不仅作为一种图像格式,而且成为具有广泛应用前景的平台。 5.VoiceXML VoiceExtensibleMarkupLanguage(VoiceXML)Version2.0[开发中]是一种创建音频、语音和电话应用程序的语言。它包含的音频对话框具有以下特点:语音合成、数字音频、声音识别和电话音质拨号输入和话音输入录制。它寻求把基于Web的开发和内容传递的优势带入交互式语音响应应用程序中。VoiceXML是W3CSpeechInterfaceFramework[开发中]的一部分,后者还包括其他的标准,由于这些标准与电话行业的界限非常模糊,这里就不讨论了。VoiceXML2.0标志着VoiceXML规范从VoiceXMLForum转向W3C,前者仍然在努力改进这种技术。关于VoiceXML已经有了一些专利声明,其中一些意味着VoiceXML用户将面临版权和许可费的问题。 6.MathML MathematicalMarkupLanguage(MathML)2.0[W3C推荐标准]是一种XML语言,按照该规范的说法,其目的是“促进数学和科学内容在Web上,以及其他应用程序如计算机代数系统、打印排版及语音合成中的使用和重用。MathML可用于对能够高质量显示的数学符号表示编码,也可用于为语义起着更重要作用的应用程序对数学内容编码,如科学软件或语音合成。”MathML常用于在教育、科学论文、工业规范、规章内容等领域中表示等式、公式或者类似的信息。这个版本对MathML1.01[W3C推荐标准]增加了一些相对较新的特性。MathML经常和XHTML、SVG以及其他应用一起使用。 7.SynchronizedMultimediaIntegrationLanguage(SMIL) SMIL2.0[W3C规范],按照W3C的说法,“支持简单地编辑交互式[音频/视频]演示文稿。SMIL通常用于[‘丰富媒体’或多媒体]演示文稿,其中集成了流式音频和视频、图像、文本或者任何其他媒体类型。SMIL是一种简单易学的类HTML语言,许多SMIL演示文稿都是使用简单的[文本编辑器]编写的。”SMIL是W3CSynchronizedMultimediaactivity的一个产品,已经升级到了SMIL1.0[W3C推荐标准],增加了和动画、元数据、内容控制、链接、定时与同步、事件处理、过渡效果等有关的特性。 8.RDF 差不多在W3C致力于以XML为代表的下一代标记技术的同时,它也开始了下一代Web资源形式化描述技术的研究。ResourceDescriptionFramework(RDF)[W3C推荐标准]是一种模型,用于描述一组Web资源声明。这些声明被概念化为三元组,每一个都包含主语(一个URI——本系列文章前已述及)、谓词(也是一个URI)和对象(一个URI或字面数据值)。要理解这种声明的意义,可以想一想描述Web页面的HTMLmeta标签。如果套用在RDF上,主语就是Web页面本身的URI,谓词是一个标准URI表示一般的描述,而对象就是描述的实际文本。通过大量使用URI,RDF希望尽量减少这些声明成分标识的歧义,从而更加形式化以便于机器处理。RDF能否实现这一目标还存在争议,但是RDF以其非常活跃的社区和范围广泛的工具而知名。 RDF是W3CSemanticWebactivity的支柱;SemanticWeb是Web的一种视像,不仅仅是内容的表示,还包括内容的注释以帮助表达它的含义。比如,在SemanticWeb中描述Web资源时,可以区分"python"(一种蛇)和"python"(一种计算机编程语言)这样的概念。RDF标准化由大量规范组成,包括: ResourceDescriptionFramework(RDF):ConceptsandAbstractSyntax[W3C推荐标准]提出了目标、核心概念、基本数据模型以及RDF的抽象语法。 RDF/XMLSyntaxSpecification[W3C推荐标准]定义了RDF的一种通用XML表示。许多观察者包括我自己,都抱怨RDF/XML语法可怜的标记设计。 RDFVocabularyDescriptionLanguage1.0:RDFSchema[W3C推荐标准]定义了一个RDF词汇表,可用于定义其他RDF词汇表。 RDFSemantics[W3C推荐标准]不是供内心缺乏勇气的人看的,它探讨了RDF数据模型底层的形式数学理论。 WebOntologyLanguage(OWL)[W3C推荐标准]是RDF的一个应用,通常用RDF/XML编码,增加了丰富的词汇表可用于对RDF资源进行正式分类和归纳。 9.XMLTopicMaps TopicMaps[ISO国际标准,编号13250]提供了组织信息的一个系统,在某些方面是与RDF竞争的一种SemanticWeb技术。具体而言,XMLTopicMaps[ISO13250的一部分]是TopicMaps一种Web友好的版本,使用XML语法,并以URI作为标识符。与RDF相似,TopicMaps定义了一种类似图的模型,但更细微的差别和这样一个事实有关,即TopicMaps的一个重要规定是实际概念与其计算机表示的区分。TopicMaps的这种做法是SemanticWeb的一种基本工具,还是增加了不必要的复杂性,在TopicMaps与RDF支持者之间的这种争论永远不会划上句号。XMLTopicMaps使用了一种非常清晰的XML语法,这种语法基于XLink。 |