转到结构化写作后的几点变化

news2025/1/17 14:08:42

或许是随着公司产品越来越多,公司的手册越来越复杂,用户越来越难找到需要的信息;或许是因为公司管理手册的使用者不满足于长篇大论的文字,希望能够获得只跟他相关的政策、程序等信息。

总之,公司决定从MS Word、非结构化FrameMaker或者Markdown转向基于XML的结构化写作。但XML是另一个世界,它到底是什么样子?和之前的方法相比有什么不同?

1

XML是什么?

XML是eXtenable Markup Language(可扩展标记语言)的缩写。它是一种允许用户根据业务需求,对自己的标记语言进行定义的语言。

我们可能不一定听说过XML,但很可能听说过它的兄弟 - HTML。HTML被设计来在浏览器呈现内容,现在它在我们的电脑和手机里无处不在,比如:浏览器里,微信里,淘宝里,今日头条里。大家常说的H5就是第5代HTML的标准。HTML中定义了固定的标签来标识不同的意思:<h1>表示一级标题,<p>代表段落,由浏览器来把它显示给用户。与HTML相比,XML的不同在于:它没有定义任何固定的标签,是由使用它的的人来定义标签,同时是使用的人来决定怎么使用这些标签。它是一个工具、一种机制

根据不同的使用场景,人们使用XML定义了很多文档标准,其中包括:

  • DITA

    达尔文信息类型体系结构,用于创作、生成和交付面向主题的信息类型内容,适用于产品手册、管理手册、业务文档等通用型文档。

  • S1000D

    技术出版物生产的国际规范,其用途包括:国防系统-包括陆海空产品, 民用航空产品,建筑业产品,船舶工业产品。

    S1000D标准规范最初是由欧洲航空器材制造商协会制定,该协会现改名为欧洲航空航天防务工程协会ASD(Aerospace and Defence Association of Europe)。随后,美国航天工业协会AIA(American Aerospace Industry Association)和美国航空运输协会ATA(Air Transport Association of America)也加入了合作制定的行列。

  • ATA 2300

    航空飞行类手册国际标准。

  • DocBook

    非常适合于关于计算机硬件和软件的书籍和论文(虽然它绝不限于这些应用),它由OASIS 的DocBook 技术委员会维护。

2

几点变化

1. 内容和样式分离

当从文字处理或类似的工具转向使用XML进行结构化创作时,最显著的区别是样式从内容中分离出去了

以前,需要在编写内容时根据预期的输出调整格式。可以手动调整字体样式、大小或边距。MS Word提供所见即所得的功能,在屏幕上马上可以看到输出的效果。 

现在,XML将内容与输出样式完全分离。内容保存在XML文件中,直到创建输出时,样式才会应用。在发布之前,内容是用未格式化的XML编写的。根据编辑器的不同,可能只看到元素标记和文本。这允许写作者将注意力集中在内容编写本身,而不用关心样式。还允许通过多个样式将相同的内容创建多个输出(PDF、HTML等)。

2. 内容一致性

公司的编写指南可能会说,所有图片标题都居中,放在图片下方,斜体。然而,写作者甲觉得他更喜欢图片上方加粗体的标题。通过手动操作,写作者甲可以按照他想要的格式调整。这样就会出现不同的写作者写的内容不一致。但是XML会改变这种情况。

XML不允许编写者自由发挥地写作,而是定义了一系列的规则。这个规则定义在文档类型(DocType)中。文档类型定义了哪个元素可以出现在哪里,出现几个。样式表则决定这个元素输出成什么样子。在XML中,写作者甲只能将一个图片标题元素放置在指定的位置,样式表将它置于图片下方的中心并设置为斜体。

XML仍然有一定的灵活性,但在很大程度上,它确保了相同的内容以相同的方式出现在相同的位置。使用XML进行写作时,编辑软件根据DocType中定义的规则确保所有写作者写的内容的一致性

3. 手册被拆分成小块

在MS Word中,可能所有内容放在一个文件中。如果一个人在编辑这个文件,那么这个文件就会被锁定,其他人不能同时进行编辑。或者可能会冒创建多个冲突版本的风险。

使用XML编写手册,绝大多数情况是将手册分解成若干部分。手册由一个结构文件(在DITA中叫做Map,在S1000D中叫做PublicationModule)和与之连接的内容小块(DITA中叫Topic,S1000D中叫DataModule)组成

当写作者更改或编写内容时,将使用最小的XML内容块。这不仅让大家可以同时写一本手册,还有利于内容的重用。

4. 内容重用

如果你的100本手册中都有公司简介。因为某种原因需要更新公司简介信息(比如:你们公司与另一家公司合并并更名了)。是否必须打开所有100本手册并修改其中的公司简介100遍呢?这个问题在XML中不存在。

