Sintaks XML. Konstruk XML asas - elemen XML, tag, atribut, arahan pemprosesan, bahagian CDATA, ulasan

Pada tahun 1986, jauh sebelum idea untuk mencipta Web direalisasikan, bahasa markup standard sejagat SGML ( Bahasa Penanda Umum Terpiawai) telah diluluskan sebagai piawaian antarabangsa (ISO 8879) untuk mentakrifkan bahasa penanda, walaupun SGML telah wujud sejak akhir tahun enam puluhan. Ia digunakan untuk menerangkan bahasa penanda sambil membenarkan pengarang memberikan definisi formal kepada setiap elemen dan atribut bahasa tersebut.

HTML pada asalnya hanyalah salah satu daripada aplikasi SGML. Beliau menerangkan peraturan di mana maklumat harus disediakan untuk World Wide Web. Oleh itu, bahasa HTML ialah satu set peraturan SGML, dirumuskan sebagai definisi jenis dokumen(DTD), menerangkan maksud teg dan elemen sebenarnya. Skema HTML DTD disimpan dalam penyemak imbas web.

Kelemahan bahasa HTML termasuk yang berikut:

  • HTML mempunyai set tag tetap. Anda tidak boleh membuat teg anda sendiri yang boleh difahami oleh pengguna lain.
  • HTML adalah eksklusif teknologi persembahan data. HTML tidak membawa maklumat tentang maksud kandungan yang terkandung dalam teg.
  • HTML - lidah "rata".. Kepentingan teg tidak ditakrifkan di dalamnya, jadi ia tidak boleh digunakan untuk menerangkan hierarki data.
  • Pelayar digunakan sebagai platform untuk aplikasi. HTML tidak cukup berkuasa untuk mencipta aplikasi web pada tahap yang sedang diperjuangkan oleh pembangun web. Sebagai contoh, adalah mustahil untuk membangunkan aplikasi untuk pemprosesan profesional dan carian dokumen dalam HTML.
  • Jumlah trafik rangkaian yang besar. Dokumen HTML sedia ada digunakan sebagai aplikasi membebankan Internet dengan jumlah trafik yang besar dalam sistem pelayan pelanggan. Contohnya adalah menghantar dokumen besar melalui rangkaian apabila hanya sebahagian kecil dokumen diperlukan.

Oleh itu, di satu pihak, bahasa HTML adalah cara yang sangat mudah untuk menandakan dokumen untuk digunakan di Web, dan sebaliknya, dokumen yang ditandakan dalam HTML mempunyai sedikit maklumat tentang kandungannya. Jika dokumen tertentu mengandungi maklumat yang cukup lengkap tentang kandungannya, ia menjadi mungkin untuk menjalankan pemprosesan umum automatik dan carian dalam fail yang menyimpan dokumen dengan agak mudah. SGML membolehkan anda menyimpan maklumat tentang kandungan dokumen, tetapi disebabkan kerumitannya, ia tidak pernah digunakan secara meluas seperti HTML.

Sekumpulan pakar SGML, diketuai oleh Jon Bosak dari Sun Microsystems, mula bekerja untuk mencipta subset SGML yang boleh diterima pakai oleh komuniti Web. Ia telah memutuskan untuk mengalih keluar banyak ciri tidak penting SGML. Bahasa yang dibina semula dengan cara ini dipanggil XML. Versi yang dipermudahkan didapati jauh lebih mudah diakses daripada yang asal, dengan spesifikasinya hanya sepanjang 26 halaman, berbanding dengan lebih 500 halaman spesifikasi SGML.

Mari kita lihat dengan lebih dekat struktur dan ciri bahasa ini.

XML (Bahasa Penanda Boleh Diperpanjang)- Bahasa penanda disyorkan W3C. XML- format teks, direka untuk menyimpan data berstruktur, untuk bertukar maklumat antara program, serta untuk mencipta bahasa markup khusus berdasarkannya. XML ialah subset ringkas bahasa SGML.

