DocX的背景介绍

来源:互联网 发布:科尔比学院知乎 编辑:程序博客网 时间:2024/04/27 19:29

DocX的背景

DocX (截图)的开发开始于2003年,最初叫Conv-X,是一个实验项目。它的终极目标是进行任意两种文件格式的转换。最初甚至没有打算出任何产品。出现DocX是一种偶然中的巧合。

Conv-X的意图是,把任意的一种文档格式(包括文本的,或者是二进制的),通过某种语法,把该文档的格式描述出来。然后,Conv-X解释这种文档格式的描述文法(我称之为输入脚本),把文档读入到内存,并以xml的dom树存在。然后,再通过xslt转换(所以xsl文件我称之为输出脚本),把这个xml转换为任意的一种输出格式。

再来看DocX,你可以发现整个过程是相当复杂的。以从C++的.h文件提取为例,整个过程是: .h => .xml => .htm => .chm

现在你可以明白我说的实验是指什么。我试图想获得的是一种可以描述任意文档格式的脚本文法。这种脚本文法最终是通过一个名为tpl的库去解释。这是整个项目的重点。

目前来看这个项目,Conv-X取得了一定的成果。但是与我最初的期望相去甚远。我自我感觉认为,它没有满足我规划中的10%功能。

winx我虽然称之为界面库,那是因为,gui是它的重点。但它不是winx的唯一。现在winx包含三个子库:stdext(基础库)、winx(界面库)、tpl(Text Processing Lib - 文本处理库)。其中我们通常说的winx是指:stdext/stl + winx+ wtl/atl。tpl库作为可选组件,则不直接纳入。

tpl库成为winx库中的一个子库,但是又是可选的,这是出于什么考虑?原因是,tpl极有可能成为winx的另一个组件——winx的可视化开发工具所采用。为什么?因为,可视化开发工具,首先需要分析用户的源代码,确定自己需要把代码安插在何处。也许我可以调用vs2005的class view想关的api(我没有去细究),这是一个捷径,但是使得winx可视化开发工具移植到其他平台变得不可能。

因此,既然有winx的可视化开发工具,tpl就是winx项目必需的组件。当然,DocX是它的另一个客户。

原创粉丝点击