结构化文档开发笔记

发布时间 2023-09-08 09:58:23作者: 蹇爱黄

一些浅薄的见解有错误请指出

1.结构化文档编写和发布的基本流程

看了一些工具的文档,发现从编写xml到输出为pdf、html的步骤是固定的,从编写XML文件到输出为PDF文档的一般流程包括以下步骤:

  • 编写XML文件:根据需要的文档结构和内容,使用XML标记语言编写XML文件。XML文件应包含所需的数据和标签,以描述文档的结构和内容。

  • 设计XSL样式表:根据需要的输出格式和样式,设计XSL样式表。XSL样式表使用XSLT语言,定义了将XML文档转换为其他格式的规则和模板。

  • 运行XSLT转换:使用XSLT处理器(如XSLT解析器)加载XML文件和XSL样式表,并执行转换。XSLT解析器解析XSL样式表,并根据规则和模板将XML文档转换为中间格式(如FO格式)。

  • 设计FO样式表:根据需要的PDF输出样式,设计FO(Formatting Objects)样式表。FO样式表使用XSL-FO语言,定义了PDF文档的布局、样式和格式。

  • 运行FO转换:使用FO处理器(如Apache FOP)加载中间格式(由XSLT转换生成的FO文件)和FO样式表,并执行转换。FO处理器将FO文件解析并生成PDF文档。

  • 输出PDF文档:FO处理器生成PDF文档后,可以将其保存到指定的文件路径或直接输出到浏览器或其他目标设备。

需要注意的是,上述流程中使用的XSL样式表和FO样式表的设计和编写可能需要一定的学习和经验。同时,还可以根据具体需求和工具的选择,对流程进行适当的调整和扩展。
不同的结构化文档工具厂商会有自己的工具开发设计,比如ptc的Arbortext这个工具集里面editor就只负责编辑xml,这个editor软件的输出就只能是xml文件或者dita文件,必须买工具集中的另外一个软件styler才能存储成PDF或者html等格式的文件。Oxygen的editor就集成了styler,可以直接存储成PDF或者html等格式的文件。
对文档文件的管理和评审就需要用到工具集中的管理产品了,比如ptc的windchill。

2.xml结构的语言

顺便说一下所有xml架构的语言:
1.DTD(Document Type Definition)
2.XML Schema:XML Schema是一种更为强大和复杂的XML架构语言,它使用XML语法来定义XML文档的结构、元素的数据类型、约束和关系等。XML Schema支持数据类型验证、数据完整性和命名空间等功能。
3.RELAX NG(Regular Language for XML Next Generation):RELAX NG是一种简洁而灵活的XML架构语言,它使用正则表达式和简单的规则来定义XML文档的结构和约束。RELAX NG支持数据类型验证和模式继承等功能。
4.Schematron:Schematron是一种基于规则的XML架构语言,它允许用户定义自己的验证规则和约束,用于检查XML文档是否符合特定的业务规则和逻辑。
5.XSD(XML Schema Definition):XSD是W3C推荐的XML架构语言,它是XML Schema的一种具体实现,用于定义XML文档的结构、数据类型和约束等。XSD是目前应用最广泛的XML架构语言之一。
6.RNG(Relax NG Compact Syntax):RNG是RELAX NG的一种简化语法,它使用更为紧凑的语法来定义XML文档的结构和约束,比XML Schema更易于书写和阅读。

3.xsl介绍

注意:XSL(eXtensible Stylesheet Language)并不是XML架构语言。XSL是一种用于定义和转换XML文档的样式表语言。它包括两个部分:XSLT(XSL Transformations)和XPath(XML Path Language)。

XSLT是一种基于模板匹配和转换规则的编程语言,用于将XML文档转换为其他格式(如HTML、PDF等)或进行XML文档的重组和重排。它通过定义模板和规则来指定XML文档的转换过程。

XPath是一种用于在XML文档中定位和选择节点的语言。它提供了一组简洁而强大的语法和函数,用于在XML文档中进行节点的导航和查询。

虽然XSL可以用于处理和转换XML文档,但它并不用于定义XML文档的结构和约束。XML架构语言(如DTD、XML Schema等)用于描述XML文档的结构,而XSL用于处理和转换已有的XML文档。