Bahasa XML mempunyai yang berikut martabat:

  • Ini adalah format dokumen berorientasikan manusia, ia boleh difahami oleh manusia dan komputer.
  • Menyokong Unicode.
  • Format XML boleh menerangkan struktur data asas seperti rekod, senarai dan pepohon.
  • Ia ialah format pendokumentasian sendiri yang menerangkan struktur dan nama medan serta nilai medan.
  • Ia mempunyai keperluan sintaks dan penghuraian yang jelas, yang membolehkannya kekal mudah, cekap dan konsisten.
  • Digunakan secara meluas untuk menyimpan dan memproses dokumen;
  • Ini adalah format berdasarkan piawaian antarabangsa;
  • Struktur hierarki XML sesuai untuk menerangkan hampir semua jenis dokumen;
  • Ia adalah teks ringkas, bebas daripada pelesenan dan sebarang sekatan;
  • Platform bebas;
  • Ia adalah subset SGML, yang mana pengalaman luas telah terkumpul dan aplikasi khusus telah dicipta;

Kepada yang terkenal kekurangan bahasa termasuk yang berikut:

  • Sintaks XML adalah berlebihan.
    • Saiz dokumen XML adalah jauh lebih besar daripada perwakilan binari data yang sama (kira-kira 10 kali).
    • Saiz dokumen XML jauh lebih besar daripada dokumen dalam format pemindahan data teks alternatif (contohnya JSON, YAML) dan terutamanya dalam format data yang dioptimumkan untuk kes penggunaan tertentu.
    • Lebihan XML boleh memberi kesan kepada prestasi aplikasi. Kos menyimpan, memproses dan menghantar data semakin meningkat.
    • Untuk sejumlah besar tugas, kuasa penuh sintaks XML tidak diperlukan, dan penyelesaian yang lebih mudah dan lebih berprestasi boleh digunakan.
  • Ruang nama XML sukar digunakan dan sukar dilaksanakan dalam penghurai XML.
  • XML tidak mempunyai sokongan jenis data terbina dalam bahasa. Ia tidak mempunyai konsep "integer", "rentetan", "tarikh", "boolean", dll.
  • Model data hierarki XML menawarkan had berbanding dengan model hubungan dan graf berorientasikan objek.

Secara umumnya, XML boleh dilihat bukan sahaja sebagai bahasa penanda baharu, tetapi juga sebagai asas untuk seluruh keluarga teknologi:

Jadual 9.1. Struktur Keluarga XML
XML Nasihat teknikal tentang penggunaan XML
DTD Definisi jenis dokumen (skema)
XDR Format XML Dikurangkan(skema Microsoft)
XSD Mentakrifkan Skema XML (Skema W3C)
Ruang nama Kaedah untuk menentukan nama elemen dan atribut
XPath Bahasa Laluan XML
XLink Bahasa Pautan XML
XPointer Bahasa Penunjuk XML
DOM API Model Objek Dokumen
SAX API mudah untuk XML
XSL Boleh dikembangkan bahasa lembaran gaya
XSL-FO Memformat Objek XSL
XSLT Bahasa transformasi XSL
XTermasuk XML Sertakan Sintaks

Hari ini kita akan mula mempertimbangkan yang sangat popular dan mudah bahasa penanda XML. Memandangkan format untuk mempersembahkan data ini sangat fleksibel dan universal, dan ia boleh digunakan hampir di mana-mana, ini bermakna dengan teliti 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 (Extensible Markup Language) ialah bahasa penanda data universal dan boleh diperluaskan yang bebas daripada sistem pengendalian 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 ini dipanggil extensible, 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. Perbezaan utama antara 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, mereka mempunyai tujuan yang berbeza sama sekali.

Seperti yang dinyatakan di atas, xml ialah bahasa yang sangat umum dan universal, di mana hampir semua aplikasi, baik web dan hanya untuk komputer, menggunakannya sebagai pertukaran maklumat, kerana dengan bantuannya anda boleh bertukar data dengan mudah antara aplikasi atau perkhidmatan yang walaupun ditulis dalam bahasa yang berbeza. 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 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.

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.

