Кіріспе

SGML және XML белгілеу тілдерінде бөлімдік белгіше.

CDATA термині, «мәліметтік таңбалар» деген мағынаны білдіреді, SGML және XML белгілеу тілдерінде ерекше, бірақ байланысты мақсаттар үшін қолданылады. Бұл термин құжаттың белгілі бір бөлігінің арнайы емес немесе шектеулі құрылымы бар мәліметтер емес, жалпы мәліметтік деректер екенін көрсетеді.

XML-дегі CDATA бөлімдері

XML құжатында немесе сыртқы нысанда CDATA бөлімі – элемент мазмұнының бір бөлігі, ол сөздерінше түсіндірілуі үшін, яғни мәтіндік дерек ретінде белгіленеді, белгіленген мазмұн ретінде емес. CDATA бөлімі – мінездемелік деректерді берудің баламалы синтаксисі ғана; CDATA бөліміндегі мінездемелік деректер мен стандартты синтаксистегі мінездемелік деректер арасында ешқандай семантикалық айырмашылық жоқ, мысалы, "<" және "&" әріптері тиісінше "&lt;" және "&amp;" арқылы бейнеленеді.

CDATA бөлімдерін пайдалану

XML құжаттарын жаңадан жасайтындар CDATA бөлімінің мақсатын жиі дұрыс түсінбейді, оның мақсаты өңдеу кезінде деректерді әдеттегі таңбалық дерек ретінде қараудан "қорғау" деп жаңылысады. XML құжаттарымен жұмыс істеуге арналған кейбір API деректерді CDATA бөлімдеріне тәуелсіз түрде қол жеткізуге мүмкіндік береді, бірақ мұндай мүмкіндіктер XML өңдеу жүйелерінің қалыпты талаптарынан тыс және деректердің мәнін өзгерте алмайды. Таңбалық дерек CDATA бөлімі арқылы немесе әдеттегі белгілеу арқылы берілсе де, ол таңбалық дерек болып қалады. CDATA бөлімдері XML кодын XML құжатының ішінде мәтіндік дерек ретінде жазу үшін ыңғайлы. Мысалы, егер сіз XML қолданбасын пайдалануды түсіндіретін XSL арқылы кітапты безендіргіңіз келсе, кітапта көрсетілуі тиіс XML белгілеуі бастапқы файлда CDATA бөлімінде жазылады.

Кодтау мәселесі

Мәтіндік деректерде <?xml ?> тақырыбында белгіленген кодтауда қолжетімсіз кез келген Юникод символын &#nnn; сандық символ сілтемесі арқылы көрсетуге болады. Алайда, CDATA бөліміндегі мәтін кодтауда бар символдармен ғана шектеледі. Осы себепті, CDATA бөлімін бағдарламалық түрде '&' немесе '<' символдары болуы мүмкін деректерді көрсету үшін пайдалану, деректерде кодтауға жатпайтын символдар кездескенде мәселе тудыруы мүмкін. Кодтаушының іске асырылуына байланысты, мұндай символдар жоғалуы, &#nnn; символ сілтемелеріне түрлендірілуі немесе кодтау қатесіне әкелуі мүмкін. Бірақ олар сақталмайды. Тағы бір мәселе – XML құжаты тасымалдау барысында бір кодтаудан екіншісіне түрлендірілуі мүмкін. XML құжаты ASCII сияқты шектеулі символдар жиынтығына түрлендірілгенде, енді бейнеленбес символдар жоғалтусыз түрлендіру үшін &#nnn; символ сілтемелеріне түрлендіріледі. Алайда, CDATA бөлімінде мұндай символдарды көрсету мүмкін емес, оларды жоюға немесе эквивалент символға түрлендіруге болады, бұл CDATA бөлімінің мазмұнын өзгертеді.