WikiDer > CDATA

CDATA

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

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

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

Синтаксис және интерпретация

CDATA бөлімі келесі ретпен басталады:

<! [CDATA [

және кезектіліктің келесі пайда болуымен аяқталады:

]]>

Осы екі дәйектіліктің ішіндегі барлық таңбалар түзету немесе жеке сілтемелер емес, символдар ретінде түсіндіріледі. Кез-келген кейіпкер сөзбе-сөз қабылданады, жалғыз ерекшелік - бұл ]]> таңбалардың реттілігі. In:

<sender>Джон Смит</sender>

«жіберуші» басы мен соңындағы тегтер түзету ретінде түсіндіріледі. Алайда, код:

<![CDATA[<sender>John Smith</sender>]]>

балама:

& lt;жіберуші& gt;Джон Смит& lt;/ жіберуші& gt;

Осылайша, «тегтер» «Джон Смиттің» мәртебесіне дәл ие болады; олар мәтін ретінде қарастырылатын болады.

Сол сияқты, егер таңбалардың сандық анықтамасы &#240; элемент мазмұнында пайда болады, ол жалғыз деп түсіндіріледі Юникод 00F0 таңбасы (кіші әріп эт). Егер CDATA бөлімінде дәл солай көрінсе, онда ол алты таңбаға бөлінеді: амперсанд, хэш белгісі, 2 цифры, 4 цифры, 0 цифры, үтір.

CDATA бөлімдерін қолдану

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

Ұялау

CDATA бөлімінде «жол болмайды»]]>«және сондықтан CDATA бөлімінде кірістірілген CDATA бөлімдері болуы мүмкін емес. Үштікті қамтитын мәтінді кодтау үшін CDATA бөлімдерін пайдаланудың қолайлы тәсілі»]]>«бірнеше үшбұрыштың пайда болуын бөлу арқылы бірнеше CDATA бөлімдерін пайдалану керек»>«. Мысалы, кодтау үшін»]]>«біреуі жазар еді:

<![CDATA[]]]]><![CDATA[>]]>

Бұл дегеніміз «кодтау]]>«CDATA бөлімінің ортасында барлық жағдайларды ауыстырыңыз»]]>«мыналармен:

]]]]><![CDATA[>

Бұл CDATA бөлімін тиімді түрде тоқтатады және қайта қосады.

Кодтауға қатысты мәселелер

Мәтіндік деректерде кез-келген Unicode таңбасы кодта қол жетімді емес, кодталған <?xml ...?> тақырыпты а көмегімен ұсынуға болады & # nnn; таңбалардың сандық анықтамасы. CDATA бөліміндегі мәтін тек кодта бар таңбалармен қатаң шектелген.

Осыған байланысты CDATA бөлімін бағдарламалық түрде пайдаланып, '&'немесе'<Егер таңбалар кодта көрсетілмейтін символдардан тұрса, проблемалар тудыруы мүмкін. Кодердің орындалуына байланысты бұл таңбалар жоғалуы мүмкін, таңбаларына айналуы мүмкін & # nnn; таңбалар сілтемесі немесе кодтаудың сәтсіздігіне әкелуі мүмкін. Бірақ олар сақталмайды.

Тағы бір мәселе - бұл XML тасымалдау кезінде құжатты бір кодтаудан екіншісіне ауыстыруға болады. Қашан XML құжат ASCII сияқты шектеулі таңбалар жиынтығына айналдырылады, енді ұсынуға болмайтын таңбалар түрлендіріледі & # nnn; шығынсыз түрлендіруге арналған таңбалық сілтемелер. Бірақ CDATA бөлімінде бұл таңбалар мүлдем көрсетілмейді және оларды алып тастау керек немесе CDATA бөлімінің мазмұнын өзгерте отырып, баламасына айналдыру керек.

Бағдарламаны шығаруда CDATA қолдану

CDATA бөлімдері XHTML құжаттарды HTML түрінде көрсетсе, веб-шолғыштар құжаттарды басқаша талдауға міндетті, өйткені HTML талдаушылары CDATA басталу және аяқтау маркерлерін танымайды, және & HTML HTML сілтемелерін танымайды.

CDATA типті төлсипат мәні

Жылы Құжат түрін анықтау (DTD) файлдары SGML және XML үшін, төлсипат мәні CDATA типінде белгіленуі мүмкін: таңбалардың ерікті деректері. CDATA типіндегі атрибут ішінде таңба мен нысанға сілтеме белгілеуге рұқсат етілген және құжат оқылған кезде өңделеді.

Мысалы, егер XML DTD құрамында болса

 ақымақ а CDATA # МІНДЕТТІ>

foo деп аталатын элементтерде «» атрибуты қалауы бойынша болуы мүмкін «а«ол CDATA типіне жатады. Осы DTD сәйкес жарамды XML құжатында келесі элемент пайда болуы мүмкін:

 a =«1 & 2 & lt; & # 51; & # x0A;» />

және XML талдаушысы «а«атрибуттың таңба деректері ретіндегі мәні»1 және 2 <3".

CDATA типті нысан

SGML немесе XML DTD құрамына символдық деректерден тұратындығын көрсету үшін CDATA таңбалауышы пайдаланылатын жеке декларацияларды да қамтуы мүмкін. Символдық мәліметтер декларацияның өзінде пайда болуы мүмкін немесе сырттан қол жетімді болуы мүмкін, сілтеме a URI. Кез-келген жағдайда, нысанда таңба сілтемесі мен параметр нысанының сілтемесін белгілеуге рұқсат етіледі және ол оқылған кезде солай өңделеді.

 Атрибут =«Y»><![CDATA[PFTEST0__COUNTER_6__:4:199:, PFTEST0__COUNTER_7__:4:199:]]></DISPLAY_NAME> <ҰЗАҚ аты ="" val ="" INTEGER аты ="" val ="" ҰЗАҚ аты ="" val =""/>

Сондай-ақ қараңыз

Әдебиеттер тізімі

Сыртқы сілтемелер