Matn formatlari nima uchun kerak?
Matn formatlari ma'lumot saqlash uchun qulay, chunki ularni dasturlar va insonlar ham yaratishi va ishlov berishi mumkin.
Matn fayllarini (matn formatidagi fayllar) ko'plab matn muharrirlarida ochish, o‘qish va tahrir qilish mumkin.
Ko'plab dasturlarning sozlash fayllarida matn formati ishlatiladi, hatto ular sonlar va ikkilamchi tugmalar (ha / yo'q) ni o'z ichiga oladi.
Bu dasturlarni murakkablashtiradi, chunki matn ma’lumotlarini ichki formatga va orqaga tarjima qilish kerak, lekin bu dastur sozlamalarini qo'lda tahrirlash imkoniyatini beradi, dastur sozlash vositalaridan foydalanmasdan.
Hozir XML qaerda ishlatiladi?
XML IT sohasining turli sohalarida qo'llaniladi. Bu dasturlarning sozlash (konfiguratsiya) fayllari yoki ma'lumotlarni dasturlar orasida uzatish uchun ishlatiladigan fayllar bo'lishi mumkin. Java-da ishlatiladigan eng keng tarqalgan misollardan biri - bu Maven loyihasini yig'ish uchun avtomatlashtirish vositasini sozlashda.
XML hujjatining tuzilishi
XML hujjati fizik va mantiqiy tuzilmalarga bo'linadi. Fizik tuzilishiga ko'ra hujjat entitlardan (entities) iborat, har biri boshqa entitga murojaat qilishi mumkin.
Yagona ildiz elementi — hujjat entit. Entit hujjatning eng kichik qismi hisoblanadi. Barcha entitlar nomga ega va belgilarni o'z ichiga oladi.
Belgilar esa ikki turga ajratiladi: ma'lumot belgilar (character data) va belgilash belgilar.
Belgilar orasida:
- belgilar (tags), elementlar chegaralarini belgilaydi,
- e'lonlar va ishlov berish yo‘riqnomalari, shu jumladan ularning atributlari (attributes),
- entitlarga ishoralar,
- izohlar,
- "CDATA" sektsiyalarini o'rab olgan belgilar ketma-ketligi.
Mantiqiy tuzilishga ko'ra hujjat elementlar (elements), izohlar (comments), e'lonlar (declarations), entitlarga ishoralar (character references) va ishlov berish yo'riqnomalaridan iborat. Bularning barchasi hujjatda belgilash (markup) orqali tuzilgan.
Hujjatning barcha tashkil etuvchi qismlari prolog va ildiz elementiga bo'linadi. Ildiz elementi — kerakli qism, XML hujjatining mohiyatini tashkil qiladi, prolog bo'lmasligi mumkin. Ildiz elementi ichki elementlar, ma'lumot belgilar va izohlardan iborat bo'lishi mumkin. Hujjat elementlari ichki elementlariga to'g'ri kelishi kerak: ichiga kiradigan har qanday element, shu element ichida tugashi kerak.
Belgilar belgisi
Belgilash har doim < belgisi bilan boshlanadi va > belgisi bilan tugaydi.
< va > (burchak qavslar) belgilar bilan birga maxsus rol & (ampersand) belgisi ham mavjud. Elementlar, ishlov berish yo'riqnomalar va ba'zi boshqa ketma-ketliklar burchak qavslar bilan belgilangan. Ampersand esa matnni entitlar orqali o'zgartirishda yordam beradi.
XML e'lon qilish
XML e'lon qilishda hujjat yozish uchun ishlatilgan til versiyasi ko'rsatiladi. Xususiyat, XML e'lon qilish bilan hujjatni boshlashni talab qiladi, chunki til versiyasi hujjat mazmunini tushuntirishni belgilaydi.
Va agar tilning birinchi (1.0) versiyasida e'lon qilish majburiy bo'lmagan bo'lsa, yangi versiyalarda bu majburiy va e'lon yo'q bo'lsa, bu 1.0 versiyasi degan ma'noni anglatadi. E'lon qilishda hujjat kodlash ma'lumotlari ham mavjud bo'lishi mumkin.
Misol:
Belgilar (Tags)
Belgi (tag) — belgilash konstruktsiyasi, element nomini o'z ichiga oladi. Belgilar ochilayotgan (boshlang'ich) va yopilayotgan (oxirgi) bo'lishi mumkin. Shuningdek, bo'sh element belgisi mavjud, ular ochilayotgan va yopilayotgan bir necha birlashtirilgan.
Misollar:
Boshlang'ich belgi: <tag1>
Oxirgi belgi: </tag1>
Bo'sh element belgisi: <empty_tag1 />
Atributlar
XML elementlarining yana bir qismi bu atributlar. Elementda bir necha noyob atributlar bo'lishi mumkin. Atributlar element haqida ko'proq ma'lumot ko'rsatishga imkon beradi. To'g'riroq aytganda, atributlar elementlarning xususiyatlarini belgilaydi.
Atribut har doim "nom=qiymat" juftligi bo'ladi:
Belgida atribut misoli:
Atributning qiymati qo'shish ("") yoki yakka (') qo'shtirnoqlarida bo'lishi kerak. Atributlar faqat boshlang'ich belgida va bo'sh element belgilarida ishlatiladi.
Besh xizmat belgisini kodlash (<,>,’,”,&)
Shubhasiz, <, > va & belgilarini ma'lumot belgilarida va atributlar qiymatlarida ishlatish mumkin emas. Ularni ifodalash uchun maxsus ketma-ketliklar ishlatilishi kerak. Shu bilan birga, atributlar ichidagi apostrof va qo'shtirnoqlarni yozish uchun maxsus ketma-ketliklar ishlatiladi:
| Belgi | O'zgartirish |
|---|---|
| < | < |
| > | > |
| & | & |
| ' | ' |
| " | " |
Bundan tashqari, \ belgisini yozish uchun \\ ishlatish kerak.
CDATA Sektsiyasi
CDATA sektsiyasi matnning mantiqiy birligi emas. Ushbu sektsiya hujjatda sintaksis bizga belgilar ma'lumotlarni joylashtirishga ruxsat beradigan joyda uchraydi.
Sektsiya <![CDATA[ bilan boshlanadi va ]]> bilan tugaydi. Ushbu belgilash orasida belgilar ma'lumotlar joylashtiriladi va shu bilan <, > va & belgilar ularning bevosita shaklida ishlatilishi mumkin.
Izohlar
Izohlar (comment) hujjatning ma'lumot belgilariga tegishli emas. Izoh <!-- bilan boshlanadi va --> bilan tugaydi, izoh ichida -- belgilar ketma-ketligini ishlatish mumkin emas. Shuningdek, izoh ichida ampersand belgisi belgilash sifatida ishlatilmaydi.
Misol:
Ismlar
XML tilida barcha ismlar Unicode kodlashining harflarni o'z ichiga olishi, raqamlar (arab) nuqtalar, ikkitalar, defislar va pastki chiziqlar bilan iborat bo'lishi mumkin. Ismlar harf, ikkita yoki pastki chizik bilan boshlanishi mumkin. E'tibor bering, XML satrlari biror rejimda nom boshlanishi mumkin emas.
Misol
Java-klass va ushbu klassning obyektiga qaraylik. Keyin obyektni XML formatiga seriallashtirishga harakat qilamiz. Klass kodi:
public class Book {
private String title;
private String author;
private Integer pageCount;
private List<String> chapters;
public Book(String title, String author, Integer pageCount, List<String> chapters) {
this.title = title;
this.author = author;
this.pageCount = pageCount;
this.chapters = chapters;
}
// getterlar / setterlar
}
va obyektni yaratish:
Book book = new Book("My Favorite Book", "Amigo", 999, Arrays.asList("Chapter 1", "Chapter 2", "Chapter 3", "Chapter 4", "Chapter 5", "Chapter 6"));
Mana shunday Java-obyektining vakolatli XML ko'rinishi misoli, u 4 maydonga ega, ulardan biri kollektsiyani ifodalaydi (yuqoridagi Java kod):
<title>My Favorite Book</title>
<author>Amigo</author>
<pageCount>999</pageCount>
<chapters>
<chapters>Chapter 1</chapters>
<chapters>Chapter 2</chapters>
<chapters>Chapter 3</chapters>
<chapters>Chapter 4</chapters>
<chapters>Chapter 5</chapters>
<chapters>Chapter 6</chapters>
</chapters>
</Book>
XML Schema
XML Schema — bu XML hujjatining tuzilishini tavsiflovchi til. XML Schema spesifikatsiyasi W3C tavsiyasi hisoblanadi.
XML Schema XML hujjati qoidalarini belgilash uchun yaratilgan. Ammo eng qiziq narsa shundaki, XML Schema XML hujjatlarini ishlash uchun dasturiy ta'minot ishlab chiqishda ishlatilishi mumkin bo'lishi uchun yaratilgan, ya'ni biz XML hujjatining to'g'ri ekanligini dasturiy jihatdan tekshirishimiz mumkin.
XML Schema ni o'z ichiga oladigan fayl ".xsd" (XML Schema definition) kengaytmasiga ega. XML Schema dizayni bu ma'ruzadan tashqaridagi mavzudir, shuning uchun shunchaki buni bilib qo'ying.
GO TO FULL VERSION