문자 참조

문자 참조(文字參照)는 컴퓨터 용어로, XML·HTML 따위의 SGML 계열 마크업 언어에서 한 문자를 표현하기 위한 언어 구조이다. 문자 참조가 만들어진 이유이자 문자 참조를 사용하는 목적은, 입력이 어려운 문자를 표현하거나 마크업 언어를 제어하는 문자를 일반 문자로 표현하기 위함이다. HTML에서의 예를 들면 '오른쪽 화살표'(→) 기호는 컴퓨터 자판에 없어서 입력이 힘들지만 &rarr;처럼 풀어서 쓸 수 있으며, '여는 꺾쇠표'(<) 기호는 HTML 요소를 시작하는 문자이므로 일반 문자로 표현하려면 &lt;처럼 풀어서 써야 한다. 이처럼 문자를 뜻하는 이름을 써서 표현하는 방법을 '문자 실체 참조' 혹은 '실체 참조'라 하고 문자 코드를 써서 표현하는 방법을 '수치 문자 참조' 또는 '문자 참조'라고 한다. HTML 4 버전에서 사용 가능한 문자 실체 참조는 252가지이다. 문자 참조를 사용할 때에는 크게 두 가지 방법을 사용할 수 있다. 첫째는 미리 정의된 특정한 이름(SGML 실체, SGML entity)을 문자를 표현하는 약어로 사용하는 방법이고, 둘째는 문자를 표현하는 ISO 10646의 문자 코드를 수로 나타내어 사용하는 방법이다. 이 두 가지 방법을 가리키는 이름은 표준에 따라 조금 다르다. HTML 권장안에서는 전자를 문자 실체 참조(文字實體參照), 후자를 수치 문자 참조(數値文字參照)라고 하며 XML 권장안에서는 이를 각각 실체 참조, 문자 참조로 부른다. 이 네 용어는 영어의 번역어이다. 실제 권장안에 표기된 이름은 순서대로 character entity reference, numeric character reference, entity reference, character reference이다. 각 언어 별로 사용 가능한 문자 실체 이름에 대한 자세한 내용은 XML의 문자 실체 참조 및 HTML의 문자 실체 참조 문단을 보십시오. 문자 실체 참조는 SGML 실체를 이용하는 문자 참조이다. 여기에서 사용하는 문자 실체 이름은 표준 문서 형식 정의(DTD)에 미리 명시될 수도 있고, 사용자가 따로 DTD에 정의 가능한 경우도 있다. 앰퍼샌드 기호(&)와 문자 실체 이름을 쓰고 쌍반점(;)으로 끝맺는다. 실체의 이름은 대소문자를 구별한다. 한 예로 HTML에서 &Aring;은 Å 문자를 나타내고, &aring;은 å 문자를 나타낸다. 수치 문자 참조는 문자 코드의 수치를 직접 넣는 방식의 문자 참조이다. 10진수 또는 16진수를 쓸 수 있다. 여기에 사용되는 문자 코드는 국제 문자 세트(ISO 10646)를 따른다. 사용법은 문자 실체 참조와 비슷하지만 실체 이름 대신 문자 코드 수치를 쓰고 10진수 수치 앞에는 해시 기호(#)를, 16진수 수치 앞에는 해시 기호와 로마자 x를 쓴다. 16진수를 쓸 때 보통 대문자로 쓰긴 하지만, 대소문자 구별은 하지 않아도 된다. 단, 수 앞의 x를 대문자로 &#XH;와 같이 쓰는 것은 HTML에서는 가능하지만 XML에서는 금지된다. W3C의 XML 권장안에서는 실체를 사용하는 문자 참조에 대해 '문자 실체 참조'라는 용어 대신 '실체 참조'라는 용어를 쓴다. HTML이 수백 개의 문자 실체 참조를 그 권장안에 포함하고 있는 것과는 달리, XML에서는 단 다섯 개의 '미리 정의된 실체(predefined entities)'를 규정하고 있다. 그러나 사용자가 문서 형식 정의를 통해서 새로운 실체 참조를 추가하는 것이 가능하다. HTML 4 버전의 문서 형식 정의에서는 252개의 문자 실체를 정의하고 있으며 HTML 4.01 버전에서는 새로운 문자 참조가 추가되지 않았다. HTML 4의 규격 명세에서는 표준 문서 형식 정의에 포함된 것 이외에 사용자에 의한 실체 추가 정의를 허용하지 않는다. 아래 표는 2010년 기준으로 HTML 권장안에 포함된 252개의 문자 실체 이름과 XML에서 지정된 어포스트로피(U+0027)를 더한, 모두 253개의 사용 가능한 문자 실체 참조 목록이다. HTML과 XHTML의 문자 실체 참조 표(숨겨짐). 표를 보려면 오른쪽의 '보이기'를 클릭. 표 각주: 문자 실체 이름이 정의된 공용 문서 형식 정의를 말한다. 이는 다음 셋 중 하나에 속한다. HTMLlat1 HTML : PUBLIC "-//W3C//ENTITIES Latin 1//EN//HTML" (HTML 자체에 문서 형식이 정의된 것으로 간주되므로 문서 형식 정의를 포함하기 위해 URI를 사용할 필요 없음.) XHTML 1.0 : PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent" HTMLsymbol HTML : PUBLIC "-//W3C//ENTITIES Symbols//EN//HTML" (HTML 자체에 문서 형식이 정의된 것으로 간주되므로 문서 형식 정의를 포함하기 위해 URI를 사용할 필요 없음.) XHTML 1.0 : PUBLIC "-//W3C//ENTITIES Symbols for XHTML//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent" HTMLspecial HTML : PUBLIC "-//W3C//ENTITIES Special//EN//HTML" (HTML 자체에 문서 형식이 정의된 것으로 간주되므로 문서 형식 정의를 포함하기 위해 URI를 사용할 필요 없음.) XHTML 1.0 : PUBLIC "-//W3C//ENTITIES Special for XHTML//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent" ISO 10646에 통합되기 이전의 옛 문자 부분집합을 말한다. ISO 10646 표준과 유니코드에 있는 영어로 된 문자 이름. 비공식적인 이름은 그 뒤에 기울임꼴로 표시되어 있다. HTML의 DTD에는 포함되지 않고 XML에서 정의된 것으로, 사용에 주의가 필요하다. XML이나 XHTML 문서를 올바르게 읽지 못하는 HTML 전용 브라우저의 경우 &apos;가 동작하지 않으므로 대신 &#39;를 사용해야 한다. 해당 문자는 HTML 4.0 발표 이후 ISO 10646에서 표준화되었다. “HTML 4.01 Specification - 5.3 Character references” (영어). W3C. 1999년 12월 24일. 2010년 11월 24일에 확인함.  같은 항목의 최신 버전 참고. 마시코 타카히로(益子 貴寛); 김대석(옮긴이), 신승식(감수) (2007년 6월 25일). 《웹표준교과서 - XHTML과 CSS로 하는'바른' 웹디자인》. 디지털미디어리서치. ISBN 9788995527634.  더 이상 지원되지 않는 변수를 사용함 (도움말) “Extensible Markup Language (XML) 1.0 (Fifth Edition) - 4.1 Character and Entity References” (영어). W3C. 2008년 11월 26일. 2010년 11월 24일에 확인함.  같은 항목의 최신 버전 참고. “Extensible Markup Language (XML) 1.1 (Second Edition) - 4.1 Character and Entity References” (영어). W3C. 2006년 9월 29일. 2010년 11월 24일에 확인함.  같은 항목의 최신 버전 참고. “Extensible Markup Language (XML) 1.0 (Fifth Edition) - 4.6 Predefined Entities” (영어). W3C. 2008년 11월 26일. 2010년 11월 24일에 확인함.  같은 항목의 최신 버전 참고. “Extensible Markup Language (XML) 1.1 (Second Edition) - 4.6 Predefined Entities” (영어). W3C. 2006년 9월 29일. 2010년 11월 24일에 확인함.  같은 항목의 최신 버전 참고. “HTML 4.01 Specification - 24 Character entity references in HTML 4” (영어). W3C. 1999년 12월 24일. 2010년 11월 24일에 확인함.  같은 항목의 최신 버전 참고. HTML의 DTD에는 포함되지 않고 XML에서 정의된 것으로, 사용에 주의가 필요하다. XML이나 XHTML 문서를 올바르게 읽지 못하는 HTML 전용 브라우저의 경우 &apos;가 동작하지 않으므로 대신 &#39;를 사용해야 한다. 다음 항목 참고. “XHTML™ 1.0 The Extensible HyperText Markup Language (Second Edition) - C.16. The Named Character Reference '” (영어). W3C. 2002년 8월 1일. 2010년 11월 24일에 확인함.  같은 항목의 최신 버전.