Juga, saya pernah terpaksa menyimpan data xml dalam pangkalan data MS SQL 2008 untuk mewakili data ini dengan lebih baik dan menukarnya antara pelayan dan bahagian klien aplikasi, kami membincangkannya 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 untuk pengetahuan asas xml hanyalah untuk mematuhi 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 memberikan contoh markup xml, dan contoh pertama buat masa ini adalah 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!

(Bahasa Inggeris) Bahasa Penanda Umum Standard - bahasa penanda umum standard) telah mengisytiharkan dirinya sebagai bahasa meta yang fleksibel, komprehensif dan komprehensif untuk mencipta bahasa penanda. Walaupun konsep hiperteks bermula sejak 1965, 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, akibatnya, kos tinggi bahasa ini mengehadkan penggunaannya hanya kepada syarikat besar yang mampu membeli perisian yang sesuai dan mengupah pakar bergaji tinggi. Di samping itu, syarikat kecil jarang mempunyai masalah yang cukup kompleks untuk melibatkan SGML dalam menyelesaikannya.

SGML paling banyak digunakan untuk mencipta bahasa penanda lain; dengan bantuannya bahasa penanda dokumen hiperteks telah dicipta - 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 memerlukan keperluan untuk pengekodan dokumen elektronik yang SGML tidak dapat mengatasi kerana kesukaran pembangunan yang tinggi. Kemunculan HTML, bahasa penanda yang sangat mudah, dengan cepat menyelesaikan masalah ini: kemudahan pembelajaran dan kekayaan alat reka bentuk dokumen menjadikannya bahasa yang paling 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. Hasilnya ialah XML, bahasa yang menggabungkan kesederhanaan HTML dengan logik markup SGML dan memenuhi permintaan Internet.

Dokumen XML yang dibentuk dengan baik dan sah

Piawaian mentakrifkan dua tahap ketepatan untuk dokumen XML:

  • Dibina dengan betul(Bahasa Inggeris) terbentuk dengan baik). 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(Bahasa Inggeris) 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.

Mari lihat contoh resipi mudah yang ditandakan menggunakan XML:

> Roti ringkas > > tepung > Yis > Air suam > garam > > > > 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. > > >

pengisytiharan XML

Baris pertama dokumen XML dipanggil pengisytiharan XML(Bahasa Inggeris) pengisytiharan XML) ialah rentetan yang menunjukkan versi XML. Dalam versi 1.0 pengisytiharan XML boleh ditinggalkan, dalam versi 1.1 ia diperlukan. Pengekodan aksara dan kehadiran kebergantungan luaran juga boleh ditunjukkan di sini.

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. Selalunya, huruf bukan Latin tidak digunakan dalam teg; dalam kes ini, UTF-8 adalah pengekodan yang sangat mudah - volum biasanya lebih kecil daripada dengan UTF-16; penyahkodan boleh dilakukan untuk keseluruhan dokumen dan untuk atribut dan teks tertentu; keseluruhan dokumen tidak mengandungi aksara terlarang apabila penghuraian dicuba dengan pengekodan yang salah.

Unsur akar

Keperluan sintaksis mandatori yang paling penting ialah dokumen itu hanya mempunyai satu unsur akar(Bahasa Inggeris) unsur akar) (juga kadangkala dipanggil elemen dokumen(Bahasa Inggeris) elemen dokumen)). Ini bermakna teks atau data lain bagi keseluruhan dokumen mesti terletak di antara teg akar permulaan tunggal dan teg akhir yang sepadan.

Contoh paling mudah berikut ialah dokumen XML yang dibentuk dengan baik:

Contoh berikut bukan dokumen XML yang sah kerana ia mempunyai dua unsur akar:

> Entiti #1 > > Entiti #2 >

Satu komen

Elemen boleh diletakkan di mana-mana di dalam pokok - satu komen. Komen XML diletakkan di dalam tag khas bermula dengan aksara. Dua tanda sempang (--) tidak boleh hadir dalam ulasan.

Teg di dalam ulasan tidak boleh diproses.

