如何将Word/PDF转成高质量XML

  • Post author:
  • Post category:其他


▲ 微信搜索“大龙谈技术出版物”关注我的公众号


常有朋友问:Word文档或者PDF文档能转成XML吗?

答案是:能。

如果使用某软件的“另存为”功能,能得到一个XML文件,但是里边的内容却差强人意,离期望的质量很远。

怎样能获得高质量的结构化内容(XML)呢?今天聊聊这个话题。




– 1 –





定义文档类型


要将非结构化内容,如:MS Word、PDF,转换成XML,第一步要定义XML的文档类型(DTD或者Schema),也就是XML的文档规则。

目前,已经存在一些标准文档类型,比如:DITA、S1000D等。如果标准的文档类型能满足要求,就尽量选择标准文档类型。拿DITA来说,原因是:

  • 选择多

    市面上已经有很多能够编辑、管理、处理DITA的软件供选购,当然也可以自建。

  • 成本相对低

    如果自己定义文档类型,那么需要自建和维护一套相对应的编辑、管理、出版的软件和样式。

    如果使用DITA,则已经有支持的软件和样式,就算是要客制化也是小范围的。

    就内容的整个生命周期来看,两者不同做法之间的成本可以相差50倍。



一般情况,建议选择DITA作为文档类型。如果还有不能满足的要求,则在DITA基础上利用专有化来实现。


DITA的专有化机制就是为了在DITA定义的文档类型不能满足要求时,进行扩展的机制。




– 2 –





建立映射关系


有了文档类型以后,第二步是建立源文件和目标XML的映射关系。 这种映射关系用于转换程序来实现内容转换。

映射关系就像下边这样:

Heading 1 -> topicref/@navtitle
Heading 2 -> topicref/@navtitle
Heading 3 -> topic/title
para -> p




– 3 –





整理现有数据


虽然大多数公司都有写作指南/风格指南,但是使用MS Word这样的非结构化写作工具很难做到完全按照写作指南的要求来写作,尤其是在有多人写作的情况下。MS Word并没有结构化写作工具(如:Oxygen XML)那样检测并确保内容按照写作指南来写作的工具。

在使用转换程序进行内容转换之前,我们需要确保源文件符合写作指南的要求。如果不符合,则需要手工对源文件进行调整,整理成符合写作指南要求的内容。这样可以降低转换程序的复杂度,并提高转换结果的准确性。

MS Word源文件是否符合写作指南的要求决定数据整理的工作量。





– 4 –






运行程序进行内容转换


有了以上三步的准备工作,我们就可以运行转换程序进行转换了。转换过程是这样的:






– 5 –







校对和调整


在结构化编辑工具中,打开转换好的XML,对内容进行校对。主要关注这几方面:

  • XML是否符合文档类型的定义?

    结构化编辑工具一般都有自动检查的功能。

  • 文档的结构、标签、属性是否准确?

    这需要对目标XML有清晰理解的小伙伴来执行。

    如果不能满足要求,并且是普遍存在的问题,则需要回到第二步:调整映射关系,然后再执行转换程序进行转换。如果只是个别的问题,则手工调整XML内容即可。

  • 检测PDF/HTML输出。

    最终用户关心的是PDF/HTML等输出结果,而不是XML的内容。所以一般我们还需要将XML输出成PDF/HTML,查看输出是否能满足要求或者确认需要做的样式调整。如果发现样式不能实现输出的要求,也需要结合调整数据来完成。






– 6 –







丰富内容


MS Word源文件中,只有一般意义的内容,比如:标题1,标题2,段落、列表、表格。

实际上,内容中有些内容是有语义的,比如这个:

表格中的不是一般的文字,而是具有意义的数字,后续会被其他应用程序读取的。

再比如,下边这段XML中的level属性。Lite代表一般给用户;Professional代表给专家级用户。

<conbody>
    <p>刹车片</p>
    <p level="Lite">刹车片也叫刹车皮。在汽车的刹车系统中,刹车片是最关键的安全零件,刹车效果的好坏都是刹车片起决定性作用</p>
    <p level="Professional"> 刹车片(brake lining)一般由钢板、粘接隔热层和摩擦块构成,钢板要经过涂装来防锈,涂装过程用SMT-4炉温跟踪仪来检测涂装过程的温度分布来保证质量。其中隔热层是由不传热的材料组成,目的是隔热。摩擦块由摩擦材料、粘合剂组成,刹车时被挤压在刹车盘或刹车鼓上产生摩擦,从而达到车辆减速刹车的目的。由于摩擦作用,摩擦块会逐渐被磨损,一般来讲成本越低的刹车片磨损得越快。</p>
</conbody>


这两例子中的数据在转换过程中难以自动转换生成。就需要在转换以后,填入这些语义信息。

我们把这个过程叫做丰富内容,英文叫Enrich。

通过丰富内容,我们就得到高质量的XML了。






– 7 –







小结


首先,所谓高质量结构化内容,是根据自己业务需求定义的。

其次,经过以下6个步骤,就可以得到高质量的结构化内容:

  1. 定义文档类型;

  2. 建立映射关系;

  3. 整理源内容;

  4. 运行程序进行数据转换

  5. 校对和调整

  6. 丰富内容

最后,源文件的质量关系到工作量的大小。根据以往经验,PDF文件因为其内容难以读取,工作量最大。Word、FrameMaker更容易转换一些。

摩拿科技:

www.manualsware.com


微信搜索“大龙谈技术出版物”关注我的公众号



版权声明:本文为long_jj原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。