(opitah se da regisatriram prednija si posting, no ne mi razreshi... Sled njakolko tezki dni chovek moze da se "podhlyzne" po edin na pryv pogled logichen primer)
Така. Макар и синтактично правилен, примерът е некоректен и безсмислен. В случая е грешен, защото не дава отговор на първоначалния въпрос - какво е XML. Всъщност и двата примера - за байтовете и дискотеката, показват много ясно какво не е и как не трябва да се използва XML.
1. Примерът може да се използва за представяне на информацията в браузър или чрез друго средство, но XML не е притурка към HTML.
2. Примерът за дискотеката може да се съотнесе към примера с байтовете само ако премахнем елемента <byte>. Така както е, двата примера са различни. Т.е. става дума за поточно предаяване на информация, а не за формиране на структуира от данни. Тогава използването на XML е излишно.
Нека се представим, че искаме да използваме подобно решение за да прехвърлим някаква информация. На поточния принцип подаваме : има, няма, няма , има, има, има, няма............ Не ни интересува каква е структурата на цялата информация, важното е потокът да върви докато срещне EOF или нещо друго. Така може да се управлява една лампа в дискотеката и да и се казва кога да свети и кога не.
Идеята, че осемте бита са обедиенни в един байт е хубава, но по начина по който е представена се очаква, че приложението след парсера ще знае за какво точно става въпрос. Всъщност цялата задача по стуркториреането на информацията е прехвърлена на него. Т.е. това, което е след парсера трябва да брои всеки един бит, за да определи дали той е първия, четвъртия, седмия или осмия в байта. Това обесмисля цялата идея за XML, който е език за представяне на данните в точно структориран вид. Макар за човека да е ясно по презумпция, в примера никъде не се указва кой точно бит каква информация има.
Целта при използването на XML е слоят след парсера да знае колкото се може по-малко за XML документа. А не да очакваме от него да брои байтовете на конвейра за да знае, че първия и осмия са 1, а другите - 0. Целта на използването на XML е да му ко кажем точно и ясно.
Защото излиза, че XML е някаква извратена и ужасна идея за това как да напишем CSV файл, който да бъде няколкоо пъти по-голям от колкото трябва.
Нали си давате сметка, че същият резултат би се постигнал и със CSV, като битовете на всеки байт бъдат подредени един до друг, разделени със запетайки например, а байтовете се разделят с ; или с таб или с каквото и да било. Двата варианта са идентични, защото и в двата случая очакваме приложението да е наясно за какво става дума и да си свърши работата само.
Тогава защо е необходимо да създадем един голям и тежък файл в който само за да напишем осем цифри използваме голямо количество markup?
И кой ще плаща за дисково пространство и трафик, когато се окажем с купища такива тлъсти файлове?
С други думи, не е нужно да отключваме врата с теслата, ако имаме ключ за тази работа.
3. Та смисъслът на използването на XML е да предадем максимално структурата на данните. Така че де напълно ясно кое какво е. В примера за байтовете, трябва за всеки един бит да се разбира във самия файл кой по ред е и в кой байт. Така може да бъде открит веднага и точно този, който ни трябва. XML служи за това - да подреди информацията, така че тя да е лесно достъпна и да позволява различен вид обработка.
4. Аз бих представил примера с дискотеката така. Имаме определен брой, да кажем 8, лампички в различни цветове. Използвайки структура подобна на описана с байтовете можем да подредим състоянието на всяка от тях във всеки един момент. Така на нас ще ние необходима информация за това как ще изглежда "пакетът" от лампи във всеки един момент - коя ще е светнала и коя не. От това би излязъл интересен пример, но в момент няма време за него...
Това е моето си мнение. Любопитен съм да прочета и други...
|