Tag

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 nama unsur dalam kurungan sudut, contohnya, , A tag penutup terdiri daripada nama yang sama dalam kurungan sudut, tetapi garis miring ke hadapan ditambah sebelum nama, contohnya,. Nama elemen, seperti nama atribut, tidak boleh mengandungi ruang, tetapi boleh dalam mana-mana bahasa yang disokong oleh pengekodan dokumen XML. Nama boleh bermula dengan huruf, garis bawah atau titik bertindih. Baki aksara nama boleh menjadi aksara yang sama, serta nombor, sempang dan titik.

Terdapat beberapa entiti yang dipratentukan dalam XML, seperti lt (anda boleh merujuknya dengan menulis<) для левой угловой скобки и amp (ссылка - &) для амперсанда. Возможно также определять собственные сущности. Помимо записи с помощью сущностей отдельных символов, их можно использовать для записи часто встречающихся текстовых блоков.

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.

Kadangkala adalah 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(Bahasa Inggeris) 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 aksara 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 peraturan lain mengenai penciptaan dokumen XML yang sah.

Kelebihan dan kekurangan

Kelebihan

Kecacatan

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

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. Pemakaian XSL;
  3. Menulis pengendali dokumen XML dalam mana-mana bahasa pengaturcaraan.

Untuk menentukan transformasi XSL (XSLT) pada bahagian klien, arahan XML berikut mesti ada:

Kamus XML

Oleh kerana XML adalah bahasa yang agak abstrak, perbendaharaan kata XML telah dibangunkan.

Kamus membenarkan pembangun bersetuju dengan set terhingga nama teg dan atribut teg tersebut. Salah satu perbendaharaan kata pertama ialah XHTML, yang difahami oleh kebanyakan pelayar. XHTML sering digunakan untuk menyimpan dan mengedit kandungan dalam CMS.

Lebih banyak kosa kata khusus telah dicipta, seperti protokol pemindahan data SOAP, yang tidak mesra manusia dan agak sukar dibaca. Terdapat perbendaharaan kata komersial seperti CommerceML, xCBL dan cXML yang digunakan untuk memindahkan data berorientasikan perdagangan, kamus ini termasuk penerangan tentang sistem pesanan, pembekal, produk dan banyak lagi.

Biasanya, apabila menerangkan dokumen, seseorang menghasilkan beberapa perbendaharaan kata untuk dirinya sendiri, yang kemudiannya diterangkan menggunakan DTD, XSD, atau hanya menerangkan "dengan cepat" kepada pihak yang berminat.

Salah satu kamus yang semakin meluas ialah FB2 - kamus yang menerangkan format sesebuah buku, dengan segala jenis nota kaki, petikan, malah gambar.

Versi XML

  • XML 1.0
  • XML 1.1

lihat juga

Nota

kesusasteraan

  • David Hunter, Jeff Rafter, Joe Faucett, Eric van der Vlist, dsb. XML. Bekerja dengan XML, Edisi Ke-4 = XML Permulaan, Edisi Ke-4. - M.: "Dialektik", 2009. - 1344 p. - ISBN 978-5-8459-1533-7
  • David Hunter, Jeff Rafter dan lain-lain. XML. Kursus asas = Permulaan XML. - M.: Williams, 2009. - 1344 p. - ISBN 978-5-8459-1533-7
  • Robert Tabor. Pelaksanaan perkhidmatan Web XML pada platform Microsoft .NET = Perkhidmatan Web XML .NET Microsoft. - M.: Williams, 2002. - 464 p. - ISBN 0-672-32088-6

Pautan

  • XML di tapak web World Wide Web Consortium (W3C).
  • Spesifikasi Standard XML 1.0 Rasmi
  • Spesifikasi Standard XML 1.1 Rasmi
  • Dokumentasi XML pada artikel laman web IBM, forum
bahasa penanda) ialah satu set arahan khas, dipanggil tag, direka bentuk untuk membentuk struktur dalam dokumen dan mentakrifkan hubungan antara pelbagai elemen struktur ini. Dalam erti kata lain, markup menunjukkan bahagian dokumen mana yang merupakan tajuk, yang merupakan sari kata, nama pengarang yang perlu dipertimbangkan, dll. Penandaan dibahagikan kepada penanda gaya, struktur dan semantik.

