본문 바로가기
개발용어

CDATA, cdata, cdata란?, CDATA사용이유, CDATA사용하는 이유, xml cdata, 마이바티스 cdata

by devscb 2021. 12. 8.
반응형



CDATA란


XML 문서/파일 내용을 보면 가끔

로 되어있는것을 볼 수 있습니다.
이게 무엇인지 알아보겠습니다.
CDATA는 Character Data를 의미하며,
이 문자열들 사이의 데이터는 XML 마크업으로 해석하지 않아야 하는 데이터를 포함한다는 것을 의미합니다.
'(Unparsed) Character Data'. 즉, '파싱하지 않는 문자 데이터'라는 뜻입니다.
파싱하는 문자 데이터는 'PCDATA'라고 부릅니다.
CDATA와 코멘트의 주요 차이점은 다음과 같습니다.
CDATA는 여전히 문서의 일부인 반면, 코멘트는 그렇지 않습니다.
CDATA에서는 문자열]]>(CDEnd)을 포함할 수 없는 반면, 주석에서는 -가 유효하지 않습니다.


CDATA를 쓰는 이유


CDATA를 쓰는 이유를 알아봅시다.
먼저, 아래와 같이 test1.xml과 test2.xml을 작성해보겠습니다.

test1.xml


<?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>테스트1</h2>
<div>

You won't see this in the document<br/>and can use reserved characters like
< > & "
</body>

</html>



test2.xml


<?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>테스트2</h2>
<div>
<![CDATA[
You won't see this in the document and can use reserved characters like
< > & "
]]>
</body>
</html>
 



test.xml과 test2.xml 을 브라우저에서 열어보면 어떻게 표시되는지 볼까요?
test.xml



test2.xml




위에서 보시는바와 같이, < > & " 과 같은 문자는 test.xml 파일에서 안보이는 바년,
test2.xml 파일은 CDATA를 써서 내용이 보이는것을 확인할 수 있습니다.

즉, 는 안에 들어가는 텍스트가 파싱되지 않도록 합니다.
이는 파서가 잘못 파싱할 수 있는 텍스트를 다룰 때, 파서의 잘못된 파싱을 방지합니다.

총평


html에서는 <,>를 >와 < 로 각각 변환하게 할 수 있게끔하였습니다.
매번, 또는 한글자를 입력만 하는데도

를 쓰는 경우가 많을경우에는 이 방식이 확실히 효율적이라고 생각합니다.
XML에도 이런 특수문자를 지원해주면 편할거 같은데, 아쉽게도 지원하지는 않는것 같습니다.
가끔씩 mybatis 등에서 보이는 XML에서 보이는 CDATA가 무슨뜻인지도 모르고,
단순이 파싱이 안될때 쓰면 되겠거니 라고만 생각했었는데, character data라는 뜻이라는 것을 이번기회에 알았습니다.
근데 쓰는방식을 좀 더 단순화 했으면 어떨까 싶습니다. 타이핑하는게 좀 길어보이기도 합니다.
저같으면 그냥

라고 쓰면 CDATA와 동일하게 표시되도록 하면 훨씬 더 쉽게 사용할 수 있지는 않았을까 싶습니다.

`CDATA, cdata, cdata란?, CDATA사용이유, CDATA사용하는 이유, xml cdata, 마이바티스 cdata
#cdata,#mybatis,#xml,#CDATA,#마이바티스

 

https://devscb.com/post/75

 

CDATA, cdata, what is cdata, reasons for using CDATA, reasons for using CDATA, xml cdata, MyBatis cdata

What is CDATA?When looking at the contents of an XML document/file, sometimes<![CDATA ]]>You can see that it is .Let’s find out what this is.CDATA stands for Character Data,Data between th

devscb.com

 

728x90
반응형

댓글