CDATA
Acest articol sau secțiune despre subiectul programării nu menționează sursele necesare sau sunt insuficiente. |
CDATA ( C haracter data ) este utilizat în diferite domenii în limbaje de markup, cum ar fi SGML sau XML . Termenul indică o anumită porțiune a unui document care conține caractere generice sau caractere reprezentând date sau o structură marcată prin etichete.
Secțiuni CDATA în XML
Într-un document XML, o secțiune CDATA este tratată doar ca text simplu, astfel încât analizorul nu interpretează conținutul ca marcare. Nu există nicio diferență semantică între textul inclus într-o secțiune CDATA și textul convertit în entități (de exemplu, „&” este reprezentat cu & amp; sau „<” cu & lt; ).
Sintaxă și interpretare
O secțiune CDATA începe cu:
<! [CDATA [
și se termină cu prima apariție a:
]]>
Toate caracterele cuprinse între aceste două secvențe sunt interpretate ca text simplu, nu ca markup sau entități. De exemplu, într-un tip de linie
<mittente>Mario Rossi</mittente>
deschiderea și închiderea expeditorului este interpretată ca marcare. Secțiunea CDATA este utilizată ca în exemplu:
<mittente><![CDATA[Mario Rossi / , < >]]></mittente>
În acest caz, conținutul etichetei expeditorului este interpretat ca Mario Rossi / , < >
.
Cu toate acestea, dacă este scris astfel:
<![CDATA[<mittente>Mario Rossi</mittente>]]>
toate șirurile vor fi tratate ca text și eticheta expeditorului nu va fi considerată ca marcare. Datele rezultate în urma analizei XML sunt șirul <mittente>Mario Rossi</mittente>
.
Folosind secțiunile CDATA
De câteva ori când un programator scrie un document XML, abuzează de secțiunile CDATA, crezând că acestea sunt pur și simplu pentru a „proteja” datele.
Secțiunile CDATA sunt foarte utile pentru a include XML ca text simplu într-un document XML. De exemplu, dacă cineva scrie o carte în XML (formatând-o cu XSL ) pentru a vorbi despre XML în sine, pentru a furniza exemple de cod, trebuie să le încadreze în mod necesar în secțiuni CDATA. Cu toate acestea, o secțiune CDATA nu poate conține șirul "]]>" - această problemă poate fi totuși rezolvată separând parantezele de simbolul major, ca în acest exemplu:
<! [CDATA []]]]> <! [CDATA [>]]>
CDATA în DTD-uri
CDATA ca tip
În fișierele de definire tip document (DTD), unui atribut i se poate atribui tipul CDATA: valoarea atribuită va fi tratată ca text și, prin urmare, va fi posibilă inserarea, fără erori de analiză, caractere și entități . De exemplu, dacă un DTD XML conține
<! ATTLIST șir de explicații CDATA #IMPLIED>
înseamnă că elementele numite șir ar putea avea un atribut numit explicație de tip CDATA. Un exemplu bun ar putea fi acesta:
<explicația string = "1 & amp; 2 sunt & lt; din & # 51;">
iar un analizor XML ar interpreta valoarea atributului de explicație ca „ 1 și 2 sunt <din 3 ”.