DocFlex/Javadoc:多格式 Doclet 和快速 Doclet 开发工具
April 23, 2012
DocFlex/Javadoc 既是多格式Javadoc Doclet,也是基于Javadoc的基于 Java API 文档生成器的编程工具,其输出格式多种多样,其质量和复杂性等于或超过标准 Javadoc。
内容
主要特点
- -
- DocFlex Doclet + 模板集
实际的文档生成器是以 DocFlex Doclet 解释的特殊 模板 的形式创建的,它是包装在 [Javadoc Doclet](http ://docs.oracle.com/javase/6/docs/technotes/guides/javadoc/doclet/overview.html)。 另见:关于DocFlex
- 模板设计器 高质量图形模板设计器以类似于它们生成的输出的视觉形式表示模板。同时,它允许对非常复杂的处理的编程输入数据和生成输出的格式——迄今为止只能通过直接 Java 编码来开发的功能! 以下截图是JavadocPro |在模板设计器中打开 class.tpl 模板(点击查看全尺寸):

文档 API 作为虚拟 XML 文档
整个Doclet API以虚拟 XML 文档的形式表示,称为**Doclet DSM(**此处"DSM"代表"数据源模型"),模板的设计和处理基于此。这允许使用围绕Javadoc的XML开发的一些技术。
大部分数据挖掘和检索是基于位置路径/位置规则,这是**XPath的开发扩展。这辅之以专门改编的哈希地图(称为元素地图**),它服务于索引的作用。
抽象格式化概念
模板是根据特定的输出格式独立设计的。使用模板组件的特性,以某种通用的方式指定所有格式。在生成过程中,使用选定的输出格式提供的相应功能进行渲染。
它还支持渲染嵌入式 HTML,这意味着以非 HTML 输出格式(如 RTF)解释嵌入在文本数据中的 HTML 标签(例如文档注释)。几乎所有在 doc 评论中实际可用的 HTML 标签都得到支持。
超文本
- 生成跨参考超链接,将整个文档连接起来。超链接以非常抽象的方式使用特殊链接/目标键以模板定义。
- 生成任何外部网环的超链接。例如,这允许将生成的 JavaDoc 链接到任何其他由 javadoc 生成的外部参考类文档。
可以以支持它们的所有输出格式生成超链接(此当前包括 HTML 和 RTF)。在 RTF 中,交叉引用链接也可以以页码引用的形式表示,这实际上使它们即使在打印文档中也能使用。
输出格式
-
**HTML(**帧式多文件和单文件 HTML 输出)
-
Rtf (版本 1.6 – 自 2000 年 Word 以来一直支持; 可以进一步转换为 Pdf)
**TXT(**纯文本)
它可能特别有用于使用[Doclet API](http://docs.oracle.com/javase/6/docs/jdk/api/javadoc/doclet/)提供的 Java 代码信息(例如,通过它生成 XML 文件,或将 SQL 文件导入数据库)。
-
集成
作为一个Javadoc Doclet (这是一个特殊的插件为 Javadoc), DocFlex Doclet可以集成到可能运行Javadoc本身的任何。我们已制定并测试了与以下系统的集成:
样本蚂蚁构建文件和马文 POM 文件包含在分布式软件存档中。
JavadocPro模板集
自版本 1.6.0 以来,DocFlex/Javadoc 提供了一套新的"JavadocPro"模板集。使用它,您可以生成:
**框架 HTML JavaDoc 与经典图相同**(单击屏幕截图以查看演示 HTML JavaDoc):

-
**具有基本内容的单文件 HTML JavaDoc(**项目概述、包摘要、类详细信息):

-
新重新设计的**RTF JavaDoc(**单击屏幕截图以查看全尺寸):

RTF 可以进一步转换为 PDF。

**完整版**(或"DocFlex/Javadoc",因为它是)包括本软件中提供的所有功能:
1. [模板设计师](https://www.codeguru.com/java/docflex-javadoc-multi-format-doclet-rapid-doclet-development-tool/#template_designer)- 提供设计/修改模板的 GUI。
2. [DocFlex Doclet](https://www.codeguru.com/java/docflex-javadoc-multi-format-doclet-rapid-doclet-development-tool/#docflex_doclet) + 模板翻译 / 输出发生器包裹在[爪哇多克医生](http://docs.oracle.com/javase/6/docs/technotes/guides/javadoc/doclet/overview.html)的形式。
3. [JavadocPro 模板集](https://www.codeguru.com/java/docflex-javadoc-multi-format-doclet-rapid-doclet-development-tool/#JavadocPro)- 新的高级模板集能够生成经典的 HTML JavaDoc 以及重新设计的 RTF 文档,并有可能通过标签/注释排除类/成员。
4. 基本模板集 - 标准模板集的早期版本。
所有内容均包含相同的"DocFlex/Javadoc"许可证,该许可证可解锁所有已实现的功能。
-
**文多福/医生**是DocFlex/Javadoc的**免费版**。它不包括[模板设计器](https://www.codeguru.com/java/docflex-javadoc-multi-format-doclet-rapid-doclet-development-tool/#template_designer)(即不能创建/修改任何模板)。它包括:
1. [医生医生](https://www.codeguru.com/java/docflex-javadoc-multi-format-doclet-rapid-doclet-development-tool/#docflex_doclet)
2. [爪哇多克Pro模板集](https://www.codeguru.com/java/docflex-javadoc-multi-format-doclet-rapid-doclet-development-tool/#JavadocPro)
3. 基本模板集
"文单/文单"由**免费许可证**涵盖。这意味着一旦下载,您可以立即使用它。无需注册!您用它生成的输出 (JavaDoc) 是免费的,适合任何使用。
[贾瓦多克普罗](https://www.codeguru.com/java/docflex-javadoc-multi-format-doclet-rapid-doclet-development-tool/#JavadocPro)将在有限模式下工作。但是,这足以生成与标准 Javadoc 相同的功能的全[框架 HTML JavaDoc。](https://www.codeguru.com/java/docflex-javadoc-multi-format-doclet-rapid-doclet-development-tool/#JavadocPro.output.html.framed)
*如果您不是 Java 7 中引入[的新 JavaDoc 设计的](http://docs.oracle.com/javase/7/docs/api/index.html)超级粉丝,您也可以使用[JavadocPro](https://www.codeguru.com/java/docflex-javadoc-multi-format-doclet-rapid-doclet-development-tool/#JavadocPro)模板在 Java 7 下生成外观经典的 JavaDoc。那是免费的!*
DocFlex/Javadoc的好处
-
生成经典 JavaDoc,可以通过标签/注释排除任何类别和成员。
标准的 Javadoc 不支持这一点, 也不太可能支持它。这是因为这样的功能几乎是有争议的:
- 这是相当困难的实施。为了使生成的文档保持一致,必须不仅删除排除的类,还需要更改所有内容,就好像这些类根本不存在一样。例如,某些被排除在外的类别的公众成员可能仍需要出现在文档中。但在这种情况下,他们必须显示,如果他们被定义在其他类别,实际上继承他们。
- 它与阶级/成员能见度的本质相矛盾。根据规范方法,您不应直接从实施中获取公共 API,而应首先以一些抽象界面的形式定义整个 API,然后单独维护实际实施。
当然,现实生活并不总是遵循一些规范的方案!
-
一代优秀的质量RTF爪哇球菌。
你几乎找不到任何其他工具能够产生这样一个复杂的RTF!
-
自定义 Java API 文档的无限可能性。
由于生成的所有文档输出完全以模板编程(可对任何更改开放),现在您可以:
- 将所有 JavaDoc 文本标签翻译成任何其他语言。
- 更改字体、颜色和其他外观 - 爪哇球的感觉。
- 为 JavaDoc 中包含的内容添加更多筛选条件。
- 添加一些特殊内容的部分(在经典的 JavaDoc 中找不到)。
-
程序一个完全不同的 JavaDoc 生成器 / 利用您的 Java 项目信息为任何其他。
最终,您可以使用纯文本输出对完全不同的 JavaDoc 生成器进行编程,甚至以不同的格式(尤其是基于 XML 的 DITA)进行编程。DocFlex/Javadoc 还可以帮助您检索有关您的 Java 项目的任何信息(如果仅由Doclet API提供),以便将其用于其他目的,而不仅仅是作为文档。
关于DocFlex
DocFlex 是一种技术,用于从各种软件应用程序通过其标准 Java API 提供的任何类型的数据中开发高质量模板驱动文档/报告生成器。
关键概念
它基于四个概括:
-
将整个 Java API映射到由某些元素和属性组成的虚拟 XML 样表示形式上,以便使用从 XML 领域借用的技术(如 XPath)(或者更确切地说,XPath 的概念模拟,其中不存在某些扩展)以通用方式处理它。
-
基于四个布局(文本流、段落流或段落状对象、表格和列表)的抽象格式概念,这些布局可以以大多数现代文档格式(例如.HTML、RTF、XSL-FO 等)呈现)
-
通过匹配从被记录的对象(实体)的某些自然属性生成的键集(或其页码参考等价物)自动生成超链接(或其页码参考等价物)。
-
输出发生器的整个对象控制结构(基于前三个原理)的表示形式称为模板的特殊纯文本文件,该文件可以使用图形模板设计器创建和编辑,该设计器可视化所有控制对象(现在成为模板组件),其形式类似于其产生的输出。
由于模板本身不是真正的计算机程序,有些东西需要它们来解释。这就是所谓的模板翻译/输出发生器。
其他应用程序
多克反射/爪哇多克并不是文多灵活技术的唯一应用。目前,还有其他几个:
文克弗莱克斯/XML
XML 文件中存储的任何数据的模板驱动文档/报告生成器。更确切地说,它是一个开发工具 (SDK) 和运行时间环境 (RE) 为此类发电机, 与 DocFlex/Javadoc 是[爪哇多克文张](http://docs.oracle.com/javase/6/docs/technotes/guides/javadoc/doclet/overview.html)相同.
文多flex/XML 主页[:http://www.filigris.com/products/docflex_xml/](http://www.filigris.com/products/docflex_xml/)
-
文多灵活/XSD
[W3C XML 架构 (XSD](http://www.w3.org/XML/Schema)文件) 的模板驱动文档生成器 - 可能是世界上最好的!事实上,这只不过是以下三件事:
1. [文克反射/XML](http://www.filigris.com/products/docflex_xml/)见上文 。
2. [DocFlex/XML XSDDoc](http://www.filigris.com/products/docflex_xml/xsddoc/) - 为 DocFlex/XML 设置的模板,用于实现高质量的 XML 架构文档生成器。
3. [DocFlex/XML XMLSpy 集成](http://www.filigris.com/products/docflex_xml/integrations/xmlspy/)- DocFlex/XML 与[阿尔托瓦 XMLSpy 的集成®。](http://www.altova.com/xmlspy/)它允许自动将 XMLSpy 生成的 XSD 图插入由 DocFlex/XML XSDDoc 生成的 XML 示意图文档中。整个事情 (DocFlex / Xml = Xsdoc = Xmlspy) 作为一个单一的文档生成器工作。*(更多的类似集成即将到来)。*
文多flex/XSD 主页[:http://www.filigris.com/products/docflex_xsd/](http://www.filigris.com/products/docflex_xsd/)
-
文多灵活/WSDL
一个类似制造的WSDL文档生成器,目前正在开发中。几个月后就要来了。其主页将在这里: http://www.filigris.com/products/docflex_wsdl/
链接
DocFlex/Javadoc 主页:http://www.filigris.com/products/docflex_javadoc/ DocFlex/Javadoc 示例:http://www.filigris.com/products/docflex_javadoc/examples/ 免费下载:http://www.filigris.com/downloads/ 本文的扩展版本可在:http://www.filigris.com/ann/docflex_javadoc_v1.6.0/ 它也可作为拉链存档(所有图像):http://www.filigris.com/ann/docflex_javadoc_v1.6.0.zip