Javadoc是否等同于<! - [CDATA [...]] - >?

时间:2009-11-23 09:33:14

标签: java html xml javadoc cdata

不幸的是,HTML中没有CDATA。

这很遗憾,因为它非常适合添加包含XML的javadoc条评论,因此您无需转义&lt;和&gt ;,例如:

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

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

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

或者它可以使用比CDATA更简单的语法。因为javadoc是可扩展的,所以可能有人添加了此功能;或者javadoc已将它埋在某处...有人知道吗?

4 个答案:

答案 0 :(得分:45)

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

答案 1 :(得分:33)

扩展@Fabian's answer,我同时使用<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进行测试。

答案 2 :(得分:7)

关闭并重新打开大括号周围的{@code}标记,以获得$ {dollar_sign_variables},以便在eclipse中正确呈现bug 206319bug 206345并且无需借助完整的HTML转义:

/*
 * <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>

答案 3 :(得分: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方法(你可以使用this one)来让它在属性上呈现:

此:

 &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>

遗憾的是,除非您渲染Javadoc,否则您将无法理解正在记录的“示例xml”。幸运的是,eclipse可以为你做到这一点......