XMLning paydo bolgan yilini 1996 yil deb hisoblasa ham boladi. Hammasi 1986 yilda paydo bolgan SGML tilidan boshlanadi. Obыchnыy aksentirovannыy vыdelennыy i aksentirovannыy vыdelennыy
SGML (Standard Generalized Markup Language — umulashgan standart belgilash tili) belgilash tillarini xosil qiluvchi meta-til sifatida paydo bolgan.
SGML boshqa belgilash tillarini yaratishda keng qollaniladi.
Aynan shu til yordamida gipertekst hujjatlarni belgilash tili – HTML ni yaratishda ishlatilgan.
XML (eXtensible Markup Language — kengaytirilgan belgilash tili) — Butun dunyo orgimchak tori Konsorsiumi tomonidan tavsiya etilgan, strukturalangan malumotlarni saqlashda, matn hujjatlarni shakllantiruvchi til. Shuningdek dasturlar aro malumot almashishda ham ishlatilishi mumkin.
XML yaratishdan maqsad strukturalangan malumotlarni har-xil tizimlar orasida internet orqali ozaro malumot almashishda mutanosiblikni ta’minlash bolgan.
XML tili hamHTML tiliga oxshash til xisoblanadi. HTML dan farqli tomoni shundaki, XML da dasturchi ozining shaxsiy teglarini yaratadi va ular orasiga malumotlar joylashtiradi. XML-teglar harflar katta kichikligini farqlaydi. HTML teglari hujjatni ekranda korinishini ifodalaydi. XML teglari hujjatdagi malumotlarni tavsiflash uchun ishlatiladi. Undan tashqari XML yordamida yangi teglarni yaratish mumkin. XMLda malumotlar tuzilmaviy holda saqlanadi. XML asosan malumotlar almashinuvida kop ishlatiladi, chunki XML platformadan mustaqil bolib, HTTP orqali ishlashi juda qulay.
Quyida XMLda tuzilgan dastur bilan tanishamiz:
Bu dastur bloknotga yoziladi va
Buni quyidagicha qisqartiriladi:
XML hujjatlar turi
Standart boyicha togri tuzilgan ikki xil darajadagi XML hujjatlar aniqlangan:
Togri tuzilgan (Well-formed). Togri tuzilgan hujjat XML sintaksisining barcha umumiy qoidalarga mos keladi. Masalan, XML-hujjatning ochilgan tegi oziga mos yopilgan tegiga ega bolmasa, notogri tuzilgan hujjat hisoblanadi. Notogri tuzilgan hujjat XML-hujjat hisoblanmaydi. Bu holatda XML-protsessor fatal xatolikni keltirib chiqarishi kerak.
Ishonchli (Valid). Ishonchli hujjat qoshimcha yana semantik qoidalarga ham mos kelishi kerak. Bu foydalanuvchi tomonidan oldindan aniqlangan tashqi qoidalarga (masalan, struktura va matni) mos kelishi yanada jiddiyroq tekshiruvdan otkazilgan hujjat. Odatda bunday qoidalar hujjatning strukturasi, elementlari, atributlari va b. aniq yozib chiqilgan maxsus sxema – fayllarda saqlanadi.
XML sintaksisi
Bu bolimda faqat togri tuzilgan XML-hujjatlar sintaksisi haqida soz yuritiladi.
XML – ixtiyoriy malumotni ozida saqlashga moljallangan matn shaklidagi ierarxik struktura.
Bunday struktura tashqi korinishidan elementlar daraxti tarzida tasavvur etilish mumkin. XML elementlari teglar tarzida aniqlanadi. Misol tarzida XML yordamida belgilangan oddiy kulinariya retseptini korishimiz mumkin:
XML e’lonlar
XML-hujjatning birinchi satri XML e’lon deyiladi (XML declaration). Bu zarur bolmagan satrda XML standart versiyasi va simvollar kodirovkasi e’lon qilinadi.
XML-protsessor albatta UTF-8, UTF-16 yunikod-kodirovkalarni tanishi talab qilinadi. Boshqa keng ishlatiladigan ISO/IEC 8859 standartga asoslangan Windows-1251, KOI-8 ruscha kodirovkalarni ham tanishi mumkin.
Asosiy element
Eng muhim sintaksik talab – hujjat faqat bitta asosiy elementga (root element) ega bolishi kerakdligidan iborat.
Bu hujjatning matni va barcha boshqa malumotlari ochilgan va yopilgan asosiy teg orasida joylashishini anlgatadi.
Quyidagi kelgirilgan misoldagi hujjat togri tuzilgan XML-hujjat hisoblanmaydi:
Kommentariy
Daraxning ixtiyoriy joyida kommentariy elementini joylashtirish mumkin.
XML-kommentariy simvollar bilan tugagan oraliqda joylashtirilishi mumkin. Ikkita defis belgisi (--) kommentariy ichiga joylashtirilishi mumkin emas.
Kommentariy ichiga joylashtirilgan birorta ham teg ishlamaydi.
Teglar
XML-hujjatning qolgan qismi ichma-ich joylashgan elementlardan iborat boladi. Ularning ba’zilarining ichida atributlari bolishi mumkin.
Element odatda ochilgan va yopilgan teglar oraligidagi matn yoki boshqa elementlardan iborat boladi. Ochilgan element burchak qavslarga oralgan element nomidan
Element nomi va atributlari nomida probel ishlatilishi mumkin emas. Lekin element nomi XML-hujjat qollab quvvatlaydigan ixtiyoriy kodirovkadagi tilda yozilishi mumkin.
Element matni (content) ochilgan va yopilgan teg oraligidagi ixtiyoriy matn va jolashtirilgan boshqa elementlardan iborat bolishi mumkin.
Elementning matnidan tashqari ochilgan tegida, element nomidan keyin, atribut nomi=qiymati juftligidan iborat bolgan atributi ham bolishi mumkin. Atribut qiymati doimo qosh tirnoqqa olinib yoziladi.
Yuqorida keltirilgan misoldagi «ingredient» elementining «3» va «stakan» qiymatli ikkita amount va unit atributlari bor ekanligi ma’lum boladi.
Odiy tekstli matndan tashqari boshqa elemntlar ham bolishi mumkin:
Bu yerda «instructions» elementi ozida uchta «step» elementlarini saqlaydi.
XML ozida bir birini yopib yuboradigan elementlarni ishlatishga yol qoymaydi. Quyidagi misolda notogri XML-hujjat korsatilgan. Bu yerda «em» va «strong» elementlar bir birini ozaro yopib yuborayapdi.
Quyida bosh elementning uch xil korinishi ishlatilgan:
Maxsus simvollar
XML-hujjatda maxsus ishlatiladigan simvollar aniqlangan.
Maxsus simvollar boshqa simvollardan oldidan ampersend belgisi (&) va ortidan keyin nuqta vergul (;) qoyib ajratiladi.
Oldindan aniqlangan maxsus simvollar & (&), < (<), > (>), ' (') i " (") dan iborat. – uzun probelni anglatadi.
Ixtiyoriy simvolni uning yunikod kodini (yunikod; tarzida) yozib ham korsatish mumkin:
Afzalliklari
XML yunikodda ishlaydi;
XML formatda yozuvlar, royxatlar va daraxtlar kabi malumotlar strukturalarni ishlatish mumkin;
XML qat’iy aniqlangan strukturaga ega. Shu bilan birga ishlatishda oddiy, samarali va ziddiyatsiz bolib qoladi. Shu bilan birga har xil uslublarni ishlatishdan chegaralanmagan (masalan, qiymatlarni teg parametrlariga yoki teg tanasiga joylashtirilib, malumotlarni modellashtirish mumkin, teglarni nomlashda turli xil tillardan foydalanish mumkin);
XML — xalqaro standartlarga asoslangan format;
XML ierarxik strukturasi amalda ixtiyoriy tipdagi hujjatlarni yozish imkonini beradi, faqat audio, video va multimedia potoklarni, rastrli suratlarni, tarmoqli malumotlar strukturasini va ikkilik malumotlardan tashqari;
XML litsenziyalash va har-xil cheklovlardan xoli bolgan oddiy tekst;
XML hech qanday platformalarga bogliq emas;
Binar formatlardan farqli olaroq, XML ob’ektni ta’riflaydigan nomlar, tiplar va sinflar haqida meta malumotlarga ega, unga kora ixtiyoriy ilova noma’lum strukturali hujjat bilan ishlayverishi mumkin (maslan, dinamik interfeyslarni qurishda);
XML barcha zamonaviy dasturlash tillari uchun sintaksik analizatorga (parserga) ega;
XMLda brauzerlarda, operatsion tizimlarda, veb-serverlarda amalga oshirilgan XSLT ozgarish standart mexanizmiga ega;
XML zamonaviy qurilmalarda apparat, mikrodastur va dastur quyi darajasida qollab quvvatlanadi.
Kamchiliklari
XML sinteksisida keragidan ortiqchalik bor.
XML-hujjat olchami xuddi shu malumotlarni binar shaklidan sezilarli darajada (10 baravar) katta.
XML-hujjat olchami xuddi shu malumotlarni axbort uzatishning alternativ matn formatlari shaklidan (masalan JSON[2], YAML) katta.
XMLning keragidan ortiqcha sintaksisi ilovani ishlatishning samaradorligiga ta’sir qiladi. Malumotlarni saqlash, qayta ishlash va uzatish narxi oshib ketadi.
XML maydonlar, sinflar nomi, strukturalarning ichma ich joylashuvi kabi metamalumotlarni ozida jamlagan. Shu bilan birga XML – ochiq tizimlarning ozaro muloqot tili hamdir. Tizimlar orasida kopsonli bir xil tipdagi (strukturali) malumotlarni uzatilganda, har safar metamalumotlarni takroran uzatishdan ma’no yoq. Chunki bunday malumot XMLning har bir nus’hasi ichida bor.
Kop sonli masalalar uchun XMLning butun boshli sintaksisining barcha kuchini ishlatishning keragi yoq. Kopincha oddiyroq biror qismidan foydalanilsa yetarli.
Modellashtirishi bitta yechimga ega emas.
XML da modellashtirishning umumiy kelishilgan yagona uslubi yoq. Aksincha relyatsion va ob’ektga yonaltirilgan modellarda bunday vositalar ishlab chiqilgan va tizimli yondoshuv va tizimli tahlilda relyatsion algebraga tayanadi.
Tilning ota moslashuvchanligi va qat’iy cheklovlarning yoqligi natijasida, bitta struktura kop usulda taqdim etilishi mumkin. Masalan, bir xil qiymat teg atributi yoki teg tanasi tarzida yozilishi mumkin.
yoki yoki 1
XML tiliga malumotlar tipini qollab quvvatlashni kirmaydi. Unda malumotlarni butun son, satr, sana, mantiqiy kabi tiplarga qat’iy ajratish yoq.
XML tavsiya qiladigan malumotlarning ierarxik modeli, relyatsion model va ob’ektga-yonaltirilgan graflar va tarmoq modellariga nisbatan chegaralangan.
Ierarxik malumotlar ifodasi (masalan graflar) qoshimcha harakatlarni talab qiladi.
XML ismlar makonidan foydalanish va ularni XML-parserlarda qollash murakkab vazifalardan.
Inson tomonidan oqilishi ancha qulay bolgan, XMLga oxshash imkoniyatlarga ega bolgan, malumotlarning boshqa tekst formatlari mavjud (YAML, JSON, SweetXM, XF).
XMLni WWW internet tarmogida aks ettirish
XML-hujjatni internet brauzerlarda foydalanuvchi oqiy olishi uchun, uni ozgartirishning uch xil usuli keng tarqalgan:
CSS stillarni qollash;
XSLT ozgarishlarni tatbiq qilish;
Ixtiyoriy dasturlash tilida XML-hujjatga ishlov berish dasturini tuzib chiqish.
CSS yoki XSL ishlatilmasa, XML–hujjat kopchlik veb-brauzerlarda odiy tekst bolib korinadi.
Internet Explorer va Mozilla Firefox kabi ba’zi brauzerlar XML-hujjat strukturasini daraxt korinishida korsatadi.
CSS stillarni tatbiq qilish
Jarayon xuddi HTML-hujjatni aks ettirish uchun CSS stillarni qollagan bilan bir xil.
XML-hujjatni brauzerda aks ettirishda CSS ni qollash uchun uchun, hujjat ozida stillar jadvaliga korsatkich havolasini saqlashi kerak boladi. Masalan:
XSLT ozgarishlarni tadbiq etish
XSL – XML-hujjat malumotlarini qanday shakllantirish yoki ozgartirishni aniqlab beradigan texnologiya hisoblanadi.
Hujjat brauzerda aks ettirishga yaroqli formatga ogiriladi.
XSL texnologiya eng kop brauzerlarda qollaniladi, lekin XSL yordamida ixtiyoriy boshqa formatlarga, masalan VRML, PDF tekst formatlariga ham ogirish mumkinligini unutmaslik kerak.
XSL transformatsiya (XSLT) vazifasini bermoq uchun, tarmoqning mijoz tomonida XMLning quyidagi korinishdagi instruksiyasi bolishi talab qilinadi;
XML lugati
XML oziga xos abstrakt til bolgani uchun, XML lugati ishlab chiqilgan.
Mazkur lugat dasturchilarga teglar nomi va ularning atributlarining cheklangan toplamini ishlatishga kelishish imkoniyatini beradi.
XHTML – kopchilik brauzerlar tushunadigan, ana shunday ilk lugatlardan biri hisoblanadi.
XHTML dan kopincha CMS kontentlarini saqlash va taxrirlashda foydalaniladi.
Malumotlarni uzatishda ishlatiladigan CommerceML, xCBL va cXML kabi tijorat lugatlariyam mavjud.
Bundan tashqari, insonlarga moljallanmagan va ancha murakkab SOAP malumotlarni uzatish protokoli kabi maxsus lugatlar ham ishlab chiqilgan.
Axborot olamida ozaro XML koriniishidagi malumotlar almashinishi soni ortib borishi bilan, saqlanadigan XML-hujjatlar hajmi ham tez sur’atlarda osib bormoqda.
Kopgina veb-saytlar malumotlarni saqlanadigan joyda XML dan foydalanadilar. saqlanayotgan malumot foydalanuvchilarga korsatilishidan oldin HTML yoki XHTML ozgartiriladi. Microsoft InfoPath va W3C XForms kabi dasturiy mahsulot va texnologiyalarning yangi avlodlari Microsoft Access yoki SQL Server larni ozining malumotlarni saqlash joyi sifatida tanlab, XML-malumotlar bilan ishlashni boshlayapdilar.
Shuningdek, ruxsatsiz foydalanishdan muxofazalangan konfidensial malumotlarni saqlashda kopincha XML dan foydalaniladi.
Malumotlarni XML kornishida saqlashning ozi kifoya qilmaydi, shuningdek malumotlar xavfsizligi va kengayishini ham tadbirini qilib borish lozim.
XML malumotlarni saqlash joyi
XML korinishidagi malumotlarni saqlash haqida gap ketganda, ish samarasi muhim omillardan biri hisoblanadi.
Agar XML hujjat oddiy matnli hujjat sifatida saqlanadigan bolsa, qanday qilib unga samarali ishlov berishni ta’minlash mumkin?
Saqlanayotgan malumotlar hajmi gigabaytlar bilan olchanganda, xotirada butunlay joylashadigan hujjatning ob’ekt modelini (DOM) hosil qilish samarasiz hisoblanib, ozgacha yondashuvlarni izlash kerak boladi.
Saqlanayotgan XML malumotlar hajmini osib borishi bilan, katta hajli malumotlar orasidan kerakligini izlab topish samarasini oshirish yanada muhimroq ahamiyat kasb etayapdi.
XML malumotlarni saqlashda qanday usul qollanishidan qat’iy nazar, malumotni izlab topish tezligini oshirish uchun, ularni indekslash zarurligi yaqqol ma’lum.
Saqlanayotgan malumotlar orasidan biror-bir toplamni ajratib olish amaliyoti kop qollaniladi.
Internet tarmogida ishlayotganda, malumot almashish tezligi muhim ahamiyatga ega. XML korinishdagi malumotlar bazasidan foydalanilganda, bunday malumotlar bazasi kerakli tezlikni ta’minlab bera oladimi?
Bundan tashqari XML malumotlar bazasi yetarlicha ishonchli ishlashi talab qilinadi.
XML va relyatsion malumotlar
XML dan zamonaviy malumotlar bazasida foydalanish masalasiga otishdan avval, relyatsion va XML malumotlar strukturasini qisqacha solishtirib chiqamiz.
Relyatsion malumotlar bazasida axborot ustun va satrlardan iborat jadvallarda saqlanadi. Ustunlarda jadvalning barcha yozuvlari boyicha bir xil korinishdagi malumotlar saqlanadi. Jadvalning har-bir yozuvi satr korinishida taqdim etiladi.
Jadvaldagi satrlar tartibi malumotlarning hech qanaqa tartibi bilan bogliq emas. Aksincha, XMLda hujjatning joriy ichki tartibi XPath ga oxshash funksiyalar qaytargan position() malumotlarga oz ta’sirini otkazadi.
Faqat eng sodda relyatsion malumotlargina bitta jadvalda saqlanishi mumkin. Odatda relyatsion malumotlar bazasi murakkab mantiqiy boglanishlar bilan ozaro boglangan jadvallardan iborat boladi.
Har xil jadvallardagi malumotlar ozaro kalit maydonlar bilan boglanadi.
Odatda bunday kalit maydon sifatda yozuvning ID nomerli maydoni qatnashishi mumkin.
Malumotlar orasidagi boglanish "birga-bir" (masalan, bitta farzandning bitta otasi boladi), "birga-kop" (masalan, bitta otaning bir nechta farzandi bolishi mumkin), "kopga-kop" (masalan, bitta tovar bir nechta buyurtmalarda bolishi va bitta buyurtmada har xil tovar bolishi mumkin) tarzida bolishi mumkin.
Har qanaqa bunday boglanishlar malumotni bir-nechta ozaro bogliq jadvallarda bolib saqlanishidan kelib chiqadi.
XPath, DOM yoki XML Infoset malumotlar modelidan korinib turganidak, ichki ierarxiyaga ega bolgan XML-hujjatlardan farqli olaroq, relyatsion malumotlar bazasi ierarxiyaga ega emas.
XML malumotlar quyidagi misoldan korinib turganidek ichki tartibga ega:
XMLning ichki ierarxiyasi XML–hujjatni togri tuzilganligini aniqlaydigan sharti hisoblanadi.
Shu kabi oddiy malumotlarni relyatsion malumotlar bazasida saqlash ularning tartibini yoqolishiga olib keladi.
Indekslar
Hujjatlarni saqlaydigan joyi uchun orinli bolgan yana bir masala – bu sorovlardir. Saqlanayotgan barcha malumotlar ichidan faqat ma’lum bir qismini ajratib olish sorovlar shaklida amalga oshiriladi. Sorovni amalga oshirish uchun, malumot soralayotgan atributi boyicha indekslangan bolishi kerak.
Masalan, agar hujjatlarning katta kolleksiyasi ichidan, ma’lum avtor tomonidan yozilgan barcha hujjatlarni tezda ajratib olish zarur bolsa, buning uchun malumotlarning avtori atributi boyicha indekslash kerak boladi.
XML va malumotlar bazasi
Relyatsion ma’luotlar bazasi – malumotlarni saqlashning mashxur usullaridan biri. Bunday usul uzoq vaqtdan beri strukturalangan malumotlarni saqlashda izchil ishlatilib, bu vaqt mobaynida ancha mukammallashtirilgan. Kop sonli dasturchilar ulkan hajmdagi malumotlarni saqlashda aynan shu malumotlar bazasidan foydalanishi ham bejiz emas. Shu sabablarga kora XML va relyatsion malumotlar bazasini boshqarish tizimini birgalikda ishlatish mumkin boladi.