"The entity name must immediately follow the '&' in the entity reference" 안드로이드 스튜디오 XML에서 특정 문자 '&' 를 사용했...

[안드로이드] xml 따옴표, 특수문자, 공백 사용하기

"The entity name must immediately follow the '&' in the entity reference"

안드로이드 스튜디오 XML에서 특정 문자 '&' 를 사용했을 때 위와 같이 오류를 볼 수 있습니다.

그렇다면 Entity 는 무엇인지,

XML에서 특정 문자를 사용하려면 어떻게 해야 되는지에 대해 정리해 보려고 합니다.

(아래 글은 안드로이드 스튜디오에서 XML를 기준으로 정리한 글입니다. HTML은 고려하지 않았습니다.)

 



 

 

 

 

1. XML Entity

XML에서는 특별하게 예약된 기호들이 있습니다.

해당 기호들을 XML에서 그대로 사용한다면

XML 파서는 그것을 전혀 다른 의미로 해석하기 때문에 위와 같은 오류가 나오게 됩니다.

이때 예약된 기호들이 의미 그대로 사용되기 위해서 만든 문자셋을 엔티티(Entitiy)라고 합니다.

 

 

XML에서 예약된 기호들로 만들어진 Entity를 표로 정리해 보면 아래와 같습니다.


기호

엔티티

16진수 엔티티

(백슬래시는 짝꿍)

"

"

'

(백슬래시는 짝꿍)

'

'

&

&

&

<

&lt;

&#60;

>

&gt;

&#62;

공백 문자

&nbsp;

(안드로이드 스튜디오 오류)

&#160;

 

Entity 사용 시 몇 가지 알아두면 좋은 팁이 아래 포함되어있으니 간략하게라도 보시는걸 추천 드립니다!



 

 

 

 

 

2. XML 따옴표

XML에서 따옴표를 사용 예시는 아래와 같습니다.

안드로이드 스튜디오 XML에서 문자열에 따옴표가 포함되어야 할 때 반드시 '\'(백 슬래시)와 함께 사용해야 합니다.

그렇게 때문에 따옴표를 사용할 때는 앞에 백슬래시와 함께 사용 해주세요!

<!-- 작음 따옴표 or Apostrophe(ex. it's) -->
<string name="test_single_quote1">\&apos;</string>
<!-- 큰 따옴표 -->
<string name="test_double_quote1">\&quot;</string>



따옴표 같은 경우 백슬래시만으로도 XML에서 사용 가능합니다. (이 방법이 마음 편하겠네요)

<string name="test_single_quote2">\'</string>
<string name="test_double_quote2">\"</string>

 

 

 

 

 

 

 

3. XML 특수 문자(&, <,  >)

특수문자(&, <, >)의 경우 Entity 그대로 사용하시면 됩니다.

<!-- 앤드 -->
<string name="test_and">&amp;</string>
<!-- 보다 큰 -->
<string name="test_more_than">&lt;</string>
<!-- 보다 작은 -->
<string name="test_less_than">&gt;</string>

 

 

 

 

 

 

 

4. XML 공백 문자

안드로이드 스튜디오 XML에서 공백 문자 &nbsp; 를 사용하면 오류가 발생합니다.

공백 문자를 사용하려면 16진수 Entity를 사용해주세요!

<!-- 공백 -->
<string name="entity_space">&#160;안녕하세요.</string>

 

 

 





[Reference]

코딩의 시작 : XML 문법

 

 

 

0 comments: