'character'에 해당되는 글 1건

  1. 2006.08.16 XML characters
개발2006. 8. 16. 15:43

1. Legal Characters for XML

XML에서 허용되는 문자(character code)는 다음과 같다(any Unicode character, excluding the surrogate blocks, FFFE, and FFFF).
#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
문자 범위를 살펴보면 주로 control 문자가 아닌 문자만 허용하고 있지만, text에 일반적으로 사용되는 다음과 같은 control 문자는 허용하고 있다.

  • #x9: (control character) [HT] horizontal tabulation(character tabulation, tab)
  • #xA: (control character) [LF] line feed(new line, end of line)
  • #xD: (control character) [CR] carriage return

그리고 다음 문자는 허용되긴 하지만, control 문자이거나 Unicode에서 정의되지 않은 문자이므로 가능한 사용하지 않는 것이 좋다.

[#x7F-#x84], [#x86-#x9F], [#xFDD0-#xFDDF],
[#1FFFE-#x1FFFF], [#2FFFE-#x2FFFF], [#3FFFE-#x3FFFF],
[#4FFFE-#x4FFFF], [#5FFFE-#x5FFFF], [#6FFFE-#x6FFFF],
[#7FFFE-#x7FFFF], [#8FFFE-#x8FFFF], [#9FFFE-#x9FFFF],
[#AFFFE-#xAFFFF], [#BFFFE-#xBFFFF], [#CFFFE-#xCFFFF],
[#DFFFE-#xDFFFF], [#EFFFE-#xEFFFF], [#FFFFE-#xFFFFF],
[#10FFFE-#x10FFFF].

2. Character Data

XML에서 허용되는 문자 중 특정역할을 하는 문자를 일반 문자열로 처리할 경우, escape가 필요하다.
먼저, ampersand(&)는 entity reference의 start delimiter로 사용되고, left angle bracket(<)은 markup의 start delimiter로 사용된다. 따라서 이런 문자들이 주석문이나 CDATA section 등이 아닌 일반 문자열에서 사용될 경우 반드시 "&amp;", "&lt;"(또는 ISO/IEC 10646에 정의된 numeric character reference)로 대체되어야 한다.
그리고 right angle bracket(>)은 markup의 close delimiter 및 CDATA-section-close-delimiter(]]>)의 일부로 사용된다. 따라서 CDATA section 내에서 "]]>"와 같은 문자열을 표기할 때에는 CDATA-section-close-delimiter로 인식되지 않도록 "&gt;"(또는 numeric character reference)로 표기해야 한다.
마지막으로 attribute value delimiter로 사용되는 single quote(')double quotes(")를 attribute value로 사용하고자 할 때에는 "&apos;", "&quot;"로 나타내야 한다.

Posted by roguebean