문자 참조: 두 판 사이의 차이

내용 삭제됨 내용 추가됨
Alphanis (토론 | 기여)
잔글 ISBN 오자 수정
Alphanis (토론 | 기여)
많은 내용 추가. W3C 권장안 문서 인용. 분류.
1번째 줄:
'''문자 실체 참조'''(文字參照)는 [[컴퓨터]] 용어로, [[XML]]·[[HTML]]· 따위의 [[XHTMLSGML]] 따위의계열 [[마크업 언어]]에서 [[문자 집합]]의, 한 [[문자]]를 표현하기 위한 [[SGML]]의언어 구조이다.<ref>
{{웹 인용 |url=http://www.w3.org/TR/1999/REC-html401-19991224/sgml/entities.html#h-24.1 |제목=Character entity references in HTML 4 |출판사=W3C |언어=영어 |확인일자=2010-10-31}}
</ref> 문자 실체는 [[SGML 실체]]({{llang|en|[[:en:SGML entity|SGML entity]]}})의 일종으로, [[문서 형식 정의]](DTD)에 의해 미리 정의 및 명시된다.
 
== 개요 ==
문자 참조가 만들어진 이유이자 문자 참조를 사용하는 목적은, 입력이 어려운 문자를 표현하거나 마크업 언어를 제어하는 문자를 일반 문자로 표현하기 위함이다. [[HTML]]에서의 예를 들면 '→'(화살표) 기호는 [[컴퓨터 자판]]에 없어서 입력이 힘들지만 <code>&amp;rarr;</code> 처럼 풀어서 쓸 수 있으며, '&lt;'(꺽쇠표, 보다 작음 부등호) 기호는 [[HTML 요소]]를 시작하는 문자이므로 일반 문자로 표현하려면 <code>&amp;lt;</code> 처럼 풀어서 써야 한다.
문자 실체 참조는 [[W3C]] 등의 단체에 의해 표준화되어 각 마크업 언어의 [[문서 형식 정의]]에 포함되므로, 일반적으로 사용자는 미리 정의된 문자 실체를 사용하면 된다.
 
==문자 참조의 종류와 이름==
문자 실체 참조를 사용하려면 아래처럼 [[&amp;|&amp;(앰퍼샌드 기호)]], 문자 실체의 이름, [[쌍반점|;(쌍반점)]]을 차례로 쓰면 된다. 사용 가능한 이름은 각 마크업 언어의 종류에 따라 다를 수 있다.
문자 참조를 사용할 때에는 크게 두 가지 방법을 사용할 수 있다. 첫째는 미리 정의된 특정한 '이름([[SGML 실체]])'을 문자를 표현하는 약어로 사용하는 방법이고, 둘째는 문자를 표현하는 [[국제 문자 세트|ISO 10646]]의 [[문자 코드]]를 수로 나타내어 사용하는 방법이다. 이 두 가지 방법을 가리키는 이름은 표준에 따라 조금씩 다른데, 아래와 같다.
 
:*[[W3C]]의 [[HTML]] 권장안에서는 [[SGML 실체|실체]]를 사용한 문자 참조를 '''문자 실체 참조'''({{lang|en|character entity reference}})라고 하며 [[국제 문자 세트|ISO 10646]] 문자 코드 수치를 사용한 문자 참조를 '''수치 문자 참조'''({{lang|en|numeric character reference}})라고 한다.<ref name="w3c_html401spec_19991224_5_3">
:<code>&amp;이름;</code>
{{웹 인용 |제목=HTML 4.01 Specification - 5.3 Character references |url=http://www.w3.org/TR/1999/REC-html401-19991224/charset.html#h-5.3 |출판사=[[W3C]] |작성일자=1999-12-24 |확인일자=2010-11-24 |언어고리=en}} [http://www.w3.org/TR/html401/charset.html#h-5.3 같은 항목의 최신 버전] 참고.
 
</ref><ref name="masiko_webstandard_20070625">
참고로, [[수치 문자 참조]]는 다음과 같이 쓴다.<ref>
{{서적 인용 |제목=웹표준교과서 - XHTML과 CSS로 하는'바른' 웹디자인 |저자=마시코 타카히로({{lang|ja|益子 貴寛}}) |공저자=김대석(옮긴이), 신승식(감수) |출판사=디지털미디어리서치 |발행일자=2007-06-25 |id=ISBN 9788995527634 |꺽쇠표=예}}
</ref>
:*W3C의 [[XML]] 권장안에서는 실체를 사용한 것을 '''실체 참조'''({{lang|en|entity reference}})라고 하며 수치를 사용한 것을 '''문자 참조'''({{lang|en|character reference}})라고 한다.<ref name="w3c_xml10fifth_20081126_4_1">
*[[십진법|10진수]] 사용 ([[해시 기호|#]] 기호 추가, 이름 대신 10진수, 자릿수는 변화 가능)
{{웹 인용 |제목=Extensible Markup Language (XML) 1.0 (Fifth Edition) - 4.1 Character and Entity References |url=http://www.w3.org/TR/2008/REC-xml-20081126/#sec-references |출판사=[[W3C]] |작성일자=2008-11-26 |확인일자=2010-11-24 |언어고리=en}} [http://www.w3.org/TR/xml/#sec-references 같은 항목의 최신 버전] 참고.
:<code>&amp;#nnnn;</code>
</ref><ref name="w3c_xml11second_20060929_4_1">
*[[십육진법|16진수]] 사용 (# 기호와 소문자 [[X|x]] 추가, 이름 대신 16진수, 자릿수는 변화 가능)
{{웹 인용 |제목=Extensible Markup Language (XML) 1.1 (Second Edition) - 4.1 Character and Entity References |url=http://www.w3.org/TR/2006/REC-xml11-20060816/#sec-references |출판사=[[W3C]] |작성일자=2006-09-29 |확인일자=2010-11-24 |언어고리=en}} [http://www.w3.org/TR/xml11/#sec-references 같은 항목의 최신 버전] 참고.
:<code>&amp;#xhhhh;</code>
</ref>
이 백과사전 문서에서는 둘 사이의 구분을 쉽게 하기 위해 HTML 권장안에서 사용하는 용어로 개념을 설명하고 있다.
 
===문자 실체 참조===
'''문자 실체 참조'''(文字實體參照)는 ([[SGML 실체]]({{llang|en|[[:en:SGML entity|SGML entity]]}})를 이용하는 문자 참조이다. 표준 [[문서 형식 정의]](DTD)에 미리 명시되거나, 사용자가 따로 DTD에 정의함으로써 사용 가능하다. 문자 실체 참조를 사용해 문자를 표현하려면 아래처럼 [[&amp;]], 문자 실체 이름, [[쌍반점|;]]을 차례로 쓰면 된다. 실체의 이름은 대소문자를 구별한다. 한 예로 &amp;Aring;은 '&Aring;' 문자를 나타내고, &amp;aring;은 '&aring;' 문자를 나타낸다.
 
{| class="wikitable" style="margin: 0.2em 3em;"
|style="padding: 1em;"|<code><nowiki>&amp;이름;</nowiki></code>
|}
::
 
===수치 문자 참조===
'''수치 문자 참조'''(數値文字參照)는 [[문자 코드]]의 수치를 직접 넣는 방식의 문자 참조이다. [[십진법|10진수]] 또는 [[십육진법|16진수]]를 쓸 수 있다. 여기에 사용되는 문자 코드는 [[국제 문자 세트]](ISO 10646)를 따른다.<ref name="w3c_html401spec_19991224_5_3"/>
 
{| class="wikitable" style="margin: 0.2em 3em;"
!style="padding: 1em;"|진법||style="padding: 1em;"|사용법||style="padding: 1em;"|설명
|-
|style="padding: 1em;"|10진수
|style="padding: 1em;"|<code><nowiki>&amp;#N;</nowiki></code>
|style="padding: 1em;"|&amp;, [[해시 기호|#]], 10진수, 쌍반점을 차례로 씀.
|-
|style="padding: 1em;"|16진수
|style="padding: 1em;"|<code><nowiki>&amp;#xH;</nowiki></code>
|style="padding: 1em;"|&amp;, #, [[X|x]], 16진수, 쌍반점을 차례로 씀.
|}
::16진 표현에서 x를 대문자로 써서 <code>&amp;#XH;</code>와 같이 쓰는 것은 [[HTML]]에서는 가능하지만 [[XML]]에서는 금지된다. 16진수를 쓸 때에는 대소문자 구별이 없다.<ref name="w3c_html401spec_19991224_5_3" /><ref name="w3c_xml10fifth_20081126_4_1" /><ref name="w3c_xml11second_20060929_4_1" />
 
== XML의 문자 실체 참조 ==
W3C의 [[XML]]에서는 '권장안에서는 실체를 사용하는 문자 실체({{llang|en|character참조에 entity}})'나대해 '문자 실체 참조({{lang|en|character'라는 entity용어 대신 reference}})'실체 같은참조'라는 용어를 사용하지는 않는다쓴다. 다만HTML이 XML수백 규격개의 명세에서는문자 다음실체 표와참조를 같이그 권장안에 포함하고 있는 것과는 달리, XML에서는 단 다섯 개의 '미리 정의된 실체({{llanglang|en|predefined entities}})'를 규정하고 있다.<ref name="w3c_xml10fifth_20081126_4_6">
{{웹 인용 |제목=Extensible Markup Language (XML) 1.0 (Fifth Edition) - 4.6 Predefined Entities |url=http://www.w3.org/TR/2008/REC-xml-20081126/#sec-predefined-ent |출판사=[[W3C]] |작성일자=2008-11-26 |확인일자=2010-11-24 |언어고리=en}} [http://www.w3.org/TR/xml/#sec-predefined-ent 같은 항목의 최신 버전] 참고.
</ref><ref name="w3c_xml11second_20060929_4_6">
{{웹 인용 |제목=Extensible Markup Language (XML) 1.1 (Second Edition) - 4.6 Predefined Entities |url=http://www.w3.org/TR/2006/REC-xml11-20060816/#sec-predefined-ent |출판사=[[W3C]] |작성일자=2006-09-29 |확인일자=2010-11-24 |언어고리=en}} [http://www.w3.org/TR/xml11/#sec-predefined-ent 같은 항목의 최신 버전] 참고.
</ref> 그러나 사용자가 [[문서 형식 정의]]를 통해서 새로운 실체 참조를 추가하는 것이 가능하다.
 
{| class="wikitable"
줄 61 ⟶ 90:
 
== HTML의 문자 실체 참조 ==
[[HTML]] 4 [[버전]]의 [[문서 형식 정의]]에서는 252개의 문자 실체를 정의하고 있으며 HTML 4.01 버전에서는 새로운 문자 참조가 추가되지 않았다. HTML 4의 규격 명세에서는 표준 문서 형식 정의에 포함된 것 이외에 [[사용자 (컴퓨터)|사용자]]에 의한 실체 추가 정의를 허용하지 않는다. 아래 표는 2010년 현재 HTML 문서 형식 정의(DTD)에 포함된 252개의 문자 실체 이름<ref name="w3c_html401spec_19991224_24">
{{웹 인용 |제목=HTML 4.01 Specification - 24 Character entity references in HTML 4 |url=http://www.w3.org/TR/1999/REC-html401-19991224/sgml/entities.html |출판사=[[W3C]] |작성일자=1999-12-24 |확인일자=2010-11-24 |언어고리=en}} [http://www.w3.org/TR/html401/sgml/entities.html 같은 항목의 최신 버전] 참고.
</ref>에 [[XML]]에서 지정된 어포스트로피(U+0027)<ref name="w3c_xhtml1second_20020801_c_16">
HTML의 DTD에는 포함되지 않고 XML에서 정의된 것으로, 사용에 주의가 필요하다. XML이나 XHTML 문서를 올바르게 읽지 못하는 HTML 전용 브라우저의 경우 &amp;apos;가 동작하지 않으므로 대신 &amp;#39;를 사용해야 한다. 다음 항목 참고.
*{{웹 인용 |제목=XHTML™ 1.0 The Extensible HyperText Markup Language (Second Edition) - C.16. The Named Character Reference &apos; |url=http://www.w3.org/TR/2002/REC-xhtml1-20020801/#C_16 |출판사=[[W3C]] |작성일자=2002-08-01 |확인일자=2010-11-24 |언어고리=en}} [http://www.w3.org/TR/xhtml1/#C_16 같은 항목의 최신 버전].
</ref>를 더해 253개의 사용 가능한 문자 실체 참조 목록이다.
 
아래 표는 2010년 현재 HTML 문서 형식 정의(DTD)에 포함된 문자 실체 참조를 담고 있다. [[XHTML]]에서 정의된 한 개(어포스트로피, U+0027)를 포함하여 모두 253개의 목록이다.
{{글 숨김 |제목=HTML과 XHTML의 문자 실체 참조 표(숨겨짐). 표를 보려면 오른쪽의 '보이기'를 클릭.}}
{|class="wikitable sortable"
줄 106 ⟶ 139:
| ampersand
|-
| apos<ref group="표">
HTML의 DTD에는 포함되지 않고 XML에서 정의된 것으로, 사용에 주의가 필요하다. XML이나 XHTML 문서를 올바르게 읽지 못하는 HTML 전용 브라우저의 경우 &amp;apos;가 동작하지 않으므로 대신 &amp;#39;를 사용해야 한다.
</ref>
| '
| U+0027 (39)
줄 2,123 ⟶ 2,158:
<references />
 
{{토막글|[[분류:컴퓨터}} 용어]]
[[분류:W3C_표준]]
[[분류:HTML]]
[[분류:XML]]
 
[[cs:HTML entita]]