27

不幸的是,HTML 中没有 CDATA。

这是一个遗憾,因为它非常适合添加javadoc包含 XML 的注释,因此您不必转义 < 和 >,例如:

/**<![CDATA[ This parses <complexType name=""> ]]>*/

但是,可以javadoc识别 CDATA 部分,并将其转换为 HTML。例如:

This parses &lt;complexType name=""&gt;

或者它可以使用比 CDATA 更​​简单的语法。因为javadoc是可扩展的,所以可能有人添加了这个功能;或者可能javadoc已经埋在里面的某个地方......有人知道吗?

4

4 回答 4

46

您可以使用 JavaDoc 的@code标签:/** This parses {@code <complexType name="">} */

于 2009-11-23T09:41:46.920 回答
33

扩展@Fabian 的答案,我同时使用<pre>{@code ...}。这里以 XML 作为源代码的示例:

/*Outputs data from a result set to an XML
 * with following structure:
 * <pre>
 * {@code
 * <row>
 *  <FIELD1>gregh</FIELD1>
 *  <FIELD2>487</FIELD2>
 *  <!-- etc. -->
 * </row>
 * <!-- more rows-->
 * }
 * </pre>
 */

<pre>允许您在多行上编写代码并保留其结构。

用 Eclipse 3.6.1 测试。

于 2011-12-28T10:57:04.117 回答
8

尽管存在错误 206319错误 206345并且不使用完整的 HTML 转义,但关闭并重新打开{@code}大括号周围的标记以使 ${dollar_sign_variables} 在 eclipse 中正确呈现:

/*
 * <pre>
 * {@code
 * <outer>
 *   <inner1>Text</inner1>
 *   <inner2>$}{ "script" }{@code </inner2>
 * </outer>
 * }
 * </pre>
 */

在 Eclipse Indigo SR2 (3.7.2) 中呈现为

<outer>
  <inner1>Text</inner1>
  <inner2>${ "script" }</inner2>
</outer>
于 2012-09-26T14:06:32.377 回答
3

我尝试了很多解决方案,但没有一个能满足我的需求。执行 pre + @code(或@literal)标签通常会起作用:

 <pre>
 {@literal
 <configFiles>
   <configFile>
     <type>LOGICAL_INDEX_CONFIG</type>
   </configFile>
 </configFiles>}
 </pre>

问题是,如果你的 html 中有 ${dollar_sign_variables} 怎么办?(如果您的文档使用依赖于 Maven 过滤的 xml 示例,这很常见)。假设你有 ${ITEM_INDEX_TO_LOGICAL},Eclipse 会像这样渲染它:

<configFiles>
  <configFile>
     ITEM_INDEX_TO_LOGICAL

   }

最终,我别无选择,只能坚持使用 html-escaping 方法(你可以使用这个)来让它正确渲染:

这:

 &lt;configFiles&gt;
   &lt;configFile&gt;
     &lt;type&gt;${ITEM_INDEX_TO_LOGICAL}&lt;/type&gt;
   &lt;/configFile&gt;
 &lt;/configFiles&gt;

像这样渲染:

 </configFiles>
   <configFile>
     <type>${ITEM_INDEX_TO_LOGICAL}</type>
   </configFile>
 </configFiles>

不幸的是,这将使您无法真正理解正在记录的“示例 xml”,除非您呈现 Javadoc。幸运的是,eclipse 可以即时为您执行此操作...

于 2012-06-06T07:49:44.357 回答