经常问的问题

  1. 如何处理 APT 标记语言中的样式?
  2. 如何导出为PDF?
  3. 是否可以创建一本书?
  4. 为什么基于 XML 的接收器不能生成格式良好的文档?
  5. Maven Doxia XSD 模式文件在哪里?
  6. 如何使用 XSD 在 Doxia XML 文件中定义字符实体?
如何处理 APT 标记语言中的样式?

APT 不支持样式。如果您需要更多控制权,则应改用 xdoc

[最佳]


如何导出为PDF?

有两个模块可用于生成 pdf 输出:一个 使用 iText框架 的iText 模块,以及一个FO模块,可以与 Apache FOP结合使用以生成 pdf。不幸的是,iText 团队已经停止了 XML 到 PDF 的功能,所以将来可能只支持 fo 模块。

对于 Maven,有一个pdf 插件可用。

[最佳]


是否可以创建一本书?

Doxia 还有一个相当简单的写书工具。它带有一个 Maven 插件,用于生成 PDF、LaTeX 文档和 Xdoc,以便直接集成到您的 Maven 站点中。Doxia Book 代码 仍然有限,但功能齐全 。

有关更多信息, 请参阅在 Doxia 中写书。

[最佳]


为什么基于 XML 的接收器不能生成格式良好的文档?

我们决定保留核心模块的漂亮打印。因此,像 Xdoc 或 XHTML 这样的基于 XML 的接收器是故意未格式化的。您始终可以在文档生成后或直接通过创建专门的最终用户接收器来执行此操作(请参阅DOXIA-255)。

[最佳]


Maven Doxia XSD 模式文件在哪里?

Doxia XSD 文件位于此处:

Xdoc XSD 2.0
https://maven.apache.org/xsd/xdoc-2.0.xsd
FML XSD 1.0.1
https://maven.apache.org/xsd/fml-1.0.1.xsd
预订 XSD 1.0
https://maven.apache.org/xsd/book-1.0.0.xsd
文档 XSD 1.0.1
https://maven.apache.org/xsd/document-1.0.1.xsd
装饰 XSD 1.0
https://maven.apache.org/xsd/decoration-1.0.0.xsd

您最喜欢的 IDE 可能支持 Xdoc 和 FML 文件的 XSD 模式。您需要指定以下内容:

<document xmlns="http://maven.apache.org/XDOC/2.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd">
  ...
</document>
<faqs xmlns="http://maven.apache.org/FML/1.0.1"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/FML/1.0.1 http://maven.apache.org/xsd/fml-1.0.1.xsd">
  ...
</faqs>
<book xmlns="http://maven.apache.org/BOOK/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/BOOK/1.0.0 http://maven.apache.org/xsd/book-1.0.0.xsd">
  ...
</book>
<document xmlns="http://maven.apache.org/DOCUMENT/1.0.1"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/DOCUMENT/1.0.1 http://maven.apache.org/xsd/document-1.0.1.xsd"
  outputName="...">
  ...
</document>
<project xmlns="http://maven.apache.org/DECORATION/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/DECORATION/1.0.0 http://maven.apache.org/xsd/decoration-1.0.0.xsd">
  ...
</project>

注意:出于性能原因,所有 XSD/DTD 都使用 ${java.io.tmpdir} 中的缓存。

[最佳]


如何使用 XSD 在 Doxia XML 文件中定义字符实体?

由于无法在 XSD(与 DTD 不同)中定义字符实体引用(如 ©),因此每个 XML 文件都应该有一个 <!DOCTYPE> 来定义字符实体集。

例如,您可以在 Xdoc XML 文件中添加以下内容,使其类似于 XHTML 1.0 Transitional dtd:

<!DOCTYPE document [
  <!-- These are the entity sets for ISO Latin 1 characters for the XHTML -->
  <!ENTITY % HTMLlat1 PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent">
  %HTMLlat1;
  <!-- These are the entity sets for special characters for the XHTML -->
  <!ENTITY % HTMLsymbol PUBLIC "-//W3C//ENTITIES Symbols for XHTML//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent">
  %HTMLsymbol;
  <!-- These are the entity sets for symbol characters for the XHTML -->
  <!ENTITY % HTMLspecial PUBLIC "-//W3C//ENTITIES Special for XHTML//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent">
  %HTMLspecial;
]>
<document xmlns="http://maven.apache.org/XDOC/2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd">
...
</document>

注意:如果使用 CDATA 指定实体,Doxia 会将 & 替换为 & (即“<![CDATA[¡]]>”变为“&iexcl;”)。

[最佳]