Penanda bergaya

Penanda gaya bertanggungjawab untuk penampilan dokumen. Sebagai contoh, dalam HTML jenis markup ini termasuk tag seperti (condong), (bold), (garis bawah), (teks yang dicoret), dsb.

Penandaan struktur

Penanda struktur mentakrifkan struktur dokumen. Dalam HTML, sebagai contoh, tag (perenggan) bertanggungjawab untuk jenis markup ini. (tajuk),

(bahagian), dsb.

Penanda semantik

Penanda semantik memberitahu kandungan data. Contoh penanda jenis ini ialah tag (nama dokumen), (kod, digunakan untuk penyenaraian kod), (pembolehubah),

(alamat penulis).

Konsep asas mana-mana bahasa penanda ialah tag, elemen dan atribut.

Tag dan elemen.

Makna tag dan elemen sering keliru.

Teg, atau deskriptor kawalan sebagaimana ia juga dipanggil, berfungsi sebagai arahan untuk atur cara yang memaparkan kandungan dokumen pada bahagian klien tentang perkara yang perlu dilakukan dengan kandungan teg. Tanda kurung sudut digunakan untuk membezakan teg berbanding dengan kandungan utama dokumen: teg bermula dengan tanda kurang daripada (<) и завершается знаком "больше" (>), di dalamnya nama arahan dan parameternya diletakkan. Sebagai contoh, dalam HTML teg menunjukkan bahawa teks yang berikut hendaklah dalam huruf condong.

Elemen ialah tag bersama dengan kandungannya. Pembinaan berikut ialah contoh elemen:

Teks ini dalam huruf condong .

Elemen ini terdiri daripada tag pembuka (dalam contoh kami ini ialah tag ), kandungan tag (dalam contoh ini ialah teks "Ini adalah teks dalam huruf condong") dan tag penutup(), walaupun kadangkala dalam HTML, teg penutup boleh diabaikan.

Atribut

Untuk menetapkan sebarang parameter yang menjelaskan ciri elemen ini apabila mentakrifkan elemen, atribut digunakan.

Atribut terdiri daripada pasangan nama = nilai yang boleh ditentukan semasa mentakrifkan elemen dalam teg permulaan. Anda boleh meninggalkan ruang di sebelah kiri dan kanan simbol sama. Nilai atribut ditentukan sebagai rentetan yang disertakan dalam petikan tunggal atau berganda.

Mana-mana teg boleh mempunyai atribut jika atribut itu ditakrifkan.

Apabila atribut digunakan, elemen mengambil bentuk berikut:

<имя_тега атрибут = "значение"> kandungan tag

Teks dijajarkan ke tengah

Satu teg pembukaan boleh mengandungi berbilang atribut, contohnya:

Saiz dan warna teks yang ditentukan

Sejarah perkembangan bahasa markup.

Konsep hiperteks telah diperkenalkan oleh W. Bush pada tahun 1945, dan bermula pada tahun 60-an, aplikasi pertama menggunakan data hiperteks mula muncul. Walau bagaimanapun, teknologi ini menerima perkembangan utamanya apabila timbul keperluan sebenar untuk mekanisme untuk menggabungkan pelbagai sumber maklumat, memberikan keupayaan untuk mencipta dan melihat teks bukan linear.

