[转帖]ODF 与UOF的比较
发表于 : 2008-07-25 10:53
ODF(Open Document Format)文档格式是由StarDivision公司定义的,该公司后来为Sun Microsystems收购,形成StarOffice办公软件产品。ODF是基于XML的文档格式,后来由Sun和 IBM公司推荐在OASIS开放标准化组织中制订标准,并于2006年5月成为ISO/IEC国际标准ISO/IEC 26300,它是开放源代码项目OpenOffice 2.0的文档格式,同时也支持为其他多个应用所实现。ODF标准支持包括文字处理、电子表格、演示文稿、制表制图和图形编辑等办公软件应用。
UOF(Uniform Office-document Format)是基于XML置标语言、拥有自主知识产权的中文办公软件文档格式国家标准, 全称为“统一办公文档格式标准”,支持文字处理、电子表格和演示文稿等应用。同时,UOF针对文档安全问题定义了数字签名。UOF是由中国国内办公软件厂商组成的标准化工作组完成的,工作组于2002年2月开始工作,在国家电子政务标准总体组的指导之下完成。
ODF和UOF这两个格式标准都完全基于XML,是面向办公软件文档的格式规范,每个格式都包含支持办公应用所需的元素,都注重模块的重用以及内容与格式的分离,都能够通过内部的XML标志,引用外部的二进制模块,都支持同一标准的多种实现。然而,两个不同的格式规范由于来源不同,以及关注重点的差异,导致它们之间仍存在着显著的差别。
1.功能范围
UOF文档格式标准综合了国产办公软件的功能需求,覆盖了中文文档的各个常用功能点,既能够满足用户常用文档格式的需求,还允许针对中文文档格式的特殊要求进行处理。相对而言,ODF由于经过较长时期的发展,能够覆盖的功能点相对丰富。
总之,从目前版本的两个标准的覆盖功能可见,相对而言,UOF专注于中文文档处理的功能,而ODF覆盖的功能点更加全面。
2. 描述语言
ODF和UOF都基于XML语言,但是ODF采用了国际标准Relax NG作为XML模式定义语言,而UOF采用了协会标准组织W3C定义的XML Schema作为模式定义语言。这两种选择各有特点,Relax Ng作为国际标准具有一定的权威性,而XML Schema则是业界流行的模式定义语言。
另外,在标签语言的使用上,ODF采用英文标签,而UOF采用中文作为标签描述语言。但是,为了便于标签实现不同语言的翻译和对应,UOF采用了标签编码的方式,通过编码方便地实现不同语言标签的转换,因此UOF在标签的国际化方面占有优势。
3.采用国际标准
ODF和UOF都注意采用以国际标准为基础,例如SVG、MathML等等。但是在使用中,ODF倾向于将相应标准的元素通过命名空间独立出来,在整个模式中分散使用;而UOF更注重整体、全面地使用特定命名空间的元素和属性,以保证整个模式的完整性。
4.名字空间
ODF的名字空间是以功能模块为基础进行划分,而UOF的名字空间的模块划分则更多是以文档类型和结构为基础。因此,UOF的schema中有许多在不同的名字空间里重复定义的元素,而这些元素一般只被限制在某种类型的文档里使用。
在ODF和UOF的比对中,一些ODF中的名字空间在UOF中没有对应,比如dr3d,form,manifest,smil等。相应的这些名字空间中所定义的元素和属性也就没有定义。这样会造成在转换过程中,尤其是从ODF到UOF转换的时候,存在着一些信息缺失的情况。比如,dr3d定义了一些关于3d图形的元素,而在UOF中没有显示3d图形的功能,再例如form,form定义的是与表单的定义,显示与动作的一些元素,而UOF中同样不支持表单。这些都可能会造成两个标准之间的互操作障碍。
4. 对应模式
在元素和属性的层次上,ODF和UOF两种规范的差别表现的更明显。在两种标准的比对中,有不同的对应模式,大致上有以下几种类型:ODF中的属性对应到UOF中的元素;
ODF文档中某个元素同时对应到UOF 中的一个元素及之外的一个元素;ODF中某些元素在它的某个属性取值不同的情况下,需要对应到UOF中的不同元素等等。对应模式的不同使得标准之间的转换出现多种情况,表现出复杂性。
6.扩展性
在整个模式文档的描述上,ODF采用属性定义较多, 而UOF更多采用元素定义。多用元素而少用属性虽然增加了模式文档的大小,但是却增加了模式应用的灵活性和扩展性。
7.用户逻辑数据的支持
UOF采用用户定义实例树与格式树分别存储,基于引用的方法支持用户自定义模式,实现逻辑格式与物理格式的分离。而目前ODF主要通过表单FORM方式实现,存在很大差别。采用用户定义实例树与格式树分离的方式保证了显示与逻辑格式之间没有关联,增强了应用的灵活性。
8. 逻辑结构
UOF格式中主体部分描述文档的主体内容,如段落、表格等,主体中出现的超级链接、书签等信息则采用统一管理的方式,提取该功能的信息作为文档的一部分独立于主体之外描述,通过标识符引用与主体出现的位置建立关联。这种结构方式既描述了主体以及其必要的附属信息,又有效地将附属超级链接等信息分离出来,既便于修改附属信息内容,又可以做到统一管理。相对于ODF,UOF的这种组织形式更具有科学性和可管理性。
9. 存储结构的合理性
UOF格式的文档采用单一XML文件形式,文件内部按不同模块压缩存储,效率较高。ODF格式基于部件为基础的压缩ZIP文件格式规范。ZIP文件被看作一个容器,每个容器由多个部件组成,每个部件描述了文档的不同部分,除了少数代表图形的二进制文件或内嵌OLE对象,大多数部件采用XML文件形式。这种结构虽在设计上是可行的,也做到了文档主体与附属信息的分离,一个文档的附属信息修改时不需要将整个容器读入内存,节省了内存资源;同样也带来了多文档的弊病,当文档需要频繁调用其它部件中的信息时,需要多次进行读写操作多个文件,这种频繁I/O读写降低了软件的读写效率。而对于采用单位XML文件形式的 UOF则不存在这个问题。
另外,目前ODF还没有数字签名功能,这些还需要在新的版本中加以丰富;ODF采用完全免费的知识产权授权原则,而UOF采用了RAND授权原则,也可能导致两者在发展方向上存在差异。
总之,由于UOF和ODF都是采用XML作为标准描述语言,支持三种应用文档基本格式,在包括式样、主体和属性等方面都有类似的定义,因此实现两个标准的兼容和融合是完全可能的。
来源: http://blogs.sun.com/dennisding/entry/o ... 4%E8%BE%83
UOF(Uniform Office-document Format)是基于XML置标语言、拥有自主知识产权的中文办公软件文档格式国家标准, 全称为“统一办公文档格式标准”,支持文字处理、电子表格和演示文稿等应用。同时,UOF针对文档安全问题定义了数字签名。UOF是由中国国内办公软件厂商组成的标准化工作组完成的,工作组于2002年2月开始工作,在国家电子政务标准总体组的指导之下完成。
ODF和UOF这两个格式标准都完全基于XML,是面向办公软件文档的格式规范,每个格式都包含支持办公应用所需的元素,都注重模块的重用以及内容与格式的分离,都能够通过内部的XML标志,引用外部的二进制模块,都支持同一标准的多种实现。然而,两个不同的格式规范由于来源不同,以及关注重点的差异,导致它们之间仍存在着显著的差别。
1.功能范围
UOF文档格式标准综合了国产办公软件的功能需求,覆盖了中文文档的各个常用功能点,既能够满足用户常用文档格式的需求,还允许针对中文文档格式的特殊要求进行处理。相对而言,ODF由于经过较长时期的发展,能够覆盖的功能点相对丰富。
总之,从目前版本的两个标准的覆盖功能可见,相对而言,UOF专注于中文文档处理的功能,而ODF覆盖的功能点更加全面。
2. 描述语言
ODF和UOF都基于XML语言,但是ODF采用了国际标准Relax NG作为XML模式定义语言,而UOF采用了协会标准组织W3C定义的XML Schema作为模式定义语言。这两种选择各有特点,Relax Ng作为国际标准具有一定的权威性,而XML Schema则是业界流行的模式定义语言。
另外,在标签语言的使用上,ODF采用英文标签,而UOF采用中文作为标签描述语言。但是,为了便于标签实现不同语言的翻译和对应,UOF采用了标签编码的方式,通过编码方便地实现不同语言标签的转换,因此UOF在标签的国际化方面占有优势。
3.采用国际标准
ODF和UOF都注意采用以国际标准为基础,例如SVG、MathML等等。但是在使用中,ODF倾向于将相应标准的元素通过命名空间独立出来,在整个模式中分散使用;而UOF更注重整体、全面地使用特定命名空间的元素和属性,以保证整个模式的完整性。
4.名字空间
ODF的名字空间是以功能模块为基础进行划分,而UOF的名字空间的模块划分则更多是以文档类型和结构为基础。因此,UOF的schema中有许多在不同的名字空间里重复定义的元素,而这些元素一般只被限制在某种类型的文档里使用。
在ODF和UOF的比对中,一些ODF中的名字空间在UOF中没有对应,比如dr3d,form,manifest,smil等。相应的这些名字空间中所定义的元素和属性也就没有定义。这样会造成在转换过程中,尤其是从ODF到UOF转换的时候,存在着一些信息缺失的情况。比如,dr3d定义了一些关于3d图形的元素,而在UOF中没有显示3d图形的功能,再例如form,form定义的是与表单的定义,显示与动作的一些元素,而UOF中同样不支持表单。这些都可能会造成两个标准之间的互操作障碍。
4. 对应模式
在元素和属性的层次上,ODF和UOF两种规范的差别表现的更明显。在两种标准的比对中,有不同的对应模式,大致上有以下几种类型:ODF中的属性对应到UOF中的元素;
ODF文档中某个元素同时对应到UOF 中的一个元素及之外的一个元素;ODF中某些元素在它的某个属性取值不同的情况下,需要对应到UOF中的不同元素等等。对应模式的不同使得标准之间的转换出现多种情况,表现出复杂性。
6.扩展性
在整个模式文档的描述上,ODF采用属性定义较多, 而UOF更多采用元素定义。多用元素而少用属性虽然增加了模式文档的大小,但是却增加了模式应用的灵活性和扩展性。
7.用户逻辑数据的支持
UOF采用用户定义实例树与格式树分别存储,基于引用的方法支持用户自定义模式,实现逻辑格式与物理格式的分离。而目前ODF主要通过表单FORM方式实现,存在很大差别。采用用户定义实例树与格式树分离的方式保证了显示与逻辑格式之间没有关联,增强了应用的灵活性。
8. 逻辑结构
UOF格式中主体部分描述文档的主体内容,如段落、表格等,主体中出现的超级链接、书签等信息则采用统一管理的方式,提取该功能的信息作为文档的一部分独立于主体之外描述,通过标识符引用与主体出现的位置建立关联。这种结构方式既描述了主体以及其必要的附属信息,又有效地将附属超级链接等信息分离出来,既便于修改附属信息内容,又可以做到统一管理。相对于ODF,UOF的这种组织形式更具有科学性和可管理性。
9. 存储结构的合理性
UOF格式的文档采用单一XML文件形式,文件内部按不同模块压缩存储,效率较高。ODF格式基于部件为基础的压缩ZIP文件格式规范。ZIP文件被看作一个容器,每个容器由多个部件组成,每个部件描述了文档的不同部分,除了少数代表图形的二进制文件或内嵌OLE对象,大多数部件采用XML文件形式。这种结构虽在设计上是可行的,也做到了文档主体与附属信息的分离,一个文档的附属信息修改时不需要将整个容器读入内存,节省了内存资源;同样也带来了多文档的弊病,当文档需要频繁调用其它部件中的信息时,需要多次进行读写操作多个文件,这种频繁I/O读写降低了软件的读写效率。而对于采用单位XML文件形式的 UOF则不存在这个问题。
另外,目前ODF还没有数字签名功能,这些还需要在新的版本中加以丰富;ODF采用完全免费的知识产权授权原则,而UOF采用了RAND授权原则,也可能导致两者在发展方向上存在差异。
总之,由于UOF和ODF都是采用XML作为标准描述语言,支持三种应用文档基本格式,在包括式样、主体和属性等方面都有类似的定义,因此实现两个标准的兼容和融合是完全可能的。
来源: http://blogs.sun.com/dennisding/entry/o ... 4%E8%BE%83