内容

XDoc 格式

概述

'xdoc' 是符合一组小而简单的标签的 XML 文档。Xdoc 是Maven 1中的主要文档格式,Maven 2 在很大程度上用Apt取代了它,但仍然支持 xdoc。

从历史上看,xdoc 格式可以追溯到 Anakia格式,曾经被 Apache Jakarta项目使用,然后转移到Velocity

Maven 1 Xdoc 插件为 Anakia 格式引入了一些附加功能,它们在 插件文档中突出显示。

XDoc xsd

完整的文档可在此处获得。

XDoc 示例

以下是一个示例 XDoc 文档:

<?xml version="1.0" encoding="UTF-8"?>
<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">

  <properties>
    <title>Page Title</title>
    <author email="user@company.com">John Doe</author>
  </properties>

  <!-- Optional HEAD element, which is copied as is into the XHTML <head> element -->
  <head>
    <meta ... />
  </head>

  <body>

    <!-- The body of the document contains a number of sections -->
    <section name="section 1">

      <!-- Within sections, any XHTML can be used -->
      <p>Hi!</p>

      <!-- in addition to XHTML, any number of subsections can be within a section -->
      <subsection name="subsection 1">
        <p>Subsection!</p>
      </subsection>

    </section>

    <section name="other section">

      <!-- You can also include preformatted source blocks in the document -->
      <source>
code line 1
code line 2
      </source>

    </section>

  </body>

</document>

<source> 标签

<source>标签是特殊的。此标记中的任何内容都在“逐字框”中呈现为预先格式化的文本。如果要在源标记中嵌入其他 XML/XHTML 标记,则需要在源部分中放置一个 CDATA 部分。例子:

<source><![CDATA[ content here <a href="">foo</a>]]></source>

附加切片

Doxia 将分别生成<h2><h3>指向<section><subsection>元素。因此,将一些小标题(<h4>, <h5>, <h6>)放在一个小节中是完全有效的。例如,

<h4>A subsubsection</h4>

将产生:

一个小节

参考章节和小节

核心 doxia 模块不会从节/小节名称构造锚点。如果你想引用一个部分,你应该提供一个明确的锚点:

<a name="Section1"/>
<section name="Section">

  <a name="SubSection1"/>
  <subsection name="SubSection">
  </subsection>

</section>

或使用idsection 和 subsections 的属性(注意id' 在一个 xdoc 源文档中必须是唯一的):

<section name="Section" id="Section1">

  <subsection name="SubSection" id="SubSection1">
  </subsection>

</section>

请注意,这与以前的行为不同,其中锚点是从节/子节名称构造的,用下划线替换特殊字符。这种行为有两个缺点:

  • 如果两个部分或子部分具有相同的名称(在一个源文档中),则在引用它们时会产生歧义。生成的 html 文档也不是有效的 XHTML。对于其他输出格式(例如 pdf),甚至可能无法生成目标文档。
  • 对于长节标题,这会导致相当麻烦的锚名称。

如果特定输出格式需要自动生成锚点,则应由相应的低级接收器实现/覆盖。

验证

Doxia 能够按照 此处所述验证您的 xdoc 文件。

以下是需要注意的常见错误列表:

不要嵌套块级元素

错误的:

<p>
  Here's a list:
  <ul>
    <li>item 1</li>
    <li>item 2</li>
  </ul>
  of things to do.
</p>

正确的:

<p>
  Here's a list:
</p>
<ul>
  <li>item 1</li>
  <li>item 2</li>
</ul>
<p>
  of things to do.
</p>

典型的 块级元素是列表 元素<table>、、、、<source>和 。 <div><p><pre>

将内联元素放在块级元素中

错误的:

<section name="Downloads">
  <a href="downloads.html">Downloads</a>
</section>

正确的:

<section name="Downloads">
  <p>
    <a href="downloads.html">Downloads</a>
  </p>
</section>

典型的内 联元素是 <a><strong><code><font>和 。 <br><img>

<properties> 中元素的正确顺序

<title>元素必须在 前面<author>

不要将 <source> 放在段落中

错误的:

<p>
  The following command executes the program:
  <source>java -jar CoolApp.jar</source>
</p>

正确的:

<p>
  The following command executes the program:
</p>
<source>java -jar CoolApp.jar</source>

但是,您可以将<source>元素放在列表项或表格行中。