使用XML,由于公司简介将在其自己的XML内容块中编写,该内容块存储在所有写作者都可以使用的内容管理系统中,因此100本手册中的每一本都有一个指向这个公司简介的引用。只需要更新这一个文件,每当你打开并发布100本手册时,它们都会自动拉取更新的公司简介

内容重用可以在多个级别上实现。可以保持它的简单性,只使用完整的内容块文件。还可以创建实体来重用整个短语或单词。但是,重用粒度越细,管理难度会加大。

5. 个性化文档

在我们编写产品操作手册时,有些产品基本一样,但是有少许不同。这种情况下,我们为这些产品编写一本手册,然后针对不同的地方,做如下处理:

如果是产品A,则这样操作:
XXX
XXX
如果是产品B, 则这样操作:
YYY
YYY

如果是产品A,则这样操作:XXXXXX如果是产品B, 则这样操作:YYYYYY

由手册的使用者来判断到底应该遵循哪个步骤。但这在某些情况下不能满足要求,比如:用于飞机出现故障需要飞行员快速行动的场景(QRH)。

使用XML文档以后,我们还是这样写:

<sect product="产品A">
<p>XXX</p>
<p>XXX</p>
</sect>
<sect product="产品B">
<p>YYY</p>
<p>YYY</p>
</sect>

但在输出的时候,我们可以给程序传入"生成针对产品A的手册"的指令,得到的输出就是针对产品A的手册适用产品B的内容被过滤掉或者灰色显示表示不适用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/155752.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Pipeline机器学习模型串联

机器学习模型训练时使用 Pipeline 是一个加快效率的串联方法。Pipeline 处理机制就像是把所有模型塞到一个管子里&#xff0c;然后依次对数据进行处理&#xff0c;得到最终的分类结果。 # 模型串联 pipPipeline( [ # 所有模型写…

Matlab Spreadsheet Link安装(早期叫excllink)

我们在Matlab和Excel之间进行数据交互&#xff0c;需要用到Excel link这个组件&#xff08;这是早期的叫法&#xff09;&#xff0c;现在这个组件的名称叫做Spreadsheet Link&#xff0c;这个在我们安装Matlab的时候&#xff0c;要选择相应的组件来安装&#xff08;有可能我们刚…

find命令的常见用法

1.find 命令的常见用法 1.1 基础的打印操作 find命令默认接的命令是-print&#xff0c;它默认以\n将找到的文件分隔。可以使用-print0来使用\0分隔&#xff0c;这样就不会分行了。但是一定要注意&#xff0c;-print0针对的是\n转\0&#xff0c;如果查找的文件名本身就含有空格…

高一物理题整理

1 船过河问题 【分析及解答】 这个题的关键是如何理解船的速度&#xff0c;题目假设船的速度是不变的&#xff0c;也就是一直是v2v_2v2​。 列方程如下&#xff1a; {120v1∗10dv2∗10dv2sin⁡θ∗12.5v1v2cos⁡θ\left\{\begin{array}{l} 120 v_1 * 10 \\ d v_2 * 10 \\ d …

【我的渲染技术进阶之旅】解决Cinema 4D制作的3D模型无法导入Blender的问题

文章目录一、问题描述二、分析问题2.1 查看material材质的mtl文件2.2 mtl文件介绍2.3 对比mtl文件和mtl语法并修改2.3.1 norm不对2.3.2 map_Ka、map_Kd 、map_Ks、map_Bump 的格式不对2.5 重新导出obj格式和mtl文件三、总结一、问题描述 今天UI输出了个3D模型给我&#xff0c;…

Spring是如何解决循环依赖的?

一、什么是循环依赖&#xff1f; 循环依赖&#xff1a;说白了就是一个或多个对象实例之间存在直接或间接的依赖关系&#xff0c;这种依赖关系构成了一个环形调用。 第一种情况&#xff1a;自己依赖自己的直接依赖 第二种情况&#xff1a;两个对象之间的直接依赖 第三种情况…

Android 深入系统完全讲解(11)

9 framework 内容组成 狭义的 framework&#xff0c;主要讲的就是 SystemServer 里面的所有服务&#xff0c;这些是在 framework&#xff0c; 而广义的就是包含了 rec&#xff0c;native 服务&#xff0c;系统 app 等一切分不出去的模块&#xff0c;所以 framework 要能做好&a…

睿尔曼 RM65-B 机械臂 WIN 示教软件测试

大家好&#xff0c;我是虎哥&#xff0c;最近开始接触机械臂&#xff0c;尤其是协作机械臂&#xff0c;小&#xff0c;轻、还价格便宜一点&#xff0c;由于我师兄弟强烈推荐的睿尔曼 RM65-B机械臂&#xff0c;所以总结一下自己的开箱测试经验&#xff0c;主要是在WIN下 示教器软…

