龙空技术网

XML相关软件替代选项

大龙谈技术出版物 142

前言:

此时看官们对“css比xml”大体比较讲究,各位老铁们都需要学习一些“css比xml”的相关文章。那么小编在网上网罗了一些有关“css比xml””的相关知识,希望咱们能喜欢,兄弟们快快来学习一下吧!

背景

近年来,中美关系持续走低。一方面贸易战持续上演,另一方面科技战逐渐升级。围绕着科技,最近几年发生众多事件,比如:孟晚舟事件,华为芯片禁令,哈工大、哈工程被禁止使用MATLAB,以及最近的TikTok事件等等,大家自行到百度里搜索了解。

美国在高科技众多领域掌握核心技术,我们工作中用到了很多美国的技术。最近的状态,让大家开始担心自己所在的领域会不会某个软件某天就不让用了

今天我们就来分析一下结构化手册领域所使用到的核心软件以及替代选项,给自己留有余地。

简介

不同的公司,业务流程不尽相同,开发出来的结构化手册软件系统也不同。但万变不离其中,使用到的核心软件涉及以下三部分

企业内容管理系统:企业内容管理系统(ECM - Enterprise Content Managment)是整个系统负责存储的部分,一般运行在服务器端。它负责手册内容的存储、用户权限控制、流程等。内容管理系统内部一般会使用文件系统来存储文件和数据库系统存储元数据(Meta Data)。XML编辑器:XML编辑器是手册编写者编写手册的软件,一般运行在客户端。手册编写者和它交互,完成手册内容的增加、删除、修改等操作。一般XML编辑器与内容管理系统做了集成,这样用户可以从内容管理系统中检出(Check out)内容并在XML编辑器中打开,供手册编写者编辑。完成以后,手册编写者可以将内容检入(Check in)到内容管理系统中保存。XML发布引擎:XML发布引擎是将编写完成的手册发布发布成输出格式的软件,一般运行在服务器端。它负责将XML格式的手册进行处理、过滤、并最终转换成PDF, HTML,IETP等格式供最终用户使用。

下面,我们详细说说这三个部分。

企业内容管理系统

在过去的30年,世界上最好、得到最广泛使用的企业内容管理系统主要来自美国。

Documentum - OpenText

Documentum公司为1500多个全世界最大的公司提供企业内容管理软件解决方案,它使大量不同类型的内容——包括文档、网页、XML文件、富媒体的创建、管理、定制和分发过程更加智能化和自动化,并集成在一个通用的内容平台和知识库中。

世界上最大、最成功的公司都投向Documentum公司的企业内容管理。Documentum的客户包括:思科、达美航空公司、道化学、福特汽车、惠普公司、默克公司、国家电网、平安保险公司、联合航空公司等。

Documentum本来是一家独立的公司,后来被EMC收购,在2017年戴尔公司从EMC获得Documentum, 现在Documentum属于OpenText公司。OpenText总部位于加拿大沃特卢。

Alfresco

Alfresco提供了开源的企业内容管理系统,功能包括:文档管理、协作、记录管理、知识库管理、Web内容管理等功能。

Alfresco由前Documentum联合创始人John Newton带领团队开发,提供开源版和商业版。此软件在国外很多行业的1300+家公司都得到广泛应用,但在我在国内见的不多。另,业界广泛使用的工作流引擎Activiti也是属于Alfresco公司的。

Alfresco公司总部位于美国波士顿。

FileNet - IBM

FileNet的旗舰产品是P8企业内容管理平台。FileNet P8特别针对公司内容和业务流程方面的需求,允许用户管理多种内容,包括表格、图像和电子邮件等。这款软件还支持来自存储厂商NetApp、HDS、IBM和EMC的单写多读(Write-once-read-many)技术。

IBM公司在2006年第四季度对FileNet进行了收购。IBM总部位于美国纽约州阿蒙克市。

Windchill - PTC

Windchill在业界的名声主要在PLM领域,它是世界上三大PLM(产品生命周期)产品之一, 它本身有文档管理的功能。在PTC收购Arbortext以后,在Windchill的基础上改装了一个内容管理系统叫做Arbortext Content Manager并且与Arbortext Editor进行集成。

PTC公司总部在美国波士顿。

替代选项

数据是企业重要的资产,为企业的运行和发展提供支撑。内容管理系统作为存储数据的关键部件,它的选择需要非常慎重。需要避免厂商锁定(Vendor locking)问题,即:一旦选择某个厂商,就不得不一直使用它。

方案一:完全自主研发

在企业的运营管理系统中,大多具备数据和内容的存储功能。如果只希望做一个符合业务需求的并且能完全自控的存储系统,并不需要它与多通用,那么自行开发也是可行的。

这种方案基于关系数据库、文件系统、MongoDB等,开发基本的内容存储功能。满足自己的业务需求,难度和工作量不是很大。

方案二:基于JSR-170实现的内容管理系统

如果要支持成千上万不同企业的内容管理的需求,那么需要开发一个像Documentum/Alfresco这样功能强大且通用的企业内容管理系统。

Java制定了访问内容管理系统的规范JSR-170,它有点类似于关系数据库世界的JDBC。JDBC定义了程序访问关系数据库的接口规范,不同的数据库厂商都实现这个接口。应用程序通过使用JDBC访问数据库,可以方便地切换数据库。同理,如果应用程序如果使用JSR-170定义的接口访问内容管理系统,可以在应用程序不变的情况下切换后台的内容管理系统,解决厂商锁定问题。