Pada tahun 1986, ISO meluluskan Standardized Generalized Markup Language. Bahasa ini bertujuan untuk mencipta bahasa penanda lain; ia mentakrifkan set teg yang sah, atributnya dan struktur dalaman dokumen. Oleh itu, adalah mungkin untuk membuat tag anda sendiri yang berkaitan dengan kandungan dokumen. Kini menjadi jelas bahawa dokumen sedemikian sukar untuk ditafsir tanpa definisi bahasa penanda, yang disimpan dalam Definisi Jenis Dokumen (DTD). DTD mengumpulkan semua peraturan bahasa dalam standard SGML. Dalam erti kata lain, DTD menerangkan hubungan teg antara satu sama lain dan peraturan penggunaannya. Selain itu, untuk setiap kelas dokumen, set peraturannya sendiri ditakrifkan yang menerangkan tatabahasa bahasa penanda yang sepadan. Oleh itu, hanya dengan bantuan DTD seseorang boleh mengesahkan penggunaan tag yang betul dan, oleh itu, ia mesti dihantar bersama dokumen SGML atau dimasukkan ke dalam dokumen.

Pada masa itu, sebagai tambahan kepada SGML, terdapat beberapa bahasa lain yang serupa bersaing antara satu sama lain, tetapi populariti (HTML, yang merupakan salah satu keturunannya) memberikan SGML kelebihan yang tidak dapat dinafikan berbanding rakan sejawatannya.

Menggunakan SGML, anda boleh menerangkan data berstruktur, menyusun maklumat yang terkandung dalam dokumen dan membentangkan maklumat ini dalam beberapa format piawai. Tetapi kerana kerumitannya, SGML digunakan terutamanya untuk menerangkan sintaks bahasa lain, dan beberapa aplikasi berfungsi dengan dokumen SGML secara langsung. SGML biasanya digunakan hanya dalam projek besar, contohnya, untuk mencipta sistem pengurusan dokumen bersatu untuk syarikat besar.

Bahasa penanda HTML adalah lebih mudah dan lebih mudah daripada SGML, arahannya terutamanya bertujuan untuk mengawal proses memaparkan kandungan dokumen pada skrin. HTML sebagai cara untuk menandakan dokumen teknikal telah dicipta oleh Tim Berners-Lee pada tahun 1991 khusus untuk komuniti saintifik. Ia pada asalnya hanyalah salah satu daripada aplikasi SGML.

Walaupun fakta bahawa satu-satunya perkara yang boleh dilakukan oleh HTML ialah mengklasifikasikan bahagian dokumen dan memastikan paparan yang betul dalam penyemak imbas, ia adalah bahasa penanda yang paling popular. Ini kerana HTML agak mudah dipelajari. Apa yang anda perlu lakukan ialah mempelajari arahan HTML. DTD untuk HTML disimpan dalam penyemak imbas. Di samping itu, perlu diingatkan bahawa HTML direka untuk berfungsi pada pelbagai jenis platform. Tetapi ia mempunyai beberapa batasan penting:

  1. HTML mempunyai set teg tetap, dan set ini tidak boleh dikembangkan atau diubah;
  2. Teg bahasa HTML menunjukkan hanya bagaimana data harus dipersembahkan, iaitu penampilan dokumen. HTML tidak membawa maklumat tentang maksud kandungan yang terkandung dalam teg atau struktur dokumen.

Kami meneruskan kajian XML kami sekali lagi dan dalam artikel ini kami akan berkenalan dengan binaan XML seperti arahan pemprosesan, ulasan, atribut dan elemen XML lain. 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 tidak hanya 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, jadi detik ini harus diingati segera untuk mengelakkan kesilapan di masa hadapan.
Jadi, kami mengetahui unsur-unsurnya. Sekarang mari kita beralih ke titik seterusnya, iaitu 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 seterusnya membentuk struktur hierarki dalam bentuk pokok. Dalam kes ini, elemen induk akan menjadi akar dan semua elemen anak lain akan menjadi cabang 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. Perwakilan pokok ialah cara yang paling optimum untuk menerangkan 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 petikan tunggal atau berganda. Atribut untuk elemen ditetapkan seperti berikut:

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 anda lihat daripada contoh di atas, dalam XML, arahan pemprosesan disertakan dalam petikan sudut dengan tanda soal. 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. Kita bercakap tentang pengisytiharan XML yang menyampaikan kepada perisian pemprosesan beberapa maklumat tentang sifat dokumen XML, seperti pengekodan, versi bahasa di mana dokumen itu ditulis, dsb.

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 ialah XML versi 1.0.

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