Bu matn qalin shriftda yozilgan - bu noto’g’ri yozilgan elementdir.
Yaratilgan hujjatimiz XML sintaksisiga to’g’ri bo’lishi uchun
xml version= “1.0” ?>
deklarasiyasi o’zak elementdan oldin qo’yilishi lozim.
XML hujjatlarga izohlarni qo’shish HTML tilidagi kabi, ya’ni
XML hujjatlarda atribut sintaksisi quyidagicha yoziladi:
atribut1_nomi= “qiymati”
atribut2_nomi= “qiymati”
...
>
Element_mazmuni
Quyidagi XML hujjatini recipe1.xml deb saqlab, uni Internet Explorer yordamida ishga tushiramiz.
xml version= “1.0” ?>
Ovqat resepti
maydalangan
quruq poroshok
parchasi
suyuq
Maydalangan go’shtni quruq piyoz poroshogi bilan aralashtirib, 2 minut pishirib olasiz. ...
Tayyor ovqatni tarelkalarga solib, dasturxonga tortasiz
Quyidagi hujjat xatosini toping:
xml version= “1.0” ?>
Xato hujjat
Ven MarisonClassic form
16-mavzu. XML TEXNOLOGIYALARIDAN FOYDALANISH
XML hujjatdagi sxema deganimizda hujjat atributlari va elementlarini aniqlashda ularga qo’yiladigan qator cheklashlarni (ularning ketma-ketligi tartibi, elementlar ro’yxatini aniqlash) tushunar edik.
DTD (Document Type Definition – hujjat turini aniqlash) ham sxema bo’lib, ma’lumotlar almashinishida ularga qo’yiladigan cheklashlarni bildirib, hujjatlarda ishlatiladigan ma’lumotlar strukturasini nazorat qiladi.
Biz aytgan edikki, XML yaratilishida uning asosi sifatida SGML (Standart Generalized Markup Language – standartnыy obobщyeniy yazыk razmetki) tili aniqlangan. Xuddi shunday DTD ham SGML tili uchun yaratilgan. XML dastlab yaratilganda uni “DTD siz SGML” tili deb ham aytishgan.
DTD sxemasi – hujjat belgilashlarida atribut va elementlar joylashishida (raspolojeniye) va ketma-ketligida shablon vazifasini o’tadi.
XML hujjatini daraxtsimon struktura ko’rinishida tavsilashni bilamiz. Xudi shunday DTD strukturasini ham daraxtsimon kshrinishda tasvirlashimiz mumkin. Ammo bu ikki tasvirlashda ma’lum farqlar bor.
DTD strukturasi o’zicha elementlarni takrorlamaydi, ammo uning strukturasi XML hujjatining elementlarini takrorlaydi.
Quyidagi XML hujjatini o’rganib chiqaylik:
xml version= “1.0” ?>
For Immediate Release
All Potential Students
Devon Shepherd
Public Course offerings in August
ACME training public courses.
For more information, please visit
http://ACME-Train.com/unisersity
Instruction to XML
Advenced XML
XMetal Core Configuration
Bu misoldagi courses elementi o’zining course elementlariga ega, elementi bir qancha id va instructor atributlariga ega.
DTD elementlarining daraxtsimon ko’rinishida bu atributlar bir marta ko’rsatilib, masxux operator “+” bilan ko’rsatiladi, va bu atributlar bir turga aloqadorligini ko’rsatadi.
courses.xml faylining daraxtsimon ko’rinishi:
courses.xml fayli DTD strukturasining daraxtsimon ko’rinishi:
Bu yerda “+” operatori bir turdagi bitta yoki bir qancha elementlarning mavjudligini bildiradi.
DTD strukturasi asosiy elementlari turlarini tavsiflash sintaksisi
DTD sxemasidagi atribut va elementlar mazmunini tavsiflash ana shu atribut va element mazmunining modelini aniqlashni bildiradi.
Har qanday XML hujjati DTD sxemasida tavsiflanganda uning har bir elementining turini tavsiflash bilan to’ldiriladi.
Element turlarini tavsiflash quyidagi ko’rinishga ega:
O’zbekchasi:
Ishdan uyga qaytishda sut olishni unitmang
XML hujjatining oddiy elementi berilgan bo’lsin:
xml version= “1.0” ?>
Remember to by milk on the way home from work
Bu yerda note elementi faqat matndan iborat. Matn elementi DTD sxemasida #PCDATA maxsus termini bilan tavsiflanadi.
PCDATA – odatdagi matndan iborat ma’lumot bo’lib, XML parseri tomonidan to’g’ri o’qiladi.
Demak, sizning hujjatingizda #PCDATA so’zi uchrasa, bu hujjatdagi barcha matnga taalluqli deb hisoblanadi.
Agarda DTD hujjatdagi matn XML parseri tomonidan qayta ishlanishi lozim bo’lmasa, CDATA termini ishlatiladi.
DTD sxemasida struktura to’g’riligi nazorat qilinganligi uchun har bir mazmun modeli qoidasi mavjud.
Har bir element turli xil turga ega bo’lishi mumkin va DTD hujjatlarida turlicha tavsiflanadi.
DTD hujjatlarida ichki va tashqi sxemalar bo’lishi mumkin.
Eslatma: #PCDATA kalit so’zi DTD sxemalarida faqat katta harflar bilan yozidadi.
Quyida DTD sxemasi qo’llanilgan XML hujjati ko’rsatilgan:
xml version= “1.0” ?>
]>
Ishdan uyga qaytishda sut olishni unutmang
Bu misoldagi 1-qator odatdagi XML hujjat tavsifi.
2-qatorda XML hujjatni DTD sxemasi bilan bog’lash tavsifi keltirilgan. 2-qatordagi tavsif XML parseriga kvadrat qavs ichidagi barcha ma’lumotlar DTD ichki sxemasiga taaluqli ekanligini bildiradi.
3-qatorda note elementining turini aniqlash keltirilgan, xususan note elementi faqat matndan iborat.
Eslatma: DTD sxemasining DOCTYPE va ELEMENT kabi kalit so’zlari faqat katta harflar bilan yozidadi.
4-qator DTD ichki sxemasining yopilishini bildiradi.
5-qator note elementining mazmunidan iborat.
Agar element o’zida boshqa elementni saqlasa nima qilish kerak?
Masalan:
xml version=“1.0” ?>
On the way home from work
Bunday holda DTD sxemasini yaratish uchun XML hujjatining note elementi boshqa elementni saqlanishini ko’rsatish kerak:
xml version=“1.0” ?>
]>
On the way home from work
DTD sxemasida bo’sh elementni tavsiflash
Odatda bo’sh elementlar atributlarga qiymatlar berishda qo’llaniladi. Quyida XML hujjatida bo’sh elementni tavsiflash ko’rsatiladi:
xml version=“1.0” ?>
On the way home from work
Bu yerda number bo’sh element. Bu bo’sh element DTD sxemasida quyidagicha kzrsatiladi:
xml version=“1.0” ?>
]>
On the way home from work
3-qatorda note elementi o’zida boshqa number va message elementlarini saqlashi ko’rsatilgan.
Bunda “vergul” orqali elementlar ketma-ketligi ko’rsatiladi. Elementlar ketma-ketligi buzilsa xato hisoblanadi. EMPTY kalit so’zi elementning bo’sh ekanligini bildiradi.
DTD sxemasida ANY kalit so’zi
Ko’pgina hollarda Sizga ma’lumki aniq element bo’sh emas, ammo u qanday mazmun modeliga qo’llanilishi aniq emas. Ana shunday hollarda element ANY kalit so’zi orqali tavsiflanadi. Quyidagi XML hujjat berilgan bo’lsin:
xml version=“1.0” ?>
On the way home from work
note elementi ixtiyoriy turda ma’lumotlarni saqlashi uchun ANY kalit so’zidan foydalanamiz.
xml version=“1.0” ?>
]>
On the way home from work
3-qatorda note elementi ixtiyoriy qiymatni qabul qilishi ko’rsatilgan bo’lsa ham, XML hujjati to’g’ri bo’lishi uchun har bir element alohida tavsiflangan.
Eslatma. XML hujjatida DTD sxemasida tavsiflanmagan element nusxalaridan foydalanish mumkin emas.
Aralash mazmunli modellar
Shunday holatlar bo’lishi mumkinki, element turli turdagi elementlarni o’zida saqlashi mumkin. Bunday elementlar aralash mazmunli modellar deyiladi.
Quyida XML hujjatining o’zak elementi matn ma’lumotiga ega bo’lib, yana boshqa elementlarni ham o’zida saqlagan:
xml version=“1.0” ?>
This is an important note
On the way home from work
DTD sxemasida tavsiflaymiz:
xml version=“1.0” ?>
#PCDATA|number|message|date)*>
]>
This is an important note
On the way home from work
Bu yerda “|” belgisi “yoki” ma’nosini bildiradi. “*” esa, qavs ichidagi elementlar ixtiyoriy ishlatilishi yoki birorta marta ham ishlatilmasligi mumkin.
Shunga asosan quyidagi XML hujjat ham to’g’ri hisoblanadi:
xml version=“1.0” ?>
#PCDATA|number|message|date)*>
]>
This is an important note
Now we can no longer control
Stuff
On the way home from work
bur yerda ayrim elementlar bir necha marta ishlatilayapti, date elementi esa ishlatilmayapti.
Eslatma: note – «zametka» so’zini bildiradi.
Do'stlaringiz bilan baham: |