JSR-170有众多的厂商支持,比如:Documentum、Alfresco。同时,业界提供了一个完整的开源实现JackRabbit, eXo JCR, Jeceira。这里说的第二种方案就是选择一个支持JSR-170接口的内容管理系统,然后自行在上边开发自己的应用。

XML编辑器

在过去的30年,世界上最好、得到最广泛使用的XML编辑器也主要来自美国。

Arbotext - PTC

Arbortext Editor是一款专业的结构化创作工具,可以有效地满足所有产品信息创作的需求,能够有效地创作出操作员手册和维护手册、服务指南和电子教学材料以及各类营销文档等。

Arbortext Editor是少数支持SGML的编辑器之一。在航空、高科技等行业得到广泛应用。

FrameMaker - Adobe

FrameMaker是一个操作简便的可视化标准通用标记语言、可扩展标记语言编辑器。波音公司基于FrameMaker开发了波音飞机的飞行手册编辑和发布解决方案。

替代选项

方案一:其他国家开发的XML编辑器

开发通用的的XML编辑器的难度和工作量比较大。好在除了美国生产的,还有其他国家开发的一些编辑器。

1. Oxygen - Syncro Soft

oXygen XML Editor 是一款基于Java的XML编辑器,支持XML, XSL, TXT, XSD, DTD文档,能自行校验XML, XSL, XSD代码,提示脚本错误,可以在Windows, Mac和Linux上运行。它的最大特点是全面,提供了文档类型设计、内容编辑、发布、样式表开发和调试和用于与其他系统集成的接口。

Syncro Soft公司位于罗马尼亚。

2. XMetaL - Just System

XMetaL是与Arbortext Editor齐名的并且是最早的XML编辑器之一,它也支持SGML。XMetaL的用户包括澳洲航空、中华航空等。根据笔者的经历,XMetaL的可扩展能力比Arbortext稍微弱一些。

XMetaL几经转手,现在属于加拿大的Just System公司。Just System公司总部位于加拿大温哥华。

方案二:自行研发

针对特定类型文档(比如IPC, MEL或者工卡),自行开发可以作为一个选项。

XML发布引擎

目前将XML转换成PDF的方法有两种:

使用XSLT引擎将XML文件结合XSLT样式表生成XSL-FO文件,然后使用XSL-FO引擎将XSL-FO输出成PDF。将XML结合CSS样式表,通过引擎输出成PDF。

其中第一种方式是主流。

Arbortext Publishing Engine - PTC

Arbortext Publishing Engine简称PE,提供将XML结合样式表发布成PDF和HTML的功能,是PTC结构化编辑和动态发布的组成部分。PE支持的样式表语言FOSI提供了对输出精准控制,可生成高质量的PDF输出。在美国国防、航空等领域得到广泛使用。

RenderX

RenderX提供了从预构建的应用程序到集成工具包的所有必要工具,以解决将XML内容转换为高质量可打印格式的业务需求。根据笔者经历,RenderX对XSL-FO标准的支持较好,能满足绝大多数排版要求。

RenderX总部位于美国旧金山。

替代选项

方案一:其他国家开发的XML发布引擎

1. AH Formatter - Antenna House

AH Formatter是强大的自动PDF发布软件。在用于XML、DITA和S1000D的文档行业中,它以XSL-FO格式而闻名。它支持W3C标准。它支持将XML通过XSL-FO转换成PDF,同时支持将XML通过CSS样式表输出PDF。空中客车公司的飞行手册编辑软件FODM使用AH Formatter发布高质量的PDF输出。

AH Formatter由日本的Antenna House公司研制开发。

2. FOP

FOP是Formatting Object Processor的缩写,它是一款开源软件,由Apache Software Foundation拥有。基于W3C标准XSL-FO,是XSL-FO不完全实现,使用Java语言开发。如果计划使用FOP用于生产,还需要验证输出PDF的质量是否能达到要求。

3. Oxygen PDF Chemistry

Oxygen PDF Chemistry允许通过简单地使用CSS对HTML或XML文档进行样式设置,从而获得PDF输出。它是一个基于开源Apache FOP XSL-FO引擎的CSS页面媒体处理器。它的主要目的是提供一个简单的工具,允许利用CSS来创建可打印的可交付成果。

4. Prince XML

使用CSS将HTML转换为PDF。由YesLogic Pty Ltd开发和支持,公司总部位于澳大利亚墨尔本。

方案二:自行开发

国内已经有对PDF研究很深的公司,比如:福昕软件。国内也有公司开发过浏览器,将HTML渲染到屏幕上。将这些技术整合,开发一个国产的发布引擎也是有可能的。

最后的话

本文总结了结构化手册领域的三个核心组件:企业内容管理系统、XML编辑器和XML发布引擎的相关软件的替代选项。

除了软件选择或者开发以外,在项目过程中保证数据迁移后的完整性和可用性需要作为重要事项来考量。同时,一个项目从开发完成到稳定为生产提供支撑,需要时间检验,也需要团队付出巨大而细致努力。

备注:

本文根据作者个人经验总结,提到了一些产品但不构成产品推荐,使用前还请自行评估判断。在使用提到的开源产品前,请交由专业人士阅读开源许可条款并确认。

标签: #css比xml