2010-06-29 5 views
0

나는 SO Microsoft's XML documentation tags 관련된 여기에 다양한 질문을 본 적이 있지만 나는 몇 가지 예제 코드를 추가하는 데 문제 : XML 문서에서 '<'문자를 나타내는 방법은 무엇입니까?

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. 

가 있습니까이 다른 주위에 어떤 방법 :

/// <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(); 

이 나를 제공을 &lt;을 사용하는 것보다 DOxygen 출력 (예를 들어)과 직접적으로 소스를 읽는 것이 훨씬 더 어려워집니다. .. 아니면 &lt; 코드가 유일한 옵션입니까?

내가 제안 CDATA 블록을 시도했지만 단지 하나의 선을 위해 일 것으로 보인다 [편집]:

실제로 읽을 수 있도록 수도 있습니다 ..하지만하지 멀티 라인 주석
/// <example><![CDATA[ test < 5; ]]></example> 
/// <example> 
/// <![CDATA[ test < 5; ]]> 
/// </example> 

예 :

/// <example><![CDATA[ 
/// test < 5; 
/// ]]> </example> 

[Edit2가] 예상 못한 마지막 두 문장 앞에서 \\의 제거 시도 pierrre의 제안 :

/// <example><![CDATA[ 
test < 5; 
]]> </example> 

을 제공합니다

error C2143: syntax error : missing ';' before '<' 
+2

XML이 문서 마크 업에 잘못된 형식 인 여러 가지 이유 중 하나입니다. :-) Javadoc도 비슷한 문제가있다. 잘못하지는 마라. HTML이 XML보다 관대하기 때문에 약간 덜 복잡하다.) 그리고 나는 * 대답은 "no, 사용해야한다. < "하지만이 분야의 전문가는 아니므로 내 말을 듣지 마십시오 (그러므로 * 대답하지 않음). –

답변

4

은 CDATA 블록을 사용합니다.

+0

시도해 보았지만 한 줄로만 작동하는 것으로 보입니까? 방금 한 편집을보십시오. –

+0

CDATA 블록에서는 많은 것을 추가 할 수 있으며 한 줄로 묶지 않습니다. 테스트 앞에서 ///를 제거하십시오. <5 및 /// 앞에서]]> –

+0

작동하지 않으면 오류를 복사하거나 붙여 넣으십시오. –