{"id":52640,"date":"2019-11-13T00:00:00","date_gmt":"2019-11-12T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/xml-prakticheski-vsegda-primenyaetsya-ne-po-naznacheniyu"},"modified":"2020-02-18T14:00:25","modified_gmt":"2020-02-18T11:00:25","slug":"xml-prakticheski-vsegda-primenyaetsya-ne-po-naznacheniyu","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/xml-prakticheski-vsegda-primenyaetsya-ne-po-naznacheniyu","title":{"rendered":"XML este practic \u00eentotdeauna folosit \u00een mod necorespunz\u0103tor","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"XML este practic \u00eentotdeauna folosit \u00een mod necorespunz\u0103tor\" src=\"\/wp-content\/uploads\/2019\/11\/8152077415a94ef74806af230ef44bd7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nLimbajul XML a fost inventat \u00een 1996. Abia a ap\u0103rut, c\u00e2nd posibilit\u0103\u021bile sale de utilizare au \u00eenceput deja s\u0103 fie \u00een\u021belese gre\u0219it, iar pentru scopurile la care a fost adaptat, nu a fost cea mai bun\u0103 alegere.<\/p>\n<p>Nu este o exagerare s\u0103 spunem c\u0103 majoritatea schemelor XML pe care le-am v\u0103zut reprezentau o utilizare ineficient\u0103 sau gre\u0219it\u0103 a XML-ului. Mai mult, o astfel de utilizare a XML-ului indica o ne\u00een\u021belegere fundamental\u0103 a ceea ce este, \u00een primul r\u00e2nd, XML.<\/p>\n<p>XML este un limbaj de marcare. <b>Nu este un format de date.<\/b>. \u00cen majoritatea schemelor XML, aceast\u0103 distinc\u021bie nu a fost luat\u0103 \u00een considerare, confuz\u00e2nd XML-ul cu un format de date, ceea ce a dus la o alegere gre\u0219it\u0103 a XML-ului, deoarece de fapt era necesar un format de date.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nF\u0103r\u0103 a intra \u00een detalii, XML-ul este cel mai potrivit pentru anotarea blocurilor de text cu structur\u0103 \u0219i metadate. Dac\u0103 scopul principal nu este lucrul cu un bloc de text, alegerea XML-ului nu va fi justificat\u0103.<\/p>\n<p>Din acest punct de vedere, exist\u0103 o modalitate simpl\u0103 de a verifica c\u00e2t de bine este realizat\u0103 o schem\u0103 XML. S\u0103 lu\u0103m, de exemplu, un document \u00een schema presupus\u0103 \u0219i s\u0103 elimin\u0103m toate etichetele \u0219i atributele. Dac\u0103 ceea ce r\u0103m\u00e2ne nu are sens (sau dac\u0103 r\u0103m\u00e2ne un \u0219ir gol), fie schema dvs. este construit\u0103 gre\u0219it, fie pur \u0219i simplu nu ar fi trebuit s\u0103 folosi\u021bi XML.<\/p>\n<p>\u00cen continuare, voi prezenta c\u00e2teva dintre cele mai frecvente exemple de scheme construite gre\u0219it.<\/p>\n<pre><code class=\"xml\"><\/code><\/pre>\n<p>\nAici vedem un exemplu de tentativ\u0103 nejustificat\u0103 \u0219i ciudat\u0103 (de\u0219i destul de r\u0103sp\u00e2ndit\u0103) de a exprima, \u00een limbajul XML, un simplu dic\u021bionar \u201echeie-valoare\u201d. Dac\u0103 elimin\u0103m toate etichetele \u0219i atributele, va r\u0103m\u00e2ne un \u0219ir gol. Practic, acest document reprezint\u0103, oric\u00e2t de absurd ar p\u0103rea, o anotare semantic\u0103 a unui \u0219ir gol.<\/p>\n<pre><code class=\"xml\">&lt;root name=\"John\" city=\"London\" \/&gt;<\/code><\/pre>\n<p>\nCe e mai r\u0103u, avem aici nu doar o notare semantic\u0103 a unei linii goale ca metod\u0103 extravagant\u0103 de a exprima un dic\u021bionar \u2014 de data aceasta \u201edic\u021bionarul\u201d este codificat direct sub form\u0103 de atribute ale elementului r\u0103d\u0103cin\u0103. Din aceast\u0103 cauz\u0103, setul de nume de atribute atribuit elementului devine indefinit \u0219i dinamic. Mai mult, de aici se vede c\u0103 tot ce a vrut de fapt s\u0103 exprime autorul este un sintax simplu \u201echeie-valoare\u201d, dar \u00een loc s\u0103 fac\u0103 asta, a ales o solu\u021bie cu totul stranie prin aplicarea XML-ului, for\u021b\u00e2nd utilizarea unui element gol singular pur \u0219i simplu ca prefix pentru sintaxa atributelor. \u0218i astfel de scheme \u00eemi apar foarte des.<\/p>\n<pre><code class=\"xml\">John\n  London<\/code><\/pre>\n<p>\nAsta e deja mai bine, dar acum cheile sunt dintr-un motiv oarecare metadate, iar valorile nu sunt. O viziune destul de ciudat\u0103 asupra dic\u021bionarelor. Dac\u0103 \u0219tergi toate etichetele \u0219i atributele, vei pierde jum\u0103tate din informa\u021bii.<\/p>\n<p>O exprimare corect\u0103 a unui dic\u021bionar \u00een XML ar ar\u0103ta cam a\u0219a:<\/p>\n<pre><code class=\"xml\">Name\n    John\n  \n  \n    City\n    London<\/code><\/pre>\n<p>\nDar dac\u0103 oamenii au luat decizia stranie de a aplica XML ca format de date \u0219i apoi de a organiza dic\u021bionarul cu ajutorul s\u0103u, ar trebui s\u0103 \u00een\u021beleag\u0103 c\u0103 ceea ce fac este inadecvat \u0219i incomod. De asemenea, adesea proiectan\u021bii aleg gre\u0219it XML pentru a-\u0219i crea aplica\u021biile. Dar \u0219i mai des ei agraveaz\u0103 situa\u021bia prin utilizarea absurd\u0103 a XML-ului \u00eentr-una din formele descrise mai sus, ignor\u00e2nd faptul c\u0103 XML-ul pur \u0219i simplu nu este potrivit pentru asta.<\/p>\n<p><b>Care este cea mai proast\u0103 schem\u0103 XML?<\/b> Apropo, premiul pentru <i>cea mai proast\u0103 schem\u0103 XML pe care am v\u0103zut-o<\/i> merge la formatul de fi\u0219ier de configurare a aloc\u0103rii automate de resurse pentru telefoanele IP de la Polycom. Aceste fi\u0219iere necesit\u0103 desc\u0103rcarea fi\u0219ierelor XML de solicitare prin TFTP, care\u2026 Ei bine, iat\u0103 un fragment dintr-un astfel de fi\u0219ier:<\/p>\n<pre><code class=\"xml\">&lt;softkey\n        softkey.feature.directories=\"0\"\n        softkey.feature.buddies=\"0\"\n        softkey.feature.forward=\"0\"\n        softkey.feature.meetnow=\"0\"\n        softkey.feature.redial=\"1\"\n        softkey.feature.search=\"1\"\n\n        softkey.1.enable=\"1\"\n        softkey.1.use.idle=\"1\"\n        softkey.1.label=\"Foo\"\n        softkey.1.insert=\"1\"\n        softkey.1.action=\"...\"\n\n        softkey.2.enable=\"1\"\n        softkey.2.use.idle=\"1\"\n        softkey.2.label=\"Bar\"\n        softkey.2.insert=\"2\"\n        softkey.2.action=\"...\" \/&gt;<\/code><\/pre>\n<p>\nAceasta nu este o glum\u0103 nereu\u0219it\u0103 a cuiva. \u0218i nu este o inven\u021bie de-a mea:<\/p>\n<ul>\n<li>elementele sunt folosite pur \u0219i simplu ca un prefix pentru a ata\u0219a atribute, care \u00een sine au denumiri ierarhice.\n<\/li>\n<li>Dac\u0103 este necesar s\u0103 ata\u0219a\u021bi valori mai multor instan\u021be ale unui \u00eenregistr\u0103ri de un anumit tip, trebuie s\u0103 utiliza\u021bi denumirile atributelor, <i>care au indici.<\/i>.\n<\/li>\n<li>\u00cen plus, atributele care \u00eencep cu <code>softkey.<\/code>, trebuie plasate pe elemente <code>&lt;softkey\/&gt;<\/code>, atributele care \u00eencep cu <code>feature.<\/code>, trebuie plasate pe elemente <code>&lt;feature\/&gt;<\/code> etc., de\u0219i acest lucru pare complet redundant \u0219i, la prima vedere, lipsit de sens.\n<\/li>\n<li>\u0218i, \u00een cele din urm\u0103, dac\u0103 spera\u021bi c\u0103 prima component\u0103 a denumirii atributului coincide \u00eentotdeauna cu denumirea elementului - nimic mai fals! De exemplu, atributele <code>up.<\/code> trebuie ata\u0219ate la <code>&lt;userpreferences\/&gt;<\/code>. Ordinea ata\u0219\u0103rii denumirilor atributelor la elemente este arbitrar\u0103, practic \u00een \u00eentregime.\n<\/li>\n<\/ul>\n<p>\n<b>Documente sau date.<\/b>Ocazional, cineva face lucruri complet ciudate, \u00eencerc\u00e2nd s\u0103 compare XML \u0219i JSON, ar\u0103t\u00e2nd astfel c\u0103 nu \u00een\u021belege niciuna dintre acestea. XML este un limbaj de marcare a documentelor. JSON, pe de alt\u0103 parte, reprezint\u0103 un format de date structurate, a\u0219a c\u0103 a le compara \u00eentre ele este la fel ca \u0219i cum a\u021bi \u00eencerca s\u0103 compara\u021bi caldul cu moale.<\/p>\n<p>A \u00een\u021belege acest lucru va ajuta la \u00een\u021belegerea diferen\u021bei dintre <i>documente \u0219i date.<\/i>Ca analog \u00een XML, putem considera un document citibil de ma\u0219in\u0103. Chiar dac\u0103 este destinat citirii de c\u0103tre ma\u0219ini, din punct de vedere metaforic se refer\u0103 la documente \u0219i, din aceast\u0103 perspectiv\u0103, este de fapt comparabil cu documentele \u00een format PDF, care de cele mai multe ori nu sunt citibile de ma\u0219in\u0103. <\/p>\n<p>De exemplu, \u00een XML ordinea elementelor conteaz\u0103. Iar \u00een JSON ordinea perechilor \"cheie-valoare\" \u00een cadrul obiectelor nu are sens \u0219i nu este definit\u0103. Dac\u0103 dori\u021bi s\u0103 ob\u021bine\u021bi un dic\u021bionar neordonat din perechi \"cheie-valoare\", ordinea efectiv\u0103 \u00een care urmeaz\u0103 elementele \u00een acest fi\u0219ier nu are importan\u021b\u0103. Dar din aceste date pute\u021bi crea multe documente diferite, <i>deoarece \u00een document exist\u0103 o ordine specific\u0103.<\/i>Metaforic, acesta este analogul unui document pe h\u00e2rtie, de\u0219i nu are dimensiuni fizice spre deosebire de o tip\u0103ritur\u0103 sau un fi\u0219ier PDF.<\/p>\n<p>\u00cen exemplul meu de reprezentare corect\u0103 a unui dic\u021bionar \u00een limbajul XML, este ar\u0103tat\u0103 succesiunea elementelor din dic\u021bionar, diferit\u0103 de reprezentarea \u00een limbajul JSON. Nu pot ignora aceast\u0103 succesiune: o astfel de liniaritate este \u00eentr-adev\u0103r propriu-zis\u0103 modelului documentelor \u0219i formatului XML. Cineva, la interpretarea acestui document XML, ar putea decide s\u0103 ignore ordinea, dar a discuta despre acest aspect este inutil, deoarece aceast\u0103 problem\u0103 dep\u0103\u0219e\u0219te cadrul de discu\u021bie al formatului \u00een sine. \u00cen plus, dac\u0103 documentul este f\u0103cut vizibil \u00eentr-un browser, ata\u0219\u00e2ndu-i un stylesheet, se va putea observa c\u0103 elementele dic\u021bionarului urmeaz\u0103 un anumit ordine \u0219i nimic altceva.<\/p>\n<p>Cu alte cuvinte, dic\u021bionarul (fragment de date structurate) poate fi transformat \u00een <i>n<\/i> diverse documente posibile (\u00een format XML, PDF, pe h\u00e2rtie etc.), unde <i>n<\/i> \u2014 num\u0103rul combina\u021biilor posibile de elemente \u00een dic\u021bionar, \u0219i nu am considerat \u00eenc\u0103 alte variabile posibile.<\/p>\n<p>De asemenea, reiese c\u0103, dac\u0103 dori\u021bi s\u0103 transmite\u021bi doar datele, utilizarea unui document lizibil de ma\u0219in\u0103 nu va fi eficient\u0103. Acesta folose\u0219te un model care devine redundant \u00een acest caz, doar va deranja. Mai mult, pentru a extrage datele originale, va trebui s\u0103 scrie\u021bi un program. Probabil c\u0103 nu are sens s\u0103 folosi\u021bi XML pentru ceva ce \u00eentr-un anumit stadiu nu va fi formatat ca un document (de exemplu, folosind CSS sau XSLT, sau ambele), deoarece aceasta este principala (dac\u0103 nu singura) motivare pentru a adera la modelul documentului.<\/p>\n<p>Mai mult, deoarece \u00een XML nu exist\u0103 conceptul de numere (sau expresii booleene, ori alte tipuri de date), toate numerele prezentate \u00een acest format sunt considerate doar text suplimentar. Pentru a extrage datele, trebuie s\u0103 fie cunoscut schema \u0219i leg\u0103tura ei cu datele exprimate corespunz\u0103tor. De asemenea, trebuie s\u0103 se \u0219tie, \u00een func\u021bie de context, c\u00e2nd un anumit element de text reprezint\u0103 un num\u0103r \u0219i trebuie convertit \u00eentr-un num\u0103r etc.<\/p>\n<p>Astfel, procesul de extragere a datelor din documente XML nu difer\u0103 at\u00e2t de mult de procesul de recunoa\u0219tere a documentelor scanate, care con\u021bin, de exemplu, tabele ce formeaz\u0103 pagini multiple de date numerice. Da, este posibil \u00een principiu, dar nu este cea mai optim\u0103 solu\u021bie, cu excep\u021bia cazului extrem \u00een care nu sunt disponibile alte op\u021biuni. O solu\u021bie ra\u021bional\u0103 ar fi s\u0103 g\u0103si\u021bi o copie digital\u0103 a datelor originale, f\u0103r\u0103 a le integra \u00eentr-un model de document unde datele sunt combinate cu reprezentarea lor textual\u0103 specific\u0103.<\/p>\n<p>\u00cen acest context, nu m\u0103 mir\u0103 deloc c\u0103 XML este popular \u00een afaceri. Motivul este tocmai acela c\u0103 formatul documentelor (pe h\u00e2rtie) este clar \u0219i familiar pentru afaceri, unde se dore\u0219te continuarea utiliz\u0103rii unui model cunoscut \u0219i u\u0219or de \u00een\u021beles. Din acela\u0219i motiv, se folosesc prea des documente PDF \u00een loc de formate mai prietenoase pentru procesarea automat\u0103 - pentru c\u0103 sunt \u00een continuare legate de conceptul de pagin\u0103 tip\u0103rit\u0103 cu o dimensiune fizic\u0103 specific\u0103. Acest lucru se aplic\u0103 chiar \u0219i documentelor care, probabil, nu vor fi niciodat\u0103 tip\u0103rite (de exemplu, un fi\u0219ier PDF de documenta\u021bie a registrului de 8000 de pagini). Din aceast\u0103 perspectiv\u0103, utilizarea XML \u00een afaceri reprezint\u0103 \u00een esen\u021b\u0103 o manifestare a skeuomorfismului. Oamenii \u00een\u021beleg ideea metaforic\u0103 a paginii tip\u0103rite de dimensiuni limitate \u0219i \u0219tiu cum s\u0103 creeze procese de afaceri bazate pe documente tip\u0103rite. Dac\u0103 acesta este punctul dumneavoastr\u0103 de referin\u021b\u0103, documentele f\u0103r\u0103 o dimensiune fizic\u0103 limitat\u0103, care sunt u\u0219or de citit de ma\u0219ini - documentele XML - reprezint\u0103 o inova\u021bie, fiind \u00een acela\u0219i timp un analog familiar \u0219i confortabil al documentului. Totu\u0219i, acest lucru nu \u00eempiedic\u0103 p\u0103strarea unei metode eronate \u0219i exagerat de skeuomorfe de prezentare a datelor.<\/p>\n<p>P\u00e2n\u0103 \u00een prezent, singurele scheme XML, pe care le pot considera aplica\u021bii corecte ale acestui format, sunt XHTML \u0219i DocBook.<br \/>\n<br \/>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mailru\/blog\/475474\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u042f\u0437\u044b\u043a XML \u0431\u044b\u043b \u0438\u0437\u043e\u0431\u0440\u0435\u0442\u0435\u043d \u0432 1996 \u0433\u043e\u0434\u0443. \u0415\u0434\u0432\u0430 \u043e\u043d \u0443\u0441\u043f\u0435\u043b \u043f\u043e\u044f\u0432\u0438\u0442\u044c\u0441\u044f, \u043a\u0430\u043a \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0435\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0443\u0436\u0435 \u043d\u0430\u0447\u0430\u043b\u0438 \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e, \u0438 \u0434\u043b\u044f \u0442\u0435\u0445 \u0446\u0435\u043b\u0435\u0439, \u043a \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0435\u0433\u043e \u043f\u044b\u0442\u0430\u043b\u0438\u0441\u044c \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043e\u043d \u0431\u044b\u043b \u043d\u0435 \u043b\u0443\u0447\u0448\u0438\u043c \u0432\u044b\u0431\u043e\u0440\u043e\u043c. \u041d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435\u043c \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u043f\u043e\u0434\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0441\u0445\u0435\u043c XML, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043d\u0435 \u0434\u043e\u0432\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0432\u0438\u0434\u0435\u0442\u044c, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u0438 \u0441\u043e\u0431\u043e\u0439 \u043d\u0435\u0446\u0435\u043b\u0435\u0441\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u043e\u0435 \u0438\u043b\u0438 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 XML. \u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":52641,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-52640","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u042f\u0437\u044b\u043a XML \u0431\u044b\u043b \u0438\u0437\u043e\u0431\u0440\u0435\u0442\u0435\u043d \u0432 1996 \u0433\u043e\u0434\u0443.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/xml-prakticheski-vsegda-primenyaetsya-ne-po-naznacheniyu\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47XML \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0435 \u043f\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u042f\u0437\u044b\u043a XML \u0431\u044b\u043b \u0438\u0437\u043e\u0431\u0440\u0435\u0442\u0435\u043d \u0432 1996 \u0433\u043e\u0434\u0443.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/xml-prakticheski-vsegda-primenyaetsya-ne-po-naznacheniyu\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-11-12T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:00:25+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47XML este aproape \u00eentotdeauna folosit \u00een mod gre\u0219it | ProHoster","description":"Limbajul XML a fost inventat \u00een 1996.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/xml-prakticheski-vsegda-primenyaetsya-ne-po-naznacheniyu","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47XML \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0435 \u043f\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e | ProHoster","og:description":"\u042f\u0437\u044b\u043a XML \u0431\u044b\u043b \u0438\u0437\u043e\u0431\u0440\u0435\u0442\u0435\u043d \u0432 1996 \u0433\u043e\u0434\u0443.","og:url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/xml-prakticheski-vsegda-primenyaetsya-ne-po-naznacheniyu","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-11-12T21:00:00+00:00","article:modified_time":"2020-02-18T11:00:25+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"52640","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 04:19:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 11:11:32","updated":"2026-01-24 04:19:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/52640","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=52640"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/52640\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/52641"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=52640"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=52640"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=52640"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}