- 1 -
碰到的问题
有用户在将DITA手册发布成MS Word过程中,出现发布失败的情况。Oxygen提示错误信息,如下:
双击错误后,打开的文件定位不到具体的错误,并且不能明显地看出是什么问题。
用户等着将生成的Word文件给客户,相当着急。
赶紧联系摩拿,请求协助分析失败原因并解决发布失败的问题。
- 2 -
分析和解决过程
摩拿科技紧急组织小分队对问题进行分析。
1) 数据完整性校验
Oxygen中提供数据完整性校验的功能,能检查出大部分数据问题,比如:
-
断链
-
内容重用的源不存在
-
数据违反文档类型定义
通过点击“验证和检查完整性”图标来对手册数据进行检查:
如果提醒错误,请对数据进行修正。不过用户的数据并未报任何异常。
在将DITA发布成MS Word或者PDF会经过20-30个步骤,其中任何一步都有可能报错。 双击错误信息,有时打开的是某一个XSLT文件或者发布的脚本文件,并不能直接看出是什么问题。
2)查看发布日志
在发布过程中,Oxygen会在底部出现“正在发布”的信息,并且点击按钮可以弹出日志视图,如下图:
我们看看日志视图中提示什么有用的信息没有:
从日志里看到是将空字符串转换成数据时出错了。根据经验判断,这个问题可能跟图片或者表格尺寸设置有关。
接下来,是定位出错的数据的具体位置。
3)在ditamap中去掉一半的数据
4)尝试发布看问题是否还存在
发布如果还有问题,说明问题在剩下的一半数据中。然后再去掉一半,再次发布。 重复这个操作,直至没有错误,能成功发布。
发布如果没有问题,说明问题在去掉的那一半数据中。还原删除,然后在刚才去掉的一半数据中删除它的一半(一半的一半),再次发布,看是否能成功发布。
打开具体的topic查看内容, 特别关注表格和图的高度/宽度属性的值是否有异常 。
重复执行步骤3和4,直到找到问题。 可以尝试修改数据,重复发布,查看日志变化来看猜想是否正确。
5)发现问题
经过分析,发现是出错原因是数据的表格中有一列的宽度缺少符号造成,如下图:
表格中其他列的宽度设置中有个星号(*),代表相对值。但是第二列宽度中没有星号,导致数据转换失败。
通过将绝对值161修改成相对值1*,就能顺利发布了。
摩拿科技是专业的结构化文档工具和服务提供商,我们在标准软件(如:Oxygen XML Editor, MxDoc)的基础上提供专业服务,协助企业文档结构化转型落地,欢迎访问官网了解更多。