원본 본문으로 이동하기

CDATA?

쿠에 - HTML5는 Script안에서 CDATA 안써도 되나요? XHTML은 XML이 포함된 언어라 썼는데 HTML5는 조금 느슨하게 해도 되는건가요; - XML/XSL/XSLT HTML 자바스크립트Script안에서 라는 질문을 잘 이해 못하겠습니다. 그냥 자바스크립트 내부에서 사용한다고 하면 텍스트로 xml이나 html 쓰는건 좋은 습관이 아닙니다. [강조][크기 20]마크업 언어에서 html / xml / xhtml 에서 <![CDATA[ ]]> 에 대해서 설명드리자면.[/크기][/강조] [강조]1. xml 에서는 <![CDATA[ ]]> 이 표준적인 방법입니다.[/강조] [강조]2. xhtml 에서도 마찬가지로 표준적인 방법입니다.[/강조] - https://validator.w3.org/#validate_by_input 이동 - 옵션 XHTML 1.0 설정. [코드] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>title</title> </head> <body> <div><![CDATA[가나다라]]></div> </body> </html> [/코드] - 검사 하시면 표준통과라고 나올겁니다. [강조]3. html5에선 표준적인 방법이 아닙니다.[/강조] - 검사를 해보신다면 Bogus comment 라는 오류가 납니다. [코드] <!DOCTYPE html> <html> <head> <title>title</title> </head> <body> <div><![CDATA[가나다라]]></div> </body> </html> [/코드] [크기 20][강조]결론[/강조][/크기] - xml / xhtml 에서는 표준적인 방법. - html5에서는 표준적인 방법이 아닙니다. [크기 20][강조]기타 - 잡지식[/강조][/크기] - xhtml 은 Extensible Hypertext Markup Language 의 약자입니다. - xhtml 은 html의 <br> <meta> 같이 태그를 제대로 닫지 않는 느슨한 설정을 허용하지 않고 xml리더로 읽을 수 있게 규칙성을 중시하였습니다. - 즉 xhtml은 xml과 호환이 됩니다. 때문에 CDATA 등을 사용할 수 있습니다. - xhtml 2.0 이 나왔지만 html5 이후로 사실상... 사장되었습니다. - 현재는 html5로 만들고 xml에서 읽게하고싶다면 <br/> 같이 닫는태그를 확실히 하는 방향으로 프로그래밍 하시면 됩니다. 쿠에 제가 질문을 애매하게 했습니다. 죄송합니다. 일단 커리큘럼상으로 말씀드리면 초보입장에서 생각해야합니다. HTML과 CSS를 배우고 자바스크립트(JS)를 배웁니다. 하지만 막 분석해서 자세히 들어가는 원리 보다 결과를 놓고 보는 예제만 다룹니다. 그래서 통으로 구조만 외워버립니다. (사실상 우리나라 교육현실이랄까요;) 제가 말한 script는 HTML<head>나 <body> 안에 <script type="text/javascript"> //<![CDATA[ HTML태그들이 문자열 연산에 포함되는 등 HTML에서 쓰는 태그들도 작성됩니다. //]]> </script> 이러한 형식 입니다. 예전에는 브라우저가 인식을 못하고 스크립트 부분의 HTML코드를 그냥 읽어서 표시하는 경우가 있다 그래서 HTML주석인 <!-- -->으로 스크립트를 감싸 HTML해석기에서 못 읽도록 하였는데 XHTML이 나오고 웹표준이란 말이 나오고 여러 규칙들을 지키다가 XML에서 쓰이는 PCDATA의 반대인 CDATA를 쓰는 것 까지만 알고 있습니다. 왜 쓰는지 모르고 처음에는 그냥 썼는데 지금 자세하게 찾아보고 있다가 HTML5나오면서 XHTML의 웹표준과 얼마나 다른지 궁금해서 쓴 글 입니다. 네이버도 <!DOCTYPE html>로 HTML5로 선언해놓고 <script>태그(보통 자바스크립트) 안에 CDATA로 써놔서 굳이 저걸 써야 되나 궁금했던겁니다. 아무튼 ! 위 댓글로 많이 도움이 되었습니다! ^^ 박용서 아하.... 말씀하신대로... 아주 멋 옛날엔.. 아래와 같이 처리했습니다. [코드] <script type="text/javascript"> <!-- // 이곳에 소스를 --> </script> [/코드] 저렇게 처리한 이유는 자바스크립트를 지원하지 않는 구 브라우저에서 <script>를 <div>같은 일종의 태그로 인식하여 소스코드가 유저에게 노출되지 않게 하기 위함입니다.. 즉.... 엄청나게 오래전에 쓰던방법입니다. 오늘날 브라우저에선 자바스크립트를 지원하지 않는다거나, script 태그 내에 있는 태그를 닫는 태그로 인식해서... html 파서오류를 일으키진 않습니다.. 거기다가 실무에선 저렇게 쓰는 것 보단 아래와 같이 불러쓰니 더욱 의미가 없습니다.[코드] <script type="text/javascript" src="경로" charset="utf-8"></script> [/코드] [강조][크기 20]결론[/크기][/강조] - 현재 전혀 의미가 없습니다. - 한 10여년도 더 전에 사라지기 시작한 방법입니다.웹페이지의 소스를 가끔 보다 있다면 유물이 아직까지 쓰이고 있군요; 박용서 예, 거의... 2000년대 초반 이후로는 쓰지 않는 방법입니다.