Кіріспе
SGML, XML және HTML-де қолданылатын ортақ таңбалау құрылымы. Сандық таңба сілтемесі (NCR) – SGML және SGML-ден туындаған HTML және XML сияқты таңбалау тілдерінде қолданылатын ортақ таңбалау құрылымы. Ол бір таңбаны көрсететін қысқа таңбалар тізбегінен тұрады. WebSgml, XML және HTML 4 нұсқаларынан бастап Юникодтың Универсалды таңба жинағының (UCS) кодтық нүктелері пайдаланылады. NCR әдетте белгілі бір құжатта тікелей енгізілмейтін таңбаларды көрсету үшін қолданылады (мысалы, қолданылып жатқан 8 биттік таңба жинағына сәйкес келмейтін халықаралық таңбалар немесе тілде ерекше синтаксистік мағынасы бар таңбалар). Құжатты таңбалауды түсінетін оқырман оны өңдегенде, әр NCR сол таңба ретінде қарастырылады.
A numeric character reference (NCR) is a common markup construct used in SGML and SGML derived markup languages such as HTML and XML. It consists of a short sequence of characters that, in turn, represents a single character. Since WebSgml, XML and HTML 4, the code points of the Universal Character Set (UCS) of Unicode are used. NCRs are typically used in order to represent characters that are not directly encodable in a particular document (for example, because they are international characters that do not fit in the 8 bit character set being used, or because they have special syntactic meaning in the language). When the document is interpreted by a markup aware reader, each NCR is treated as if it were the character it represents.
Шектеулер
ISO 10646 анықтаған Универсалды таңбалар жиынтығы SGML және HTML 4 үшін "құжаттағы таңбалар жиынтығы" болып табылады, сондықтан әдетте, мұндай құжаттағы кез келген таңба және мұндай құжатта сілтеме жасалатын кез келген таңба UCS-де болуы керек. SGML синтаксисі жарамсыз немесе тағайындалмаған код нүктелеріне сілтеме жасауға тыйым салмайды, мысалы , бірақ SGML-ден туындаған HTML және XML сияқты таңбалау тілдері сандық таңба сілтемелерін тек таңбаларға тағайындалған код нүктелерімен ғана шектеуге болады. Шектеулер басқа да себептерге байланысты қолданылуы мүмкін. Мысалы, HTML 4-те "form feed" басқару таңбасына сілтеме болып табылатын  рұқсат етіледі, себебі формалық қоректендіру таңбасы қолданылуына рұқсат берілген. Алайда, XML-де формалық ағымды таңбаны тіпті сілтеме арқылы да қолдануға болмайды. Тағы бір мысал ретінде, басқа басқару таңбасына сілтеме болып табылатын € HTML немесе XML-де қолданылуына немесе сілтеме жасалуына рұқсат етілмейді, бірақ HTML-де қолданылған жағдайда, көбінесе веб-браузерлер оны қате ретінде көрсетпейді – олардың кейбіреулері оны Windows 1252 кодировкасындағы 128 кодтық мәнімен көрсетілген таңбаға сілтеме ретінде түсіндіреді. Бұл таңба, "€", стандартқа сәйкес HTML кодінде € ретінде көрсетілуі тиіс. Тағы бір мысал келтірейік, 2000 жылдың 6 қазанында XML 1.0 екінші басылымы жарияланғанға дейін XML 1.0 ISO 10646 ескі нұсқасына негізделген және таңбалық деректерден басқа U+FFFD-ден жоғары таңбаларды пайдалануға тыйым салған, осылайша 𐀀 (U+10000) сияқты сілтеме заңсыз болып саналған. XML 1.1 және XML 1.0 жаңа басылымдарында мұндай сілтемеге рұқсат беріледі, себебі қол жетімді таңбалар жиынтығы нақты түрде кеңейтілді. Таңбалау тілдері таңба сілтемелері қай жерде пайда болатынына да шектеулер қояды.
Бір-біріне үйлесімділік мәселелері
SGML және HTML-дің бастапқы нұсқаларында сандық таңба сілтемелері Unicode-тің орнына құжаттың таңбалық кодировкасына сәйкес түсіндірілді. Латын әрпімен жазылған құжаттарда x80 мен x9F аралығындағы таңбаларға жасалған сандық сілтемелер Unicode бойынша дұрыс болмайды және қайта кодталуы тиіс. HTML 4 стандартына дейінгі HTML стандарттары тек Батыс Латын әрпімен жазылған құжаттарды қолдады: #7F-тен жоғары таңбалық сілтемелерді өңдеу әртүрлі бағдарламалар мен ұлттық конвенциялар бойынша өзгеше болуы мүмкін. Мысалы, жоғарыда айтылғандай, Unicode қолданғанда "€" U+20AC еуро таңбасының дұрыс сандық таңбалық сілтемесі ондық € және он алтылық € болып табылады. Бірақ, HTML-дің ескірген нұсқаларын қолдайтын құралдарды пайдаланғанда, € (CP 1252 кодировкасындағы еуро белгісі) немесе ¤ (ISO/IEC 8859 15 кодировкасындағы еуро белгісі) сілтемелері жұмыс істеуі мүмкін. Тағы бір мысал келтейік, егер мәтін бастапқыда MacRoman таңбалар жиынтығын қолданып жасалса, сол жаққа орналасқан қос тырнақша белгісі xD2 кодтық нүктесімен көрсетіледі. Бұл UTF-8, ISO 8859-1 немесе CP 1252 кодировкасындағы құжатты күтетін жүйеде дұрыс көрсетілмейді, себебі бұл кодтық нүкте Ò әрпімен толыққан. HTML 4 және одан кейінгі нұсқаларында дұрыс сандық таңба сілтемесі “ болып табылады, өйткені U+201C оның UCS коды. Кейбір жүйелерде “ деп аталатын таңбалық сілтеме де қолжетімді болуы мүмкін.