Penerangan data menggunakan XML. XML - Sintaks

Kami sekali lagi meneruskan kajian XML kami dan dalam artikel ini kami akan berkenalan dengan binaan XML seperti arahan pemprosesan, ulasan, atribut dan lain-lain Elemen XML. Elemen ini adalah asas dan membolehkan anda secara fleksibel, mengikut piawaian, menanda dokumen yang mempunyai sebarang kerumitan.

Kami telah membincangkan sebahagiannya beberapa perkara, seperti teg XML, dalam artikel sebelumnya "". Sekarang kita akan menyentuh topik ini sekali lagi dan menelitinya dengan lebih terperinci. Ini dilakukan secara khusus untuk memudahkan anda mendapatkan gambaran penuh binaan XML.

Elemen XML. Elemen XML kosong dan tidak kosong

Seperti yang dinyatakan dalam artikel sebelumnya, teg dalam XML bukan sahaja menandakan teks, seperti yang berlaku dalam HTML, tetapi menyerlahkan elemen individu(objek). Seterusnya, elemen menyusun maklumat secara hierarki dalam dokumen, yang seterusnya menjadikannya unit struktur utama bahasa XML.

Dalam XML, elemen boleh terdiri daripada dua jenis - kosong dan tidak kosong. Elemen kosong tidak mengandungi sebarang data, seperti teks atau binaan lain. Tidak seperti elemen kosong, elemen bukan kosong boleh mengandungi sebarang data, seperti teks atau elemen dan binaan XML lain. Untuk memahami perkara di atas, mari lihat contoh elemen XML kosong dan tidak kosong.

Elemen XML kosong

Unsur XML bukan kosong

Kandungan unsur...

Seperti yang dapat kita lihat daripada contoh di atas, perbezaan utama antara elemen kosong dan tidak kosong ialah ia terdiri daripada satu tag sahaja. Di samping itu, ia juga perlu diperhatikan bahawa dalam XML semua nama adalah sensitif huruf besar. Ini bermakna bahawa nama myElement, MyElement, MYELEMENT, dll. berbeza antara satu sama lain, oleh itu masa ini Perlu diingat dengan segera untuk mengelakkan kesilapan pada masa hadapan.
Jadi, kami mengetahui unsur-unsurnya. Sekarang mari kita beralih ke perkara seterusnya seperti organisasi logik dokumen XML.

Organisasi logik dokumen XML. Struktur pokok data XML

Seperti yang anda ingat, binaan utama bahasa XML ialah elemen, yang boleh mengandungi binaan bersarang lain dan dengan itu membentuk struktur hierarki pemandangan pokok. Dalam kes ini unsur induk akan menjadi akar, dan semua kanak-kanak lain akan menjadi dahan dan daun pokok XML.

Untuk memudahkan pemahaman di atas, mari kita lihat gambar berikut dengan contoh.

Seperti yang kita dapat lihat, menyusun dokumen XML sebagai pokok adalah struktur yang agak mudah untuk diproses. Pada masa yang sama, kerumitan ekspresif pokok itu sendiri agak hebat. Ia adalah perwakilan pokok yang paling banyak dengan cara yang terbaik penerangan tentang objek dalam XML.

Atribut XML. Peraturan untuk menulis atribut dalam XML

Dalam XML, elemen juga boleh mengandungi atribut dengan nilai yang diberikan kepada mereka, yang diletakkan dalam satu atau petikan berganda. Atribut untuk elemen ditetapkan seperti berikut:

DALAM dalam kes ini atribut dengan nama "atribut" dan nilai "nilai" telah digunakan. Perlu diperhatikan dengan segera bahawa atribut XML mesti mengandungi beberapa nilai dan tidak boleh kosong. Jika tidak, kod itu akan menjadi salah dari sudut pandangan XML.

Ia juga bernilai memberi perhatian kepada penggunaan tanda petikan. Nilai atribut boleh disertakan dalam petikan tunggal atau berganda. Di samping itu, ia juga mungkin untuk menggunakan beberapa petikan di dalam yang lain. Untuk menunjukkan, pertimbangkan contoh berikut.

