我如何表示'<'我的XML文档中的字符?

时间:2010-06-29 10:04:59

标签: c++ special-characters xml-documentation

我在这里看到了涉及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.

除了使用&lt;之外还有什么方法可以解决这个问题吗?如果您直接读取源代码而不是DOxygen输出(例如),那么使示例更难以理解? ..或&lt;代码是唯一的选择吗?

[编辑] 我已经尝试了建议的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 '<'

1 个答案:

答案 0 :(得分:4)

使用CDATA块。