전체 페이지뷰

2017년 3월 22일 수요일

XML Character Entities

Characte Entity에 대해 알아보기 전에 XML의 entity라는 것이 무엇인지부터 알아보도록 합니다.
W3C에 의하면 entity의 정의는 다음과 같습니다.


  • Document entity는 entity 트리의 루트 및 XML 프로세서의 시작점 역할을 한다.

이 말은 entity라는 것이 XML에서 placeholder로서 역할을 한다는 뜻입니다. entity는 document prolog나 DTD에서 선언될 수 있습니다. 다른 형식의 entity도 있지만 여기서는 character entity에 관해서만 논하기로 합니다.

XML이건 HTML이건 자체적으로 이미 예약된 기호들이 있어서, 그 기호들은 코드 내에서 사용하지 못합니다. 예를 들어서, < 나 > 기호는 태그를 여닫는 용도로 예약되어 있습니다. 이런 특수문자들을 표시할 때에 entity가 사용됩니다.

키보드로 직접 입력할 수 없는 기호나 특수 문자의 경우에도 character entity를 이용하여 출력 가능합니다.

Types of Character Entities

세 개의 타입이 존재합니다.
  • Predefined Character Entities
  • Numeric Character Entities
  • Named Character Entities

Predefined Character Entities

몇몇 기호들을 사용할때 모호한 부분을 피하기 위해 도입되었습니다. 예를 들면 크다, 작다 기호인 < >는 열고 닫는  태그 < >와 같습니다. 이 character entity는 기본적으로 태그와의 혼동을 막기 위해 사용되는 것입니다. 다음은 XML specification에 사전 정의(predefined)된 character entity의 목록입니다.

  • Ampersand(&) : &amp;
  • Single quote( ' ) : &apos;
  • Greater than(>) : &gt;
  • Less than(<) : &lt;
  • Double quote("): &quot;

Numeric Character Entities

Numeric entity는 character entity를 참조하는데 사용됩니다. Decimal(10진수) 혹은 Hexadecimal(16진수)일 수 있으며, 수 천개의 숫자 참조를 사용할 수 있기 때문에 일일이 기억하기는 어렵습니다.  숫자 참조는 유니코드 상의 문자 번호를 나타냅니다.

10진수 참조에서 일반적인 문법은 다음과 같습니다.
&# decimal number ;
cs

16진수에서는 다음과 같습니다.
&#x Hexadecimal number ;
cs

아래 표는 predefined character entity와 그 numeric 값을 표시한 것입니다.
Entity 이름
Character
Decimal reference
Hexadecimal
quot

&#34;
&#x22;
amp
&
&#38;
&#x26;
apos

&#39;
&#x27;
lt
<
&#60;
&#x3C;
gt
>
&#62;
&#x3E;


Named Character Entities

숫자 참조는 기억하기 어렵기 때문에, 사람들이 선호하는 entity는 named character entity입니다. 각각의 entity에 이름을 달아놓은 것으로 아래에 그 예가 있습니다.

'Aacute'은  acute accent가 있는 대문자  
'ugrave'는 grave accent가 있는 소문자  

댓글 없음:

댓글 쓰기