我在这里看到了涉及Microsoft's XML documentation tags的SO的各种问题,但我在添加一些示例代码时遇到了问题:
/// <summary>Return the oldest acceptable timestamp for a data packet.</summary>
/// <example>
/// if( GetOldestValidResultTime() < lastResultTime )
/// {
/// Console::WriteLine("Results are too old");
/// }
/// </example>
/// <returns>The timestamp (the Milliseconds field from a raw result) of the oldest acceptable data item given the timestamp in the latest result in the internal buffer.</returns>
long GetOldestValidResultTime();
这给了我:
DataProcessor.h(154) : warning C4635: XML document comment applied to 'MyApp.DataProcessor.GetOldestValidResultTime': badly-formed XML: Only one top level element is allowed in an XML document.
除了使用<
之外还有什么方法可以解决这个问题吗?如果您直接读取源代码而不是DOxygen输出(例如),那么使示例更难以理解? ..或<
代码是唯一的选择吗?
[编辑] 我已经尝试了建议的CDATA块,但它似乎只适用于单行:
/// <example><![CDATA[ test < 5; ]]></example>
/// <example>
/// <![CDATA[ test < 5; ]]>
/// </example>
..但不是多行注释,这可能实际上是一个可读的例子:
/// <example><![CDATA[
/// test < 5;
/// ]]> </example>
[编辑2] 试图在最后两个可预测失败的陈述之前删除\\'s的建议:
/// <example><![CDATA[
test < 5;
]]> </example>
给出:
error C2143: syntax error : missing ';' before '<'
答案 0 :(得分:4)
使用CDATA块。