Sebelum kita melihat binaan XML yang lain, ia juga perlu diperhatikan bahawa apabila mencipta atribut, aksara khas seperti ampersand "&" atau kurungan sudut " tidak boleh digunakan sebagai nilai.<>" Aksara ini dikhaskan sebagai aksara kawalan (“&” ialah entiti, dan “<» и «>" buka dan tutup tag elemen) dan tidak boleh digunakan dalam " bentuk tulen" Untuk menggunakannya, anda perlu menggantikan aksara khas.

Arahan pemprosesan XML (arahan pemprosesan). pengisytiharan XML

XML mempunyai keupayaan untuk memasukkan arahan dalam dokumen yang membawa maklumat khusus untuk aplikasi yang akan memproses dokumen tertentu. Arahan pemprosesan dalam XML dicipta seperti berikut.

Seperti yang dapat dilihat daripada contoh di atas, dalam arahan XML pemprosesan adalah seperti berikut: petikan sudut dengan tanda tanya. Ini agak seperti biasa yang kami lihat dalam pelajaran PHP pertama. Bahagian pertama arahan pemprosesan menentukan aplikasi atau sistem yang bertujuan untuk bahagian kedua arahan ini atau kandungannya. Walau bagaimanapun, arahan pemprosesan hanya sah untuk aplikasi yang dialamatkan. Contoh arahan pemprosesan boleh menjadi arahan berikut.

Perlu diingat bahawa XML mempunyai binaan khas yang hampir sama dengan arahan pemprosesan, tetapi ia sendiri bukanlah satu. Ia mengenai tentang pengisytiharan XML yang menyampaikan kepada perisian pemprosesan beberapa maklumat tentang sifat dokumen XML, seperti pengekodan, versi bahasa di mana ia ditulis dokumen ini dan lain-lain.

Seperti yang anda boleh lihat daripada contoh di atas, pengisytiharan XML mengandungi apa yang dipanggil pseudo-atribut, yang hampir sama dengan atribut biasa yang kita bincangkan di atas. Hakikatnya, mengikut definisi, pengisytiharan XML dan arahan pemprosesan tidak boleh mengandungi atribut, jadi pengisytiharan ini dipanggil pseudo-atribut. Ini wajar diingati untuk masa hadapan bagi mengelakkan pelbagai kesilapan.

Memandangkan kita telah berurusan dengan pseudo-atribut, mari kita lihat apa yang mereka maksudkan.

  • Pengekodan – bertanggungjawab untuk pengekodan dokumen XML. Biasanya pengekodan UTF8 digunakan.
  • Versi – versi bahasa XML di mana dokumen ini ditulis. Biasanya ini Versi XML 1.0.

Nah, sekarang mari kita beralih ke bahagian penutup artikel dan pertimbangkan binaan XML seperti bahagian komen dan CDATA.

Adakah kamu tahu, Apakah kepalsuan konsep "vakum fizikal"?

Vakum fizikal - konsep fizik kuantum relativistik, yang bermaksud yang lebih rendah (asas) keadaan tenaga medan terkuantum yang mempunyai momentum sifar, momentum sudut dan nombor kuantum lain. Ahli teori relativistik memanggil vakum fizikal ruang yang sama sekali tidak mengandungi bahan, dipenuhi dengan medan yang tidak boleh diukur, dan oleh itu hanya khayalan. Keadaan sedemikian, menurut relativis, bukanlah kekosongan mutlak, tetapi ruang yang dipenuhi dengan beberapa zarah hantu (maya). Relativistik teori kuantum fields menyatakan bahawa, selaras dengan prinsip ketidakpastian Heisenberg, maya, iaitu, jelas (kelihatan kepada siapa?), zarah sentiasa dilahirkan dan hilang dalam vakum fizikal: apa yang dipanggil ayunan medan titik sifar berlaku. Zarah maya vakum fizikal, dan oleh itu sendiri, mengikut definisi, tidak mempunyai sistem rujukan, kerana jika tidak, prinsip relativiti Einstein, di mana teori relativiti berasaskan, akan dilanggar (iaitu, sistem pengukuran mutlak dengan rujukan kepada zarah vakum fizikal akan menjadi mungkin, yang seterusnya akan dengan jelas menyangkal prinsip kerelatifan yang berasaskan SRT). Oleh itu, vakum fizikal dan zarahnya bukanlah unsur-unsur dunia fizikal, tetapi hanya unsur-unsur teori relativiti yang tidak wujud dalam dunia sebenar, tetapi hanya dalam formula relativistik, dengan itu melanggar prinsip kausalitas (ia timbul dan hilang tanpa sebab), prinsip objektiviti (zarah maya boleh dipertimbangkan, bergantung pada keinginan ahli teori, sama ada yang sedia ada atau tidak), prinsip kebolehukur fakta (tidak boleh diperhatikan, tidak mempunyai ISO sendiri).

Apabila seorang atau ahli fizik lain menggunakan konsep "vakum fizikal," dia sama ada tidak memahami kemustahilan istilah ini, atau tidak jujur, sebagai penganut ideologi relativistik yang tersembunyi atau terang-terangan.

Cara paling mudah untuk memahami kemustahilan konsep ini adalah dengan beralih kepada asal-usul kejadiannya. Ia dilahirkan oleh Paul Dirac pada tahun 1930-an, apabila menjadi jelas bahawa menafikan eter dalam bentuk tulennya, seperti yang dilakukan oleh seorang ahli matematik yang hebat tetapi seorang ahli fizik biasa-biasa sahaja, tidak mungkin lagi. Terlalu banyak fakta yang bercanggah dengan ini.

Untuk mempertahankan relativisme, Paul Dirac memperkenalkan konsep afizikal dan tidak logik tenaga negatif, dan kemudian kewujudan "laut" dua tenaga mengimbangi satu sama lain dalam vakum - positif dan negatif, serta "laut" zarah yang mengimbangi setiap satu. lain - maya (iaitu, jelas) elektron dan positron dalam vakum.

Hari ini kita akan mula mempertimbangkan yang sangat popular dan mudah bahasa penanda XML. Kerana format ini Perwakilan data adalah sangat fleksibel dan universal, dan ia boleh digunakan hampir di mana-mana, bermakna berkaitan dengan sesuatu. Oleh itu, pengaturcara baru lambat laun perlu berurusan dengan bahasa ini, dan tidak kira apa sebenarnya yang anda lakukan, sama ada pengaturcaraan web atau pentadbiran pangkalan data, kerana semua orang menggunakan XML, dan anda juga akan menggunakannya untuk melaksanakan tugasan. awak perlu.

Kita akan mulakan, seperti biasa, dengan teori, mari kita lihat apa jenis bahasa itu, mengapa ia bagus, bagaimana untuk menggunakannya dan di mana ia digunakan.

Definisi Bahasa XML

XML (boleh dipanjangkan Bahasa penanda ) ialah bahasa penanda data universal dan boleh dikembangkan yang tidak bergantung pada sistem operasi dan persekitaran pemprosesan. Xml digunakan untuk membentangkan data tertentu dalam bentuk struktur, dan anda boleh membangunkan struktur ini sendiri atau menyesuaikannya untuk program atau perkhidmatan tertentu. Itulah sebabnya bahasa yang diberikan Mereka memanggilnya boleh dikembangkan, dan ini adalah kelebihan utamanya, yang mana ia sangat dihargai.

Seperti yang anda ketahui, terdapat banyak bahasa penanda, contohnya, bahasa HTML, tetapi semuanya, satu cara atau yang lain, bergantung pada pemproses, contohnya, html yang sama, kod yang dihuraikan oleh penyemak imbas, diseragamkan dan tidak boleh diperluaskan, terdapat teg yang jelas di sana, sintaks yang tidak boleh dilanggar, dan dalam xml anda boleh membuat teg anda sendiri, i.e. markup anda. Utama penghormatan HTML dan XML ialah html hanya menerangkan markup untuk memaparkan data, dan xml ialah struktur data abstrak yang boleh diproses dan dipaparkan mengikut kehendak anda dan di mana-mana sahaja, dan oleh itu tidak perlu membandingkan bahasa ini, ia mempunyai tujuan yang berbeza.

Seperti yang dinyatakan di atas, xml adalah sangat biasa dan bahasa sejagat, yang melaluinya hampir semua aplikasi, kedua-dua web dan hanya untuk komputer, menggunakannya sebagai pertukaran maklumat, kerana dengan bantuannya anda boleh bertukar-tukar data dengan mudah antara aplikasi atau perkhidmatan yang ditulis dalam perbezaan bahasa. Dalam hubungan ini, setiap pengaturcara baru yang terlibat dalam sebarang pengaturcaraan harus mempunyai pemahaman tentang XML. Jika anda ingin menjadi master web, maka anda mesti tahu XML, dan kami telah membincangkan cara menjadi Master WEB dan perkara yang perlu anda ketahui untuk ini.

Sebagai contoh, saya pernah mempunyai tugas untuk menulis perkhidmatan tertentu yang, atas permintaan, harus mengembalikan data kepada borang xml, iaitu macam berkembang bahagian pelayan aplikasi, dan saya tidak tahu apa yang ditulis oleh pelanggan yang akan memproses data ini, dan bahawa saya menulis perkhidmatan yang mengembalikan data dalam bentuk xml dan itu sahaja, aplikasi itu berfungsi dengan sempurna. Dan ini hanyalah contoh yang perlu saya tangani, tetapi sekarang bayangkan berapa banyak organisasi yang berbeza bekerjasama dan membangun dengan teliti perisian dan pertukaran data, dan saya tidak akan terkejut bahawa data ini akan berada dalam bentuk xml.

Sebagai contoh, saya pernah mempunyai tugas untuk menulis perkhidmatan tertentu yang harus mengembalikan data dalam bentuk xml atas permintaan, i.e. sejenis pembangunan bahagian pelayan aplikasi, dan saya tidak tahu apa yang ditulis oleh pelanggan yang akan memproses data ini, dan bahawa saya menulis perkhidmatan yang mengembalikan data dalam bentuk xml dan itu sahaja, aplikasi itu berfungsi dengan sempurna . Dan ini hanyalah contoh yang perlu saya tangani, tetapi sekarang bayangkan berapa banyak organisasi yang berbeza bekerjasama dan bersungguh-sungguh membangunkan perisian dan bertukar data, dan saya tidak akan terkejut bahawa data ini akan berada dalam bentuk xml.

Saya juga pernah terpaksa menyimpan data xml dalam pangkalan data MS SQL 2008, untuk mewakili data ini dengan lebih baik dan menukarnya antara pelayan dan pihak pelanggan aplikasi, kami melihat ini dalam artikel - Transact-sql - bekerja dengan xml.

Bahasa XML itu sendiri sangat mudah, dan mustahil untuk dikelirukan di dalamnya; semua kerumitan timbul tepat dalam pemprosesan dan interaksi XML dengan aplikasi, teknologi lain, i.e. semua yang mengelilingi xml, di mana anda boleh keliru dengan mudah.

Hari ini kita hanya bercakap tentang asas XML, dan kita tidak akan menumpukan pada teknologi untuk memproses dan berinteraksi dengan bahasa ini, kerana ini benar, bahan yang sangat besar, tetapi saya fikir pada masa hadapan kita akan terus berkenalan dengan teknologi yang berkaitan .

Mari kita teruskan untuk berlatih. Dan saya akan menulis semua contoh yang akan kami pertimbangkan dalam Notepad++ hanya kerana ia sangat mudah, tetapi kami tidak akan membincangkannya sekarang, kerana kami telah membincangkannya dalam artikel - Mengapa Notepad++ bagus untuk pemaju pemula.

tag XML

Bahasa XML menggunakan tag ( tag adalah sensitif huruf besar-besaran), tetapi bukan tag yang sama seperti dalam html, tetapi tag yang anda buat sendiri, tetapi dokumen xml juga mempunyai struktur yang jelas, i.e. terdapat teg pembukaan dan teg penutup, terdapat teg bersarang dan, sudah tentu, terdapat nilai yang terdapat dalam teg ini. Dalam erti kata lain, semua yang anda perlukan pengetahuan asas xml hanyalah untuk mengikuti peraturan ini. Bersama-sama, teg pembuka, penutup dan nilai dipanggil elemen, dan keseluruhan dokumen xml mengandungi tepat elemen yang bersama-sama membentuk struktur data. Dokumen xml hanya boleh mempunyai satu elemen akar, ingat ini, kerana jika anda menulis dua elemen akar, ia akan menjadi ralat.

Dan sudah tiba masanya untuk dibawa contoh xml markup, dan contoh pertama setakat ini untuk sintaks:

<Начало элемента> <Начало вложенного элемента>Nilai elemen bersarang

Seperti yang anda lihat, semuanya agak mudah, dan mungkin terdapat banyak elemen sedemikian bersarang di antara satu sama lain.

Sekarang mari kita berikan contoh dokumen xml sebenar:

Seperti yang anda lihat, saya hanya memberikan contoh jenis katalog buku di sini, tetapi saya tidak mengisytiharkan dokumen ini, i.e. Saya tidak menulis pengisytiharan XML yang memberitahu aplikasi yang akan memproses data ini bahawa data XML terletak di sini dan dalam pengekodan yang dipersembahkan. Anda juga boleh menulis ulasan dan atribut, jadi mari kita berikan contoh dokumen sedemikian:

Buku 1 Ivan Tempah 1 sahaja Buku 2 Sergey Tempah 2 sahaja Buku 3 Novel Tempah 3 sahaja

Di mana baris pertama ialah pengisytiharan bahawa ini ialah dokumen XML dan mesti dibaca dalam pengekodan UTF-8.

Data ini tanpa pemprosesan akan kelihatan, sebagai contoh, dalam penyemak imbas (Mozilla Firefox) seperti berikut:

Saya harap anda faham bahawa di sini katalog ialah elemen akar, yang terdiri daripada elemen buku, yang seterusnya terdiri daripada unsur nama, pengarang dan ulasan, dan sebagai contoh, saya juga menetapkan beberapa atribut untuk elemen katalog dan elemen buku .

Untuk asasnya, saya rasa itu sudah cukup, kerana jika kita menyelam lebih dalam dan lebih mendalam ke dalam XML, dan ke dalam semua teknologi yang dikaitkan dengan bahasa ini, maka artikel ini tidak akan pernah berakhir. Jadi itu sahaja untuk hari ini. Selamat tinggal!

20. Bahasa untuk menerangkan skema XML

skim DTD. Kelemahan skim DTD. litar XDR. Elemen dan atribut skema XDR.

Idea untuk mencipta tag anda sendiri yang mempunyai makna istimewa dan membantu menerangkan kandungan dokumen adalah sangat menarik. Tetapi jika setiap pengguna boleh membuat penerangan mereka sendiri, bagaimana mereka boleh dikenali? Untuk tujuan ini, spesifikasi XML menggunakan skema untuk menerangkan teg "buatan sendiri" sedemikian. Mereka adalah perlu untuk:

    terangkan apa sebenarnya markup itu;

    terangkan dengan tepat maksud markup itu.

Bahasa penerangan skema yang paling terkenal adalah yang berikut:

    DTD (Document Type Definition) ialah bahasa definisi jenis dokumen yang pada asalnya digunakan sebagai bahasa untuk menerangkan struktur dokumen SGML.

    XDR (XML Data Reduced) ialah dialek skema XML yang dibangunkan oleh Microsoft yang disokong dalam Internet Explorer versi 4 dan 5.

    Skema XML atau ringkasnya XSD (Bahasa Definisi Skema XML) ialah cadangan W3C sejak tahun 2001.

Mari kita lihat dengan lebih dekat dua daripada mereka yang pertama. Bahasa penerangan litar ketiga diliputi dalam Makmal 11.

Skim DTD

Skema DTD menyediakan templat penanda dokumen yang menentukan kehadiran, susunan dan susunan elemen serta atributnya dalam dokumen XML.

Dari segi DTD, model kandungan dokumen XML boleh diterangkan seperti berikut:

Setiap elemen dokumen boleh mempunyai salah satu daripada jenis berikut:

Sintaks

Satu komen

Hanya mengandungi data teks

Elemen lain

Hanya mengandungi unsur kanak-kanak

bercampur

Mengandungi gabungan data teks dan elemen anak

Tidak mengandungi apa-apa

Atribut yang terdapat di dalam teg dokumen diterangkan secara berasingan menggunakan sintaks:

nama_elemen nama_atribut1 (jenis) nilai lalai

…………………………………………………………………………………...

nama_elemen nama_atributN (jenis) nilai_ lalai >

Dalam kes ini, atribut dalam DTD boleh mempunyai salah satu daripada tiga jenis:

  • Atribut berlabel

    Atribut dengan penghitungan

Selain jenis atribut, anda juga boleh menetapkan modalitinya:

Pertimbangkan, sebagai contoh, perihalan atribut jenis rentetan untuk elemen yang menerangkan mesej:

nombor CDATA #DIPERLUKAN

tarikh CDATA #DIPERLUKAN

daripada CDATA #FIXED

status CDATA #TERSIRAT>

Jika elemen ini mengandungi atribut terhitung, maka perihalannya mungkin kelihatan, sebagai contoh, seperti ini:

nombor ID #DIPERLUKAN

daripada CDATA #DIPERLUKAN

amaran (rendah | biasa | segera) "normal">

Atribut elemen berlabel boleh terdiri daripada empat jenis:

Akhir sekali, penunjuk kejadian urutan berikut boleh digunakan dalam DTD:

Simbol

Contoh

Penerangan

Penggunaan elemen senarai berturut-turut

Salah satu ahli senarai digunakan

Satu dan hanya satu elemen digunakan

Penggunaan pilihan (0 atau 1 kali)

Digunakan satu kali atau lebih

Digunakan sifar atau lebih kali

Sebagai contoh, berikut ialah gambar rajah DTD yang menerangkan struktur peti mel elektronik:

Dokumen XML sumber yang memenuhi skema ini mungkin kelihatan, sebagai contoh, seperti ini:

[e-mel dilindungi]

[e-mel dilindungi]

Re:

[e-mel dilindungi]

[e-mel dilindungi]

Ingatkan

[e-mel dilindungi]

Ingatkan saya tentang pertemuan.

Beri perhatian kepada baris ke-2 dokumen, yang menunjukkan pautan luaran ke fail yang mengandungi skema DTD.

Pada asasnya, DTD membenarkan dua cara untuk digunakan dalam dokumen XML.

Pengisytiharan skema dalaman:

Mengisytiharkan skema luaran:

Sebagai kesimpulan, kami menunjukkan kelemahan skim DTD berikut:

    Ia bukan contoh XML. Ia memerlukan pembelajaran bahasa yang sama sekali berbeza.

    Mereka tidak menyediakan kawalan ke atas jenis data kecuali untuk data teks yang sangat mudah.

    Ia bukan contoh XML, jadi ia tidak boleh dengan mudah dilanjutkan atau ditukar kepada bahasa penanda lain seperti HTML atau DHTML.

    Tidak menyediakan sokongan untuk ruang nama XML.

Litar XDR

XML-Data ialah nama penuh bahasa skema Microsoft dan XML-DataReduced ialah "sebahagian" daripada pengesyoran penuh. Skema XDR ialah contoh XML, i.e. Mematuhi semua peraturan sintaks dan piawaian XML.

Dengan melaksanakan semakan data peringkat dokumen menggunakan skema, aplikasi yang menjana dan menerima transaksi boleh dioptimumkan untuk prestasi maksimum. Padanan medan dan kesahihan rekod disemak pada peringkat contoh XML.

Elemen akar dalam skema XDR sentiasa elemen Skema:

name="schema_name" xmlns="urn:schemas-microsoft-com:xml-data"

xmlns:dt="urn:schemas-microsoft-com:datatypes">

<-- Объявления других элементов -->

Elemen ElementType mempunyai sintaks:

content="(kosong | texOnly | eltOnly | mixed)">

dt:type "datatype"

model="(buka | ditutup)"

pesanan="(satu | seq | banyak)"

Elemen ElementType boleh mempunyai atribut berikut:

Nama atribut

Penerangan

Nama unsur

Jenis data item

Boleh mengambil nilai:

Terbuka - dibenarkan guna elemen yang tidak ditakrifkan dalam skema

Tertutup – dilarang menggunakan elemen yang tidak ditakrifkan dalam skema

Susunan unsur anak dalam contoh XML. Nilai yang sah:

satu – satu dokumen diandaikan wujud

banyak – sebarang bilangan elemen dalam sebarang susunan

seq - elemen ditentukan dalam susunan yang ditentukan dengan ketat.

Yang berikut boleh digunakan sebagai elemen anak untuk ElementType:

Nama unsur

Penerangan

Mengisytiharkan elemen kanak-kanak

Menyediakan penerangan tentang ElementType

Menyediakan jenis data elemen ElementType

Mentakrifkan susunan unsur

Mentakrifkan atribut

Mentakrifkan maklumat tentang AttributeType elemen kanak-kanak

Sintaks yang digunakan untuk mengisytiharkan atribut ialah:

default="default-value"

dt:type="primitive-type"

dt:values="enumerated-values"

diperlukan="(ya|tidak)"

Sebaliknya, elemen AttributeType boleh mempunyai atribut berikut:

Maknanya

Penerangan

Nilai asal

Salah satu jenis berikut:

entiti, entiti, penghitungan, id, idref, nmtoken, nmtokens, notasi, rentetan

Nilai yang sah

Nama atribut

Menunjukkan bahawa atribut mesti ada dalam huraian

Sintaks untuk menerangkan elemen atribut adalah seperti berikut:

default="default-value"

type="atribut-jenis"

dan kemungkinan nilainya ialah:

Maknanya

Piawaian mentakrifkan dua tahap ketepatan untuk dokumen XML:

  • Dibina dengan betul(Berbentuk elok). Dokumen yang dibentuk dengan baik mengikut semua peraturan am sintaks XML yang digunakan pada mana-mana dokumen XML. Dan jika, sebagai contoh, teg permulaan tidak mempunyai teg akhir yang sepadan, maka ini dibina secara tidak betul dokumen XML. Dokumen yang tidak dibina dengan betul tidak boleh dianggap sebagai dokumen XML; Pemproses XML (penghuraikan) tidak seharusnya memprosesnya secara normal dan harus mengklasifikasikan keadaan sebagai ralat maut.
  • sah(Sah). Dokumen yang sah juga mematuhi peraturan semantik tertentu. Ini adalah semakan tambahan yang lebih ketat tentang ketepatan dokumen untuk pematuhan dengan peraturan yang telah ditetapkan, tetapi sudah luaran, untuk meminimumkan bilangan ralat, contohnya, struktur dan komposisi dokumen tertentu atau keluarga dokumen tertentu. Peraturan ini boleh dibangunkan sama ada oleh pengguna sendiri atau oleh pembangun pihak ketiga, contohnya, pembangun kamus atau piawaian pertukaran data. Biasanya, peraturan sedemikian disimpan dalam fail khas - gambar rajah, di mana struktur dokumen, semua nama sah elemen, atribut, dan banyak lagi diterangkan secara terperinci. Dan jika dokumen, sebagai contoh, mengandungi nama elemen yang tidak ditakrifkan sebelum ini dalam skema, maka dokumen XML dianggap batal; Apabila menyemak pematuhan peraturan dan skema, pemproses XML yang menyemak (pengesah) diwajibkan (atas pilihan pengguna) untuk melaporkan ralat.

Kedua-dua konsep ini tidak mempunyai terjemahan piawai yang mantap ke dalam bahasa Rusia, terutamanya konsepnya sah, yang juga boleh diterjemahkan sebagai sah, sah, boleh dipercayai, sesuai, atau pun diuji untuk pematuhan peraturan, piawaian, undang-undang. Sesetengah pengaturcara menggunakan kertas surih yang mantap dalam kehidupan seharian " sah».

Sintaks XML

Bahagian ini hanya membincangkan pembinaan yang betul Dokumen XML, iaitu, sintaksnya.

XML ialah struktur hierarki yang direka untuk menyimpan sebarang data; secara visual struktur boleh diwakili sebagai pokok. Keperluan sintaksis mandatori yang paling penting ialah dokumen itu hanya mempunyai satu unsur akar(unsur akar) (secara alternatif dipanggil elemen dokumen). Ini bermakna teks atau data lain bagi keseluruhan dokumen mesti terletak di antara hanya satu tag akar permulaan dan tag akhir yang sepadan.

Contoh paling mudah berikut ialah dokumen XML yang dibentuk dengan baik: Ini adalah buku: "Buku Kecil" Baris pertama dokumen XML dipanggil pengisytiharan XML(Pengisytiharan XML) ialah rentetan pilihan yang menunjukkan versi standard XML (biasanya 1.0), dan mungkin juga termasuk pengekodan aksara dan kebergantungan luaran. Spesifikasi memerlukan pemproses XML untuk menyokong pengekodan Unicode UTF-8 dan UTF-16 (UTF-32 adalah pilihan). Pengekodan lain berdasarkan piawaian ISO/IEC 8859 diiktiraf sebagai boleh diterima, disokong dan digunakan secara meluas (tetapi tidak diperlukan); pengekodan lain juga boleh diterima, contohnya, Windows-1251 Rusia, KOI-8.

Satu komen boleh diletakkan di mana-mana di dalam pokok. Komen XML diletakkan di dalam sepasang tag . Dua tanda sempang (--) tidak boleh digunakan di mana-mana dalam ulasan.

Di bawah adalah contoh yang mudah resepi masakan, ditandakan dengan menggunakan XML:

Roti ringkas tepung Yis Air suam garam

Struktur

Selebihnya dokumen XML ini terdiri daripada bersarang elemen, beberapa daripadanya mempunyai sifat-sifat Dan kandungan. unsur biasanya terdiri daripada teg pembukaan dan penutup yang melampirkan teks dan elemen lain. Tag pembukaan terdiri daripada nama elemen dalam kurungan sudut, contohnya, " »; tag penutup terdiri daripada nama yang sama dalam kurungan sudut, tetapi garis miring ke hadapan ditambah sebelum nama, contohnya, “ ». Kandungan unsur(kandungan) ialah segala-galanya yang terletak di antara teg pembukaan dan penutup, termasuk teks dan elemen lain (bersarang). Di bawah ialah contoh elemen XML yang mengandungi teg pembuka, teg akhir dan kandungan elemen:

Uli lagi, letak di atas loyang dan masukkan ke dalam ketuhar.

tepung

Dalam contoh di atas, elemen ramuan mempunyai dua atribut: jumlah, yang mempunyai nilai 3, dan unit, yang mempunyai kaca nilai. Dari sudut pandangan penanda XML, atribut di atas tidak mempunyai apa-apa makna, tetapi hanyalah satu set aksara.

Selain teks, elemen boleh mengandungi elemen lain:

Campurkan semua bahan dan uli hingga sebati. Tutup dengan kain dan biarkan selama satu jam di dalam bilik yang hangat. Uli lagi, letak di atas loyang dan masukkan ke dalam ketuhar.

Dalam kes ini, elemen Arahan mengandungi tiga elemen langkah. XML tidak membenarkan elemen bertindih. Sebagai contoh, coretan berikut tidak betul kerana elemen "em" dan "kuat" bertindih.

Biasa beraksen ditonjolkan dan beraksen berdedikasi

Setiap dokumen XML mesti mengandungi tepat satu unsur akar(elemen akar atau elemen dokumen), jadi serpihan berikut tidak boleh dianggap sebagai dokumen XML yang sah.

Entiti #1 Entiti #2

Untuk menandakan unsur tanpa kandungan, dipanggil unsur kosong , perlu memohon bentuk khas entri yang terdiri daripada tag tunggal di mana garis miring diletakkan selepas nama elemen. Jika elemen tidak diisytiharkan kosong dalam DTD, tetapi ia tidak mempunyai kandungan dalam dokumen, untuknya dibenarkan gunakan bentuk rakaman ini. Sebagai contoh:

XML mentakrifkan dua kaedah rakaman watak istimewa: rujukan entiti dan rujukan nombor simbol. Intipati(entiti) dalam XML merujuk kepada data bernama, biasanya teks, khususnya aksara khas. Rujukan entiti(rujukan entiti) dinyatakan di tempat di mana entiti itu sepatutnya berada dan terdiri daripada ampersand (“&”), nama entiti dan koma bertitik (“;”). Terdapat beberapa entiti yang dipratentukan dalam XML, seperti "lt" (anda boleh merujuknya dengan menulis "< ») для левой угловой скобки и « amp » (ссылка - « & ») для амперсанда, возможно также определять собственные сущности. Помимо записи с помощью сущностей watak individu, ia boleh digunakan untuk merakam blok teks yang kerap berlaku. Di bawah ialah contoh menggunakan entiti yang dipratentukan untuk mengelak daripada menggunakan ampersand dalam nama:

AT&T

Senarai lengkap entiti pratakrif terdiri daripada & (“&”),< («<»), >(">"), " (""), dan " ("") - dua yang terakhir berguna untuk menulis pembatas dalam nilai atribut. Anda boleh menentukan entiti anda dalam dokumen DTD.

Kadang-kadang perlu untuk menentukan ruang yang tidak pecah, yang sangat kerap digunakan dalam HTML dan dilambangkan sebagai tiada entiti yang dipratentukan sedemikian dalam XML, ia ditulis, dan penggunaannya menyebabkan ralat. Ketiadaan entiti yang sangat biasa ini selalunya mengejutkan ramai pengaturcara, dan ini menimbulkan beberapa kesukaran apabila memindahkan perkembangan HTML mereka kepada XML.

Pautan mengikut nombor simbol(rujukan aksara angka) kelihatan seperti rujukan kepada entiti, tetapi bukannya nama entiti, aksara # dan nombor (dalam tatatanda perpuluhan atau heksadesimal) ditentukan, iaitu nombor aksara dalam jadual kod Unicode. Ini biasanya aksara yang tidak boleh dikodkan secara langsung, seperti huruf Arab dalam dokumen yang dikodkan ASCII. Ampersand boleh diwakili seperti berikut:

AT&T

Terdapat banyak lagi peraturan mengenai mencipta dokumen XML yang sah, tetapi tujuannya gambaran ringkas Ia hanya untuk menunjukkan asas yang diperlukan untuk memahami struktur dokumen XML.

cerita

Tahun kelahiran XML boleh dianggap 1996, pada penghujungnya versi draf spesifikasi bahasa muncul, atau apabila spesifikasi ini diluluskan. Semuanya bermula dengan kemunculan bahasa SGML pada tahun 1986.

SGML (Bahasa Penanda Umum Standard - standard bahasa umum markup) telah mengisytiharkan dirinya sebagai bahasa meta yang fleksibel, komprehensif dan komprehensif untuk mencipta bahasa markup. Walaupun konsep hiperteks muncul pada tahun 1965 (dan prinsip asas telah dirumuskan pada tahun 1945), SGML tidak mempunyai model hiperteks. Penciptaan SGML boleh dipanggil dengan yakin sebagai percubaan untuk menerima kehebatan, kerana ia menggabungkan keupayaan yang sangat jarang digunakan bersama-sama. Ini adalah kelemahan utamanya - kerumitan dan, sebagai akibatnya, kos tinggi bahasa ini mengehadkan penggunaannya sahaja syarikat besar yang mampu membeli perisian yang sesuai dan mengupah pakar bergaji tinggi. Selain itu, di syarikat kecil Jarang sekali masalah timbul yang begitu kompleks sehingga SGML diperlukan untuk menyelesaikannya.

SGML paling banyak digunakan untuk mencipta bahasa penanda lain; dengan bantuannya bahasa penanda itu dicipta dokumen hiperteks- HTML, spesifikasi yang telah diluluskan pada tahun 1992. Penampilannya dikaitkan dengan keperluan untuk mengatur susunan dokumen yang semakin meningkat di Internet. Pertumbuhan pesat dalam bilangan sambungan ke Internet dan, oleh itu, pelayan Web telah menyebabkan keperluan untuk pengekodan dokumen elektronik, yang tidak dapat diatasi oleh SGML kerana keluk pembelajarannya yang tinggi. Kemunculan HTML adalah sangat bahasa mudah markup - cepat menyelesaikan masalah ini: kemudahan pembelajaran dan kekayaan alat penyediaan dokumen menjadikannya paling berkesan bahasa popular untuk pengguna Internet. Tetapi apabila bilangan dan kualiti dokumen di Web meningkat, begitu juga keperluan yang diletakkan pada mereka, dan kesederhanaan HTML menjadi kelemahan utamanya. Bilangan teg yang terhad dan sikap acuh tak acuh sepenuhnya terhadap struktur dokumen mendorong pembangun yang diwakili oleh konsortium W3C untuk mencipta bahasa penanda yang tidak sekompleks SGML dan tidak seprimitif HTML. Akibatnya, menggabungkan kesederhanaan HTML dengan logik penanda SGML dan memenuhi permintaan Internet, XML dilahirkan.

Kelebihan dan kekurangan

Kelebihan

Kecacatan

  • Kekaburan pemodelan.
  • XML tidak mempunyai sokongan jenis data terbina dalam bahasa. Ia tidak mempunyai penaipan yang ketat, iaitu konsep "integer", "rentetan", "tarikh", " nilai boolean" dan lain-lain.
  • Model data hierarki yang ditawarkan oleh XML adalah terhad berbanding model hubungan dan graf berorientasikan objek dan model rangkaian data.

Memaparkan XML di World Wide Web

Tiga cara paling biasa untuk menukar dokumen XML kepada bentuk yang boleh dipaparkan pengguna ialah:

  1. Menggunakan gaya CSS;
  2. Menggunakan transformasi XSLT;
  3. Menulis pengendali dokumen XML dalam mana-mana bahasa pengaturcaraan.

Tanpa menggunakan CSS atau XSL Dokumen XML dipaparkan sebagai teks biasa dalam kebanyakan pelayar Web. Sesetengah pelayar seperti Internet Explorer, Mozilla dan Mozilla Firefox memaparkan struktur dokumen dalam paparan pokok, membolehkan anda meruntuhkan dan mengembangkan nod dengan klik tetikus.

Menggunakan Gaya CSS

Proses ini serupa dengan menggunakan CSS pada dokumen HTML untuk paparan.

Untuk menggunakan CSS Apabila dipaparkan dalam penyemak imbas, dokumen XML mesti mengandungi pautan khas ke helaian gaya. Sebagai contoh:

Ini berbeza daripada pendekatan HTML, yang menggunakan elemen .

Mengaplikasikan transformasi XSLT

XSL ialah teknologi yang menerangkan cara memformat atau mengubah data dokumen XML. Dokumen diubah menjadi format yang sesuai untuk dipaparkan dalam penyemak imbas. Penyemak imbas ialah penggunaan XSL yang paling biasa, tetapi jangan lupa bahawa dengan XSL anda boleh mengubah XML ke dalam sebarang format, mis.