CDATA는 SGML이나 XML에서 문자열(string)을 표현할 때 사용하는 토큰입니다. 저 안에 들어있는 내용은 문자열데이터라는 뜻이지요. 저안에 들어가 있는 태그는 무시해도 되는 태그라는 것을 파서에게 알려주므로 오동작이나 오류를 막을 수 있습니다.

쉬운 예는 RSS 파일을 열어보시면 (아, 일부 국내 tool들이 만들어내는 거지발싸개같은 RSS들 말구요...), RSS 데이터에 html이나 xml 태그가 포함된 내용을 RSS용 XML 태그와 헷갈리지 않도록 CDATA로 싸여있음을 볼 수 있습니다.

 

 

nowhere0 wrote:

쉬운 예는 RSS 파일을 열어보시면 (아, 일부 국내 tool들이 만들어내는 거지발싸개같은 RSS들 말구요...), RSS 데이터에 html이나 xml 태그가 포함된 내용을 RSS용 XML 태그와 헷갈리지 않도록 CDATA로 싸여있음을 볼 수 있습니다.

하지만 저는 그렇게 하지 않는데, 왜냐하면 내용 중에 [mono]]]>[/mono]가 포함되어 있다면 큰일이기 때문입니다. 그래서 일부러 모든 문자열을 엔티티로 바꿉니다(PHP라면 [mono]htmlspecialchars()[/mono]).

저는 HTML 안에서 JavaScript 코드나 CSS 사용할 때 CDATA 섹션을 사용합니다.

<script type="text/javascript"> // <![CDATA[
script_code;
// ]]>
</script>
<style type="text/css"> /* <![CDATA[ */
css_code {}
/* ]]> */</style>

+ Recent posts