Page 1 of 1

xml에서 에트리뷰트 CDATA속성

Posted: 2005 02 23 11:03 41
by 박민권
<!ATTLIST item
href CDATA #REQUIRED
>
<item href="&"></item>

위아래 생략하고 href 에트리뷰트의 속성을 CDATA로 했는데
&, <, >등을 넣으면 오류가 납니다. ㅠ_ㅠ
CDATA로 했으니까 문자 그대로 읽어야 하는거 아닌가요?

저도 궁금해서 CDATA의 정의를 찾아봤습니다

Posted: 2005 02 23 15:49 45
by tenshi
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.
아래는 대충의 해석입니다.
CDATA는 "document character set" 문자의 집합이고, "character entities"도 포함한다. 사용자측 브라우저는 다음과 같이 인자를 해석한다.

* "character entities" 를 해당하는 문자로 바꾼다,
* 줄바꿈을 무시한다,
* 캐리지 리턴(\r)값이나 탭을 한칸의 공백으로 바꾼다.
기본적으로 "document character set"에서 <, &, >, " 등의 문자를 <, >.. 등으로 표시해야 한다고 되어있네요, 그래서 CDATA에는 <, & 등의 특수문자가 올 수 없나봅니다.

참고로 "character entities" 도 링크겁니다.

html 쪽의 cdata를 올렸네요 -.-;

Posted: 2005 02 23 15:54 24
by tenshi
혼란을 피하기 위해 일단 알립니다..........;;

이번엔 xml쪽을 보고..-_-;;

Posted: 2005 02 23 16:03 37
by tenshi
http://www.w3.org/TR/2000/REC-xml-20001006#syntax

차이는 CDATA와 CDATA Section로군요.

CDATA Section이라는것은
"<![CDATA[" 으로 시작하는 것으로 "]]>" 문자가 오기 전까지 어떤 문자든지 markup으로 해석되지 않는다는군요.

민권님 덕분에 저도 이거저거 둘러보고 확실하게 알았네요.. :)

감사합니다.

Posted: 2005 02 23 20:10 46
by 박민권
에트리뷰트의 값으로도 CDATA Section처럼 쓰고 싶었는데 불가능한 것이었군요.
님 덕분에 저야말로 새로운 것을 알았습니다.