CDATA

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2020. április 23-án felülvizsgált verziótól ; az ellenőrzések 8 szerkesztést igényelnek .

A CDATA (/ˈsi.deɪ.tə/) a "karakteradatok   "  rövidítése . Különböző, de kapcsolódó célokra használják az SGML és XML jelölőnyelvekben . A CDATA azt jelzi, hogy a dokumentum egy bizonyos része karakteradat, szemben a nem karakteres vagy karakteres adatokkal, amelyek speciálisan strukturáltak.

CDATA XML-re

Az XML dokumentumokban a CDATA-ban elhelyezett töredék az elem tartalmának egy része, amelyet az elemző úgy jelöl meg, hogy csak karakteradatokat tartalmaz, jelölést nem. A CDATA csak egy alternatív szintaxis a karakteradatok megjelenítéséhez, nincs szemantikai különbség a CDATA-ként deklarált karakteradatok és a normál szintaxisban deklarált karakteradatok között, ahol a " <" és a " >" a következőképpen jelenne meg: " &lt;" és " &gt;" , ill.

Szintaxis és értelmezés

A CDATA szakasz a következő karaktersorozattal kezdődik :

<![CDATA[

és a sorozat első előfordulásával ér véget:

]]>

A két sorozat közötti összes karakter karakterként értelmeződik, nem jelölésként vagy objektumhivatkozásként. Például ebben a sorban:

<sender>John Smith</sender>

a nyitó és záró "küldő" címkék jelölésként lesznek értelmezve. Viszont ha így írod:

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

akkor ez a kód ugyanúgy lesz értelmezve, mintha azt írták volna:

&lt;sender&gt;John Smith&lt;/sender&gt;

Így a feladó címkéit ugyanúgy kezeli a rendszer, mint a "John Smith"-et, azaz a szöveget.

Hasonlóképpen, ha a numerikus sorozat megjelenik az elem tartalmában &#240;, akkor a rendszer a 00F0 egyszerű Unicode karakterként értelmezi. De ha ez a sorozat megjelenik egy CDATA szakaszban, akkor 6 karakterre lesz felosztva: és jel , okthorpe jel , 2 számjegy , 4 számjegy, 0 számjegy és pontosvessző .

CDATA használata

Az XML-ben újoncok gyakran félreértik a CDATA-szakasz célját, mint az adatok „védelmét” az adott szakaszon belüli feldolgozástól. Egyes XML-dokumentumok manipulálására szolgáló API-k független hozzáférést biztosítanak a CDATA szakaszhoz, de ezek a képességek az XML-feldolgozó rendszer normál követelményein felül és kívül is léteznek, és nem változtatják meg az adatok jelentését. A karakteradatok karakteradatok, függetlenül attól, hogy CDATA szakaszban vagy sima jelölésben vannak-e írva.

A CDATA szakasz akkor hasznos, ha XML-kódot szeretne szöveges adatként írni egy XML dokumentumba. Ha például egy XML-ről XSL -re írt könyvet kell XML-alkalmazások használatára vonatkozó példákkal, akkor a talált példákat a CDATA tartalmazza. A CDATA azonban nem tartalmazhatja a "]]>" karakterláncot, ezért nem lehet beágyazott CDATA szakaszokat létrehozni. Ha a szöveg tartalmazza a „]]>” kifejezést, akkor azt például több CDATA-szakasz használatával is megjelenítheti, amelyek közül az egyiket a „>” karakter elé zárja. Példa:

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

Ezért ]]>a CDATA szakaszban való kódoláshoz cserélje ki a karakterkészlet összes előfordulását a következőre:

]]]]><![CDATA[>

CDATA DTD-ben

CDATA attribútumértékek

A DTD - fájlokban, mind az SGML-ben, mind az XML-ben, CDATA típusú attribútumhoz rendelhető - tetszőleges karakteradat. A karaktermutatók és az entitáshivatkozások megengedettek a CDATA típusú attribútumokon belül, és a dokumentum olvasásakor kerülnek feldolgozásra .

Például, ha az XML DTD tartalmaz

<!ATTLIST foo a CDATA #IMPLIED>

ez azt jelenti, hogy a foo nevű elemeknek van egy CDATA típusú opcionális " a " attribútuma. Egy XML-dokumentumban, amely megfelel ennek a DTD-nek, a következő elem jelenhet meg:

<foo a="1 és 2 < 3 ">

és az XML elemző úgy értelmezi az " a " attribútumot, hogy az " 1 és 2 " karakteradatok < 3 ".

CDATA típusú entitások

Az SGML és XML DTD -k tartalmazhatnak entitásdeklarációkat is , amelyekben egy CDATA-jelölőt használnak annak jelzésére, hogy az entitás karakteradat. A karakteradatok megjelenhetnek magában a leírásban, vagy elérhetőek külső forrásként egy URI hivatkozáson keresztül . Így vagy úgy, a szimbólumra mutató mutatók és az entitásra való hivatkozások megengedettek ebben az entitásban, amely a dokumentum olvasása során kerül feldolgozásra.

A CDATA típusú elem tartalma

Az SGML DTD deklarálhatja egy CDATA típusú elem tartalmát. A CDATA típusú elemen belül nincs jelölés elemezni. Hasonlatot vonhatunk az XML CDATA szakaszával , de ebben az esetben nincs speciális jelölés, a CDATA típus azonnal hat az elem teljes tartalmára.

Lásd még