Documente Academic
Documente Profesional
Documente Cultură
a Motivația
Tema datelor semistructurate (numită și date nestructurate) este relativ recentă, iar un tutorial pe
această temă poate fi prematur. Reprezintă, dacă este ceva, convergența unui număr de linii de
gândire despre noi modalități de a reprezenta și interoga datele care nu se potrivesc complet cu
modelele convenționale de date. Scopul acestui tutorial este de a descrie această motivație și de a
sugera domenii în care cercetările ulterioare pot fi fructuoase.
Caracteristici:
Eterogenă
Structură neregulată
Schemă mare evolutivă
Ușurința de a crea
Formatul XML este cunoscut de mulți ani (notă: prima versiune de lucru a fost anunțată în 1996,
iar specificația era deja în 2000), așa că există un anumit set de interfețe de programare (API)
pentru legarea datelor la XML în mai multe programare limbi. De exemplu, în Java, puteți utiliza
JAXB și XmlBeans pentru a genera un răspuns XML. Mai jos este un exemplu folosind JAXB.
Ușurință în utilizare
Pe partea clientului, gestionarea datelor JSON ca răspuns la un XMLHttpRequest este extrem de
ușoară. Folosind un eval( normal), puteți converti răspunsul într-un obiect JavaScript. Odată ce
această operație a fost efectuată, datele pot fi accesate folosind proprietățile obiectului convertit.
Aceasta este cea mai elegantă parte a tuturor JSON.
Extensibilitate
Extensibilitatea ajută la reducerea numărului de legături dintre furnizorul de date și consumator.
În contextul aplicațiilor AJAX, scriptul de pe partea client trebuie să fie suficient de invariant în
ceea ce privește modificările compatibile ale datelor.
Prin credința comună, XML este automat extensibil pur și simplu având litera „X”. Dar aceasta
nu este o regulă absolută (adică acționarea implicită). Extensibilitatea XML provine din
principiul că puteți defini noduri suplimentare în XML-ul dvs. și apoi aplicați regula „săriți nu
este necesar” (adică dacă întâlniți un element sau un atribut necunoscut în timpul procesării
XML, omiteți-l).
În cazul XML, este relativ ușor să verifici dacă datele trimise clientului sunt bine formate și
corecte. Puteți utiliza schema pentru datele dvs. și o puteți utiliza pentru validarea datelor. Cu
JSON, această sarcină devine manuală și necesită verificarea faptului că obiectul are atributele
corecte ca rezultat al răspunsului.
Pe partea clientului, în ambele cazuri, este dificil să se detecteze erori. Pentru XML, browserul
pur și simplu nu îl va putea converti în responseXML. Pentru cantități mici de date JSON, puteți
utiliza extensia FireBug pentru a depana și a remedia erorile. Dar cu cantități mari de date,
devine oarecum dificil să corelezi mesajul de eroare cu un anumit loc din cod.
Siguranță
Dave Johnson în postarea sa JSON și Golden Fleece opinează că JSON poate cauza probleme de
securitate. Ideea notei este că, dacă permiteți inserarea apelurilor de funcție împreună cu date în
răspunsurile JSON și utilizați eval() pentru a procesa răspunsul, atunci executați cod arbitrar, de
fapt, care poate conține deja un risc de securitate.
Alegerea mea
În cazul aplicațiilor centrate pe date, prefer să folosesc JSON peste XML, datorită simplității și
ușurinței procesării datelor din partea clientului. XML poate fi indispensabil pe server, dar JSON
este cu siguranță mai ușor de lucrat pe client.
Un limbaj de schemă mai nou, descris de W3C ca succesor al DTD-urilor, este XML Schema,
denumit adesea inițialismul pentru instanțe XML Schema, XSD (XML Schema Definition).
XSD-urile sunt mult mai puternice decât DTD-urile în descrierea limbajelor XML. Acestea
folosesc un sistem bogat de tipare a datelor și permit constrângeri mai detaliate asupra structurii
logice a unui document XML. XSD-urile folosesc, de asemenea, un format bazat pe XML, ceea
ce face posibilă utilizarea instrumentelor XML obișnuite pentru a ajuta la procesarea acestora.
https://docs.google.com/presentation/d/1yqZSHMZimrpLhUQT3wOUOcyyi5XgngMIyy3r4gaCL
wg/edit#slide=id.gebd45fc10_2_214