programing

HTML에서 CDATA란 무엇입니까?

i4 2023. 7. 25. 20:26
반응형

HTML에서 CDATA란 무엇입니까?

자바스크립트 태그와 HTML 내부의 CDATA는 어떤 용도로 사용됩니까?

<script type="text/javascript"> 
// <![CDATA[

// ]]>
</script> 

XML 문서의 모든 텍스트는 파서에 의해 구문 분석됩니다.

그러나 CDATA 섹션 내의 텍스트는 파서에 의해 무시됩니다.

CDATA - (해석되지 않은) 문자 데이터

CDATA라는 용어는 XML 파서에서 구문 분석하면 안 되는 텍스트 데이터에 대해 사용됩니다.

"<" 및 "&"과 같은 문자는 XML 요소에서 사용할 수 없습니다.

"<"은 파서가 새 요소의 시작으로 해석하기 때문에 오류를 생성합니다.

파서가 문자 엔터티의 시작으로 해석하기 때문에 오류가 발생합니다.

JavaScript 코드와 같은 일부 텍스트에는 "<" 또는 "&" 문자가 많이 포함되어 있습니다.오류를 방지하기 위해 스크립트 코드를 CDATA로 정의할 수 있습니다.

CDATA 섹션 내의 모든 내용은 파서에 의해 무시됩니다.

CDATA 섹션은 "로 시작합니다.<![CDATA[그리고 "로 끝납니다.]]>"

프로그램 출력에 CDATA 사용

XHTML 문서의 CDATA 섹션은 HTML로 문서를 렌더링할 경우 웹 브라우저에 의해 다르게 구문 분석될 수 있습니다. HTML 파서는 CDATA 시작 및 종료 마커를 인식하지 않으며 다음과 같은 HTML 엔티티 참조를 인식하지 않기 때문입니다.&lt;이내에<script>이로 인해 웹 브라우저에서 렌더링 문제가 발생할 수 있으며 신뢰할 수 없는 소스의 데이터를 표시하는 데 사용될 경우 CDATA 섹션의 끝 부분에 대해 두 가지 유형의 파서가 일치하지 않기 때문에 사이트 간 스크립팅 취약성이 발생할 수 있습니다.

간단한 SGML 튜토리얼.

또한 CDATA의 Wikipedia 항목을 참조하십시오.

CDATAHTML에는 전혀 의미가 없습니다.

CDATA는 일반적으로 #PCDATA 구문 분석된 문자 데이터인 태그의 내용을 #CDATA, 즉 구문 분석되지 않은 문자 데이터로 설정하는 XML 구조입니다.이는 XHTML에서만 관련성이 있고 유효합니다.

에서 사용됩니다.script구문 분석을 방지하기 위한 태그<그리고.&HTML에서는 이것이 필요하지 않습니다. 왜냐하면 HTML에서는script이미 #CDATA입니다.

http://en.wikipedia.org/wiki/CDATA 에서:

웹 페이지 스크립트에서 기호(<)와 앰퍼샌드(&)보다 작은 크기의 기호(<)와 앰퍼샌드(&)를 사용할 수 있고, 이를 피할 필요 없이 덜 범위의 스타일을 사용할 수 있는 것이 유용하기 때문에, 일반적으로 XHTML 문서에서 인라인 및 요소 텍스트 주위에 CDATA 마커를 사용합니다.그러나 CDATA 마커를 인식하지 않는 HTML 파서에서도 문서를 구문 분석할 수 있도록 다음 JavaScript 예제에서와 같이 CDATA 마커는 일반적으로 주석 처리됩니다.

<script type="text/javascript">
//<![CDATA[
document.write("<");
//]]>
</script>

CDATA는 사용되지 않습니다.

CDATA 섹션은 HTML 내에서 사용할 수 없으며 XML에서만 작동합니다.

따라서 HTML 5에서는 사용하지 마십시오.

https://developer.mozilla.org/en-US/docs/Web/API/CDATASection#Specifications

Screenshot from MDN

HTML 및 XHTML의 공통 서브셋 작성 방법

더 큰 휴대성을 기대하며.

HTML에서,<script>마법은 모든 것을 탈출합니다.</script>나타납니다.

따라서 다음과 같이 쓸 수 있습니다.

<script>x = '<br/>';

그리고.<br/>태그로 간주되지 않습니다.

이러한 이유로 다음과 같은 문자열이 사용됩니다.

x = '</scripts>'

다음과 같이 이스케이프해야 합니다.

x = '</scri' + 'pts>'

참고: 문서로 작성할 때 <script> 태그를 분할하는 이유.()라고 쓰십니까?

그러나 XML(HTML과 달리 XML의 "부분 집합"인 XHTML)에는 이러한 마법이 없습니다.<br/>꼬리표로 보일 겁니다

<![CDATA[과 같이 HTML은 다음과 같이 말합니다.

다 번 지 구 분 석 안 까지 태그를 하지 않습니다]]>합니다.

//HTML에서도 CDATA가 잘 작동하도록 하기 위해 추가되었습니다.

에서 서<![CDATA[마법이 아니기 때문에 자바스크립트로 실행될 것입니다.//댓글을 달 때 사용합니다.

XHTML을 .//그러나 문제가 되지 않는 빈 주석 행으로 관찰합니다.

//

다음과 같습니다.

  • 를 초기 호환가doctype 서또HTML .<!DOCTYPE html><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  • 되는 웹 브라우저에 할 수 , 을 하나의 ▁a▁valid▁single▁do▁compliant▁couldctyinate,▁with▁rely다있니습pe▁websites▁browsers호수환▁coord▁and할▁compliant정조▁on과유형서로 조정할 수 있습니다.script

하지만 이는 인터넷의 황금률을 위반하는 것입니다.

타사를 신뢰하지 마십시오. 그렇지 않으면 제품이 손상됩니다.

CDATA는 문서 문자 집합의 일련의 문자이며 문자 엔티티를 포함할 수 있습니다.사용자 에이전트는 다음과 같이 속성 값을 해석해야 합니다.

  • 문자 엔티티를 문자로 바꿉니다.

  • 라인 피드 무시,

  • 각 캐리지 리턴 또는 탭을 단일 공간으로 바꿉니다.

언급URL : https://stackoverflow.com/questions/7092236/what-is-cdata-in-html

반응형