The source text is taken from here: http://xfront.com/xml-versus-data-binding/index.html
Роджер Л. Костелло/Roger L. Costello
XML-ді объектілік және процедуралық тілдермен салыстыру
xml тілдері (xslt, xml schema, xquery, т.с.с.) декларативті, яғни сипаттамалық емес. Керісінше, java, c++, python, php, және т.с.с объектіге бағытталған және процедуралық, яғни сипаттамалық емес).
Мәліметтер мен деректер типтерін xml-де мәліметтер құрылымдары мен деректер типтеріне объектіге бағытталған және процедуралық тілдерде салыстыру (байланыстыру) үшін көптеген құралдар жасалған және керісінше. Бұл деректерді байланыстыру деп аталады.
Бір дерек/өңдеу моделін немесе екеуін қолданасыз ба?
Бір модель: Кейбір адамдар барлық өңдеулерді xml тілдерін қолдану арқылы жүргізуге шақырады. Мысалы, деректерді xml, үрінде тасымалдаңыз, содан кейін оны xml schema қарсы тексеріп, содан кейін xslt және xquery көмегімен өңдеңіз.
Екі (немесе одан да көп) модель: Кейбір адамдар xml және объектілі және/немесе процедуралық тілдердің тіркесімін қолдайды. Мысалы, деректерді xml, түрінде тасымалдаңыз, содан кейін оны деректер құрылымына салу үшін деректерді байланыстыруды қолданыңыз, содан кейін бір немесе бірнеше нысанға бағытталған және/немесе процедуралық тілдерді қолданып барлық өңдеуді жасаңыз.
Бір дерек/өңдеу моделінің артықшылықтары (XML)
xml ден мәліметтер құрылымына объектілік және процедуралық тілдерде салыстыру стандарттармен реттелмейді. Мысалы xml schema спецификациясы оның деректер типтері java немесе c++. Демек, деректерді байланыстыратын құралдардың кейбірі толық емес және олардың картасы таза емес.
xml–ден объектіге бағытталған/процедуралық немесе керісінше картаны жасау, әдетте, көптеген api қоңырауларын және көптеген бағдарламаларды қамтиды. Осылайша, сіз шешуге тиісті мәселені шешу үшін код жазуға уақытыңызды жұмсамай, сіз бір жүйеден екіншісіне түрлендіруге арналған бағдарламалаудың айтарлықтай бөлігін жұмсайсыз. Бұл тиімді емес.
xml өзгерген кезде (мысалы, xml schema өзгереді), содан кейін сіздің объектілік және процедуралық кодтағы деректер құрылымдары өзгеруі керек. Бұл өте қиын және ұзақ болуы мүмкін.
Бірдей деректердің екі түрлі моделіне ие болу, олардың өзара байланысын түсіну және оларды синхронды ұстау үшін өзіңді ұйымдастыру – бұл сіз шешуі керек болатын мәселені шешудің күрделілігінен де, күрделілігінен де жоғары.
Димитре Новатчев былай деп жазды:
Менің жеке бақылауларым… деректерді xml-ден объектілік көрсетілімге түрлендіруге тура келсе, қанша қосымша ресурстар қажет екендігі туралы мәлімдемелерді қолдайды. Бұл жұмысқа бүкіл құрылыс жұмыстарының 70%-80%-ы кіре алады. Жақында осындай жұмысты аяқтағаннан кейін менде тек xml-ді ұсынуды қолдануды жөн көрдім, нәтижеге 3-4 есе аз уақытта қол жеткізер едім.
Мәліметтермен алмасу үшін қолданылатын формат (xml) басқа тараптармен келісу қажет болғандықтан бірінші болып табылады, сондықтан оны өңдеу үшін негізгі формат ретінде қолдану мағынасы бар.
тілдерімен байланыстыру жеңілдететін артықшылықтар береді. Мысалы, бірнеше жыл бұрын мен эксперимент жасадым: есепті шығару үшін xslt жаздым, содан кейін сол мәселені java. арқылы шештім. Маған 10 жол xslt және 100-ден астам java. қажет болды. Бір эксперименттен көп нәрсе жарқырамайды, бірақ сол уақыттан бері менің барлық тәжірибелерім бұл тәжірибені күшейтеді.
Ескерту: технологиялардың xml тобына сүйену объектіге бағытталған және процедуралық тілдер енді қолданылмайды дегенді білдірмейді. Керісінше, оларды төменгі деңгейге итермелейді. Мысалы xml schema валидаторы java немесе c++ тілінде орындалуы мүмкін. xslt процессоры java немесе C++ тілінде орындалуы мүмкін. Сонымен, сіз – бағдарламашы – xml деңгейінде жұмыс істейсіз, ал xml өңдеудің астында өңдеуді жүзеге асыратын объектілік және процедуралық тілдерде жазылған құралдар бар.
Orbeon Forms-те xml технологиясының шеңберінде жұмыс істеудің керемет мысалы келтірілген. Ол xforms, xml schemas, дерекқорының көмегімен eXist xml мен тұрақты сақтауды біріктіреді. Сорғыштың астында бағдарламашы ешқашан айналыспайтын javascript және ajax, топтамалары орналасқан.
Екі (немесе одан да көп) деректерді өңдеудің/өңдеу модельдерінің артықшылықтары
XML-де емес, объектіге бағытталған немесе процедуралық тілде өңдеудің кейбір тиімділіктері болуы мүмкін.
Кейбір бағдарламашылар xslt сияқты функционалды тілдерде жұмыс жасаудан гөрі, мәліметтер құрылымымен жұмыс жасауды ыңғайлы етеді.
Ризашылық
Осы құжатқа енгізгені үшін келесі адамдарға рахмет:
- Roger Costello
- Dave Czulada
- Mukul Gandhi
- Rick Jelliffe
- Michael Kay
- Robert Koberg
- Boris Kolpackov
- Jack Lindsey
- Dimitre Novatchev
- Bryan Rasmussen
- Dennis Sosnoski
Соңғы жаңарту: 2014 жылғы 27 қараша