Protobu编译本地环境搭建

1 windows下安装Protobuhttps://github.com/protocolbuffers/protobuf/releases2 安装cmakehttps://cmake.org/download/3选择选择你的VS版本4生成pb运行程序5 protoc --cpp_out生产pb文件将刚才编译后的libprotobufd.lib和protoc.exe拷贝到自己创建的项目下&#xff0c;按住sh…

express中间件

文章目录中间件定义一个最简单的中间件自定义中间件中间件的五个使用注意事项Express 基于 Connect 构建而成&#xff0c;因此&#xff0c;它也保持了重用中间件来完成基础任务的想法。这就意味着&#xff0c;通过 Express 的 API 方便地构建 Web 应用地同时&#xff0c;又不失…

基于vgg16和pytorch框架进行cifar10数据集的图像分类

vgg16网络模型的实现 这里只讲怎么实现 百度搜到vgg16的网络模型图&#xff0c;用pytorch框架进行实现 图是这样&#xff0c;用pytorch实现就行&#xff0c;pyotrch不太熟悉的话可以去看小土堆的视频 命名mode.py 也可以使用其他名字&#xff0c;在后面的train.py里面改一下也…

【C语言进阶】内存函数和结构体内存对齐

目录一.strerror函数1.错误码变量errno2.strerror函数的使用3.perror函数二.memcpy函数1.函数介绍2.模拟实现三.memmove函数1.函数介绍2.模拟实现四.结构体的内存对齐一.strerror函数 1.错误码变量errno 规定: C语言库函数如果出现运行错误&#xff0c;会将对应错误信息的错误…

联邦学习 (FL) 中常见的3种模型聚合方法的 Tensorflow 示例

联合学习 (FL) 是一种出色的 ML 方法&#xff0c;它使多个设备&#xff08;例如物联网 (IoT) 设备&#xff09;或计算机能够在模型训练完成时进行协作&#xff0c;而无需共享它们的数据。 “客户端”是 FL 中使用的计算机和设备&#xff0c;它们可以彼此完全分离并且拥有各自不…

基于Java springmvc+mybatis酒店信息管理系统设计和实现

基于Java springmvcmybatis酒店信息管理系统设计和实现 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取…

程序员接私活的几个平台和建议,避免掉坑!

大家对于程序员接私活这件事的看法&#xff0c;褒贬不一。但是你如果确实用钱&#xff0c;价格又合适&#xff0c;那就大胆去接。 如果不那么缺钱&#xff0c;那么接私活之前先考虑清楚&#xff0c;如果自己将空余时间用在接私活所产生的价值是不是大于提升自己。如果是的话&a…

2022年 大学生工程训练比赛[物料搬运]

本人和团结参加了2022年大学生工程训练(简称工训赛)校赛选拔&#xff0c;准备了几个月的时间和花费了较多的资金&#xff0c;由于疫情等多种情况&#xff0c;很遗憾未能参加湖南省省赛&#xff0c;过了这么久还是写个博客记录参赛准备和调试过程。 目录 一、比赛要求 二、整体…

第十章面向对象编程(高级部分)

10.1 类变量和类方法&#xff08;关键字static&#xff09; 10.1.31类变量快速入门 思考: 如果,设计一个 int count 表示总人数,我们在创建一个小孩时&#xff0c;就把 count 加 1,并且 count 是所有对象共享的就 ok 了! package com.hspedu.static_;public class ChildGame {…

MS【1】:Metric

文章目录前言1. Dice Loss1.1. Dice coefficient1.2. F1 score - Dice1.3. Dice Loss2. Sensitivity & Specificity2.1. Sensitivity2.2. Specificity3. Hausdorff distance3.1. 概念3.2. 单向 Hausdorff distance3.3. 双向 Hausdorff distance3.4. 部分 Hausdorff distanc…

使用ResNet18实现CIFAR100数据集的训练

如果对你有用的话&#xff0c;希望能够点赞支持一下&#xff0c;这样我就能有更多的动力更新更多的学习笔记了。&#x1f604;&#x1f604; 使用ResNet进行CIFAR-10数据集进行测试&#xff0c;这里使用的是将CIFAR-10数据集的分辨率扩大到32X32&#xff0c;因为算力相关的…

二、数据仓库模型设计

数据仓库模型设计一、数据模型二、关系模型三、维度模型1、事实表&#xff08;1&#xff09;事务事实表&#xff08;2&#xff09;周期快照事实表&#xff08;3&#xff09;累计快照事实表&#xff08;4&#xff09;无事实的事实表2、维度表3、维度模型类型&#xff08;1&#…