programing tip

HTML에서 CDATA 란 무엇입니까?

itbloger 2020. 6. 1. 19:06
반응형

HTML에서 CDATA 란 무엇입니까? [복제]


이 질문에는 이미 답변이 있습니다.

JavaScript 태그 및 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 튜토리얼 .

또한 CDATAWikipedia 항목을 참조하십시오 .


CDATA HTML에서는 전혀 의미가 없습니다.

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

에 사용되는 script구문 분석을 방지하기 위해 태그 <&. HTML에서는 script이미 #CDATA 이므로 HTML에서는 필요하지 않습니다 .


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

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

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

이식성을 높이기 위해 HTML과 XHTML의 공통 부분 집합을 작성하는 방법 .

HTML에서 <script>마술은 </script>나타날 때까지 모든 것을 이스케이프 합니다.

그래서 당신은 쓸 수 있습니다 :

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

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

이것이 다음과 같은 문자열입니다.

x = '</scripts>'

다음과 같이 탈출해야합니다 :

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

<script> 태그를 document.write ()로 쓸 때 왜 분할합니까?를 참조하십시오.

그러나 XML (및 HTML과 달리 XML의 "하위 집합"인 XHTML )에는 그러한 마법이 없습니다 <br/>. 태그로 볼 수 있습니다.

<![CDATA[ 말하는 XHTML 방법입니다.

다음까지 태그를 구문 분석하지 마십시오. ]]>모든 문자열을 고려하십시오.

//물론 HTML에서뿐만 아니라 CDATA 작업을 만들기 위해 추가됩니다.

HTML에서는 <![CDATA[마술이 아니므로 JavaScript로 실행됩니다. 따라서 //주석 처리하는 데 사용됩니다.

XHTML은 또한을 보지만 //문제가 아닌 빈 주석 줄로 간주합니다.

//

그것은 말했다 :

  • 문서가 초기 문서 타입에서 HTML 또는 XHTML 경우 호환 브라우저가 인식해야 <!DOCTYPE html><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  • compliant websites could rely on compliant browsers, and coordinate doctype with a single valid script syntax

But that violates the golden rule of the Internet:

don't trust third parties, or your product will break


CDATA is Obsolete.

Note that CDATA sections should not be used within HTML; they only work in XML.

So do not use it in HTML 5.

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

Screenshot from MDN


CDATA is a sequence of characters from the document character set and may include character entities. User agents should interpret attribute values as follows: Replace character entities with characters,

Ignore line feeds,

Replace each carriage return or tab with a single space.

참고URL : https://stackoverflow.com/questions/7092236/what-is-cdata-in-html

반응형