본문 바로가기
IT

xml에서 &와 같은 문자 에러시

by kosoo 2008. 3. 7.
반응형
XML 문서내의 모든 문장들은 파서에 의해 검사된다
그러나 CDATA 섹션안의 문장들은 예외가 된다.



Parsed Data


XML 파서는 보통 문서내의 모든 문장들을 분석한다.

XML element 를 parse 할때 테그 사이의 문자열도 아래예처럼 parse 하게 되는데

<message>This text is also parsed</message>

왜냐하면 XML element 사이에 다른 element 가 속해 있을수도 있기때문이다.
아래 예에서 <name> element 사이에 다른 element 들이 속해있을수 있다.

<name><first>Bill</first><last>Gates</last></name>

그리고 파서는 이것을 sub-element 로 나뉘다.

<name>
   <first>Bill</first>
   <last>Gates</last>
</name>


Escape Characters

XML 문자데이터로 사용할수 없는 문자들은 이를 다른 것으로 바꿔줘야 한다.

아래 예처럼 XML element 안에서 '<' 를 사용한다면 파서는 에러를
발생 시킨다.

<message>if salary < 1000 then</message>

위 문장은 아래처럼 '<' 를 &lt; 로 바꿔줘야한다.

<message>if salary &lt; 1000 then</message>


XML 에서 미리 정의된 5개의 entity reference

&lt; < less than
&gt; > greater than
&amp; & ampersand 
&apos; ' apostrophe
&quot; " quotation mark

entity reference 는 항상 '&' 로 시작해서 ';' 끝난다.

노트: XML 에서 '<' 과 '&' 의 사용은 정대 허용이 안된다.
나머지 3개 문자는 허용은 되나 이를 사용하는것은 좋은 습관은 아니다.


CDATA

CDATA 섹션안의 모든것은 파서를 거치지 않는다.
프로그램 코드에서 종종 사용하는 '<' 나 '&' 문자 뿐아니라
어떤 문자도 사용할수있다

CDATA 섹션은 "<![CDATA[" 로 시작하고 "]]>" 로 끝난다.
반응형