XML파일에서 이 이상한
CDATA` 태그를 자주 발견합니다:
<![CDATA[some stuff]]>
이 CDATA
태그는 항상 처음에 온 다음 몇 가지 내용이 뒤따르는 것을 관찰했습니다.
그러나 때로는 사용되기도 하고 그렇지 않을 때도 있습니다. '어떤 것'이 그 뒤에 삽입될 '데이터'임을 표시하기 위한 것이라고 생각합니다. 하지만 '어떤 데이터'는 어떤 종류의 데이터인가요? XML 태그에 작성하는 모든 것이 일종의 데이터 아닌가요?
CDATA은 문자 데이터를 나타내며, 이 문자열 사이의 데이터에 XML 마크업으로 해석될 수 있지만 해석되어서는 안 되는 데이터가 포함되어 있음을 의미합니다.
CDATA와 주석의 주요 차이점은 다음과 같습니다:
]]>
(CDEnd
)를 포함할 수 없지만 주석에서는 --
가 유효하지 않습니다.즉, 잘 구성된 하나의 문서에서 이 세 가지 XML 스니펫이 주어집니다:
<!ENTITY MyParamEntity "Has been expanded">
<!--
Within this comment I can use ]]>
and other reserved characters like <
&, ', and ", but %MyParamEntity; will not be expanded
(if I retrieve the text of this node it will contain
%MyParamEntity; and not "Has been expanded")
and I can't place two dashes next to each other.
-->
<![CDATA[
Within this Character Data block I can
use double dashes as much as I want (along with <, &, ', and ")
*and* %MyParamEntity; will be expanded to the text
"Has been expanded" ... however, I can't use
the CEND sequence. If I need to use CEND I must escape one of the
brackets or the greater-than sign using concatenated CDATA sections.
]]>
<description>An example of escaped CENDs</description>
<!-- This text contains a CEND ]]> -->
<!-- In this first case we put the ]] at the end of the first CDATA block
and the > in the second CDATA block -->
<data><![CDATA[This text contains a CEND ]]]]><![CDATA[>]]></data>
<!-- In this second case we put a ] at the end of the first CDATA block
and the ]> in the second CDATA block -->
<Alternative><![CDATA[This text contains a CEND ]]]><![CDATA[]>]]></alternative>
Cdata 섹션은 " 부분을 요소점 컨텐츠가 파서를 위한 것으로 해석할 수 없는 단 문자 데이터, 수정표시. ".
구조상, 셀명 비슷하게 작동합니다.
<exampleOfAComment>
<!--
Since this is a comment
I can use all sorts of reserved characters
like > < " and &
or write things like
<foo></bar>
but my document is still well-formed!
-->
</exampleOfAComment>
. 하지만 여전히 문서의 일부가:
<exampleOfACDATA>
<![CDATA[
Since this is a CDATA section
I can use all sorts of reserved characters
like > < " and &
or write things like
<foo></bar>
but my document is still well formed!
]]>
</exampleOfACDATA>
'다음' 절약합니다 시도하시겠습니까 오스트믈 로 파일 (not '.html') 를 사용하여 파이어폭스 (not 인터넷 Explorer) 를 열어 차이를 설명 및 CDATA 섹션. 이 때 나타나는 브라우저에서 문서를 쳐다보거라 셀명 won& # 39, t, 그 동안 CDATA 부분에서는:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<!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" xml:lang="en" lang="en" >
<head>
<title>CDATA Example</title>
</head>
<body>
<h2>Using a Comment</h2>
<div id="commentExample">
<!--
You won't see this in the document
and can use reserved characters like
< > & "
-->
</div>
<h2>Using a CDATA Section</h2>
<div id="cdataExample">
<![CDATA[
You will see this in the document
and can use reserved characters like
< > & "
]]>
</div>
</body>
</html>
그런 기록하십시오 함께 CDATA 단면에는 에로남이네 없는 인코딩입니다 도왔으매 there& # 39 의 방법이 없는 문자열이 ']]' 의 저들이요 >. &Gt 포함하는 모든 문자 데이터 ']],' 가 내린 것으로 알고 있다 - 수 - 텍스트 노드입니다 한다. 거짓하였으니 에서 DOM 조작, t # 39 절을 보면 너회가 can& CDATA 포함하는 만들기 ']] >,':
var myEl = xmlDoc.getElementById("cdata-wrapper");
myEl.appendChild(xmlDoc.createCDATASection("This section cannot contain ]]>"));
이 코드는 DOM 조작 인컨텍스트 예외가 (Firefox 에서) 또는 구조화된 XML 문서를 보면 됩니다.
하나의 커다란 활용: 네, 데이터가 xml 에는 프로그램 (예, 웹 페이지 자습서는 for Java). 그 상황에서 & # 39 너회의 포함된 데이터를 포함하는, & # 39 큰 청크에는 문자이어야 &; and & # 39, & # 39 <; 하지만 그 문자 # 39 건, xml aren& 수 없다.
비교:
<example-code>
while (x < len && !done) {
print( "Still working, 'zzz'." );
++x;
}
</example-code>
함께
<example-code><![CDATA[
while (x < len && !done) {
print( "Still working, 'zzzz'." );
++x;
}
]]></example-code>
특히 이 코드를 복사 / 붙여넣기 파일에서 경우 (또는 전처리 있는 등 정보기술 (it), it& # 39, s, w / o 자 xml 파일을 포함할 수 있는 좋은 그냥 XML 태그 / 속성을 가지고 그 것이다. 다른 일반적인 용도에 따라 언급할 때 포함시키십시오 @paary you& # 39, re 필드앰퍼샌드 포함된 url 을 포함. 마지막으로, 몇 가지 특수 문자 데이터가 경우에도 데이터만 포함하고 있지만 아주 긴 (텍스트, 말하도다 장), it& # 39 의 디코딩 할 수 없는 그 때 좋은 en / xml 파일을 몇 엔티티에는 변경하십시오.
(난 용의자요 모든 자료를 좀 주석은 / 도움이되지 않는 것이다.)
에서 위키백과:
>. [에] 는 xml 문서 또는 외부 CDATA 부분은 엔티티입니다 구문 분석 >. 섹선에서 파서를 위한 것으로 해석할 수 있는 내용을 요소점 >. 단 문자 데이터 아닌 수정표시. >. >. http://en.wikipedia.org/wiki/CDATA
따라서: 단지 내 텍스트 CDATA 인식됩니다 아니라 XML 파서를 문자로 노드입니다.
또 다른 예를 들면 그 사용:
Rss 피드 (xml 문서) 와 포함할 경우 몇 가지 기본적인 HTML 인코딩을 사용할 수 있는 디스플레이 설명, CData 인코드할 있다.
<item>
<title>Title of Feed Item</title>
<link>/mylink/article1</link>
<description>
<![CDATA[
<p>
<a href="/mylink/article1"><img style="float: left; margin-right: 5px;" height="80" src="/mylink/image" alt=""/></a>
Author Names
<br/><em>Date</em>
<br/>Paragraph of text describing the article to be displayed</p>
]]>
</description>
</item>
Html 의 설명 및 렌더링합니다 꺼내 내 RSS 리더를 CDATA.
참고 - - 내가 생각 하지 않는 HTML 태그를 작동합니까 의존하기 RSS 리더를 사용하고 있습니다.
물론 이 예제는 CData 이유에 대한 설명이 아닌 해당 푸브다타 및 dc: 작성자여야 태그용): 이것은 웹 사이트의 RSS 를 사용하여 디스플레이를 실제 서식 컨트롤 위젯 없다.
이 지정할 수 있게 높이 및 이미지, 작가 이름과 날짜를 올바르게 포함된 포지셔닝하십시오 포맷하십시오 등 없이 새 위젯. 또한 이 및 고말은 스크립팅할 수 없는 내가 직접 추가할 수 있습니다.
Cdata 는 데이터를 해석할 수 있는 xml 파서 및 xml 아직 충족되었으며 전달하십시오 할 수 있습니다.
예를 들면 - xml 디스크입니다. diskid 캡슐화합니다 질문 / 답변 객체에는 말할 수 있습니다. 오픈 필드 등 모든 데이터가 있을 수 없는 기본 데이터 정의 xml 데이터를 입력하거나 추상형데이터타입 엄격히 나뉩니다. 같은 xml 태그 로만스였나 올바른 셀명 < Comment->;! 나타냅니다. - 요구 사항이 있을 수 있고 또 다른 예를 그대로 통과시킬 것 없이 xml 파서를 해석할 하위 요소. 여기 Cdata 완료되니라 데이터베이스에구성원을 구조. # 39 로 파서를 don& 선언하여 Cdata 틀렸다니까 말하고, xml 데이터를 처리하는 t 랩된 표시됨과 (보이지만 한